Samson
1d7bb1337d
Unify (Offscreen)CanvasRenderingContext2d
and make PaintRenderingContext2D
standalone ( #35619 )
...
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2025-02-23 16:31:06 +00:00
Yerkebulan Tulibergenov
6199099d12
refactor RTCError::new_inherited ( #35617 )
...
Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
2025-02-23 14:26:19 +00:00
Josh Matthews
381e168877
Move more bindings types to script_bindings ( #35620 )
...
* Move weak references implementation to script_bindings.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Move maplike/setlike definitions to script_bindings.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Move base error types to script_bindings.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Formatting.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
---------
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
2025-02-23 14:25:46 +00:00
Yerkebulan Tulibergenov
0383ba9a5b
refactor: add CanGc as argument to Promise::resolve ( #35616 )
...
Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
2025-02-23 12:12:21 +00:00
Gae24
adb831eefe
script: add CanGc
argument to Promise::new_resolved
and Promise::new_rejected
( #35605 )
...
* add CanGc to new_resolved and use it where possible
Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
* add CanGc to new_rejected
Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
---------
Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
2025-02-23 04:45:47 +00:00
Yerkebulan Tulibergenov
dd13342f18
refactor: add CanGc as argument to DataBlock::view ( #35610 )
...
Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
2025-02-23 00:35:44 +00:00
Auguste Baum
b0b0289014
refactor: propagate CanGc arguments through callers ( #35591 )
...
Signed-off-by: Auguste Baum <auguste.apple@gmail.com>
2025-02-23 00:34:51 +00:00
Yerkebulan Tulibergenov
02199520f2
refactor: add CanGc as argument to WindowProxy::set_window ( #35609 )
...
Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
2025-02-23 00:34:31 +00:00
Narfinger
5aa662437b
Use counter instead of time for HTMLFormElement. ( #35555 )
...
* Use counter instead of time for HTMLFormElement.
Fixes #25455
Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
* Update components/script/dom/htmlformelement.rs to include suggestions
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
---------
Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2025-02-22 09:42:16 +00:00
Yerkebulan Tulibergenov
4ab4e5dd47
refactor: add CanGc as argument to SubtleCrypto::import_key_{pbkdf2, aes, hkdf, hmac} ( #35601 )
...
* refactor: add CanGc as argument to SubtleCrypto::import_key_pbkdf2
Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
* refactor: add CanGc as argument to SubtleCrypto::{import_key_aes, import_key_hkdf, import_key_hmac}
Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
---------
Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
2025-02-22 08:17:22 +00:00
Yerkebulan Tulibergenov
89d7f874b2
refactor: add CanGc as argument to create_buffer_source_with_length ( #35596 )
...
Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
Co-authored-by: Josh Matthews <josh@joshmatthews.net>
2025-02-22 06:17:24 +00:00
Yerkebulan Tulibergenov
d72c9f3501
refactor: add CanGc as argument to CountQueuingStrategy::GetSize ( #35595 )
...
Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
2025-02-22 06:16:50 +00:00
Yerkebulan Tulibergenov
a741c48dc2
refactor: add CanGc as argument to ByteLengthQueuingStrategy::GetSize ( #35594 )
...
Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
2025-02-22 06:16:37 +00:00
Yerkebulan Tulibergenov
245a39c07e
refactor: add CanGc as argument to create_buffer_source ( #35597 )
...
Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
2025-02-22 05:42:55 +00:00
Josh Matthews
35f21e426b
Move more bindings code to script_bindings ( #35578 )
...
* Move JSContext wrapper to script_bindings.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Move webidl constant bindings to script_bindings.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Move CanGc to script_bindings.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Move Dom<T> and Root<T> types to script_bindings.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Formatting.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Extra docs for new traits.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Fix clippy warnings.
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
---------
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
2025-02-22 04:46:56 +00:00
Yerkebulan Tulibergenov
54286229ea
refactor: add CanGc as argument to extract_size_algorithm ( #35593 )
...
Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
2025-02-22 02:25:59 +00:00
webbeef
f7c1cd4635
dom: Move child_list to rare data ( #35592 )
...
This is only created when calling the ChildNodes method. Gecko also stores it in their similar
data structure at https://searchfox.org/mozilla-central/rev/155d514d72473453492a822e97dc1c68cf49d110/dom/base/nsINode.h#1464
Signed-off-by: webbeef <me@webbeef.org>
2025-02-22 01:32:37 +00:00
Samson
a6f19c0092
script: Add CanvasContext
trait ( #35448 )
...
* trait `CanvasContext`
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* fixup most stuff
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* explain and limit crown `allow(crown::unrooted_must_root)`
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2025-02-21 20:26:27 +00:00
webbeef
084006abb6
Add get_url() to GlobalScopeHelper ( #35589 )
...
This is needed to build with the tracing feature
Signed-off-by: webbeef <me@webbeef.org>
2025-02-21 19:52:31 +00:00
webbeef
e883eaa322
dom: move node ranges to raredata ( #35554 )
...
Signed-off-by: webbeef <me@webbeef.org>
2025-02-21 18:41:25 +00:00
Auguste Baum
ca1f0486ba
refactor: propagate CanGc arguments through callers ( #35565 )
...
Signed-off-by: Auguste Baum <auguste.apple@gmail.com>
2025-02-21 17:35:17 +00:00
Simon Wülker
085cd981aa
Support the <meter>
element ( #35524 )
...
* Allow attaching UA shadow roots to any element
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Implement a UA shadow tree for the <meter> element
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Add UA styles for the meter element
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Include spec text when computing meter state
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
---------
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-02-21 16:28:12 +00:00
Simon Wülker
6ccdf7d19f
Allow resetting multiple flags at once in Element::set_state ( #35580 )
...
Previously, the code would incorrectly return without updating
the flags if the caller tried to reset multiple flags at once
and the not all of them were true.
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-02-21 14:42:28 +00:00
Josh Matthews
a433b20259
script: Make callbacks generic over DOM interfaces. ( #35459 )
...
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
2025-02-21 12:17:11 +00:00
Josh Matthews
1192ae32b0
script: Refer to DOM interfaces with generic types in generated bindings. ( #35457 )
...
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
2025-02-21 11:10:00 +00:00
Bi Fuguo
d4a8b3b38e
fix touch event wrong coordinates. pageX, pageY, clientX, clientY etc. ( #35550 )
...
Signed-off-by: kongbai1996 <1782765876@qq.com>
2025-02-21 06:01:02 +00:00
Martin Robinson
54b5c7b632
compositing: Move image output and shutdown management out of the compositor ( #35538 )
...
This is a step toward the renderer-per-WebView goal. It moves various
details out of `IOCompositor`.
- Image output: This is moved to servoshell as now applications can
access the image contents of a `WebView` via
`RenderingContext::read_to_image`. Most options for this are moved to
`ServoShellPreferences` apart from `wait_for_stable_image` as this
requires a specific kind of coordination in the `ScriptThread` that is
also very expensive. Instead, paint is now simply delayed until a
stable image is reached and `WebView::paint()` returns a boolean.
Maybe this can be revisited in the future.
- Shutdown: Shutdown is now managed by libservo itself. Shutdown state
is shared between the compositor and `Servo` instance. In the future,
this sharing might be unecessary.
- `CompositeTarget` has been removed entirely. This no longer needs to
be passed when creating a Servo instance.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Ngo Iok Ui (Wu Yu Wei) <yuweiwu@pm.me>
2025-02-20 18:27:49 +00:00
Auguste Baum
863d2ce871
Propagate CanGc
arguments through callers in constructors ( #35541 )
...
Signed-off-by: Auguste Baum <auguste.apple@gmail.com>
2025-02-20 16:17:45 +00:00
Martin Robinson
5465bfc2af
libservo: Move GL acclerated media setup out of RenderingContext
and simplify it ( #35553 )
...
This moves the GL accelerated media setup out of `RenderingContext`
which prevents making libservo dependo on the Wayland and X11 versions
of surfman explicitly. This support is experimental and (honestly) a bit
broken. I've confirmed that this works as well as it did before the
change.
The main thing here is that the configuration, which currently needs
surfman types, moves to servoshell. In addition:
1. Instead of passing the information to the Constellation, the setup is
stored statically. This is necessary to avoid introducing a
dependency on `media` in `webrender_traits`. It's quite likely that
`media` types should move to the internal embedding API to avoid
this. This is preserved for a followup change.
2. The whole system of wrapping the media channels in an abstract type
is removed. They could be either mpsc channels or IPC channels. This
was never going to work because mpsc channels cannot be serialized
and deserialized with serde. Instead this just uses IPC channels. We
also have other ways of doing this kind of abstraction in Servo so we
do not need another. The `mpsc` version was hard-coded to be
disabled.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-02-20 13:52:18 +00:00
Gregory Terzian
df6d636168
dom: Implement WritableStream
( #34844 )
...
* add basic interface for writable stream
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* add stubs for pipeTo and pipeThrough methods
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* add stubs for writable stream defautl writer
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* add stubs for writable stream controller
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* add underlying source dict
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* add underlying source dict
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* implement constructor
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* implement init writable stream
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* impl setup default controller
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* implement controller setup
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* implement controller advance queue if neededd
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* implement stream finish erroring
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* implement stream reject close and closed promise if needed
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* finish implementation of stream finish erroring
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* call into controller setup from stream constructor
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* implement stream mark first write request in flight
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* implement controller process write
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* call into advance queue if needed at various points
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* implement stream deal with rejection, use from_safe_context
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* implement controller clear algorithms
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* remove unused todo
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* implement stream start erroring
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* finish writer ensure ready promise rejected
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* implement stream finish in flight write request
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* implement write constructor and setup
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* implement controller error
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* remove unnecessary unsafe code
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* finish implementing process write
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* implement close sentinel
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* implement public locked
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* implement stream abort
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* implement stream close
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* implement controller close
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* fix use of crown
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* remove unnecessary options around writer promises
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* implement writer get desired size
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* implement writer ready
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* implement writer abort
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* implement writer close
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* implement writer release lock
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* implement writer public write
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* implement private writer write
Uses ai
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* implement writer release.
Uses ai
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* impl controller process close
Uses ai
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* finish controller process close
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* root promise handlers
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* handler errors in stream and writer constructor
finish implementation of stream finish in flight close
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* fix warnings
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* implement controller get chunk size
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* tidy the webidls
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* implement stream get writer
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* fix assertion of stream state when advancing queue if needed
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* add docs for value with size
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* use reject_error in abort
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* remove unnecessary allowances of unsafe code
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* turn writable-streams test suite on
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* update encodings test expectations
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* properly check if type is set on sink in stream constructor
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* fix double borrow in controller advance queue if needed
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* make the queue aware of the close sentinel when dequeuing a value
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* fix assertion of no backpressure in update backpressure
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* also clear strategy size when clearing algorithms
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* remove this object arg when calling into strategy size
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* fix has operations marked in flight
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* fix typo in has in flight write request
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* turn error into no-op when aborting a stream, if the stream is closed or errored.
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* fix error handling of calling into abort algorithm
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* fix error handling of calling into close and write algorithms
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* fix double borrow on queue
fix logic in update_backpressure
fix logic in get_desired_size
fix logic in writer setup
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* update test expectations for aborting suite
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* fix controller get_backpressure
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* fix clippy
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* update test expectations to expect errors in tests using unsupported apis
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* fix error handling of calling into start algo in controller setup
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* update test expectations for test checking for undefined this in strategy size call
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* update test expectation to timeout for response-stream-with-broken-then.any.worker
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* update interfaces
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* fix use of global() and error to_jsval
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* fix use of crown for promise handlers
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* remove fail expectation from worker interface objects test
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* remove fail expectation for test expecting this to be undefined in callback
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* fix documentation link for writablestream state
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* refactor write_requests to use a vec deque
uses ai
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* remove unnecessary doc
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* refactor reject_close_and_closed_promise_if_needed to take a safe js context as argument
uses ai
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* pass globals and contexts by ref where possible
uses ai
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* fix doc link for controller
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* remove unnecessary comment
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* change update_backpressure to be a method of the writablestream
uses ai
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* rename writer method that resolve closed and ready promise for clarity
uses ai
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* add comments for steps in peek queue value
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* fix doc link for the abort algorihtm fulfillment handler
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* fix step doc and variable name in abort algo rejection handler
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* Add must_root to pending abort request
Co-authored-by: Josh Matthews <josh@joshmatthews.net>
Signed-off-by: Gregory Terzian <2792687+gterzian@users.noreply.github.com>
* limit visibility to crate for has_operations_marked_inflight
Co-authored-by: Josh Matthews <josh@joshmatthews.net>
Signed-off-by: Gregory Terzian <2792687+gterzian@users.noreply.github.com>
* limit visibility to crate for get_stored_error
Co-authored-by: Josh Matthews <josh@joshmatthews.net>
Signed-off-by: Gregory Terzian <2792687+gterzian@users.noreply.github.com>
* remove potention re-borrow risk in reject loop on write requests in finish_erroring
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* remove potential re-borrow risk when taking pending abort request in finish_erroring
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* remove potential re-borrow risk when taking close request in reject_close_and_closed_promise_if_needed
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* remove re-borrow risks in finish_in_flight_close
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* remove re-borrow risk on in_flight_close_request in finish_in_flight_close_with_error
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* remove unnecessary clone of of reason in abort
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* fix condition on backpressure and a writable state in close
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* limit visibility to crate for update_backpressure
Co-authored-by: Josh Matthews <josh@joshmatthews.net>
Signed-off-by: Gregory Terzian <2792687+gterzian@users.noreply.github.com>
* remove mutability of reason in abort workflow
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* remove unnecessary use of ignore_malloc_size_of around Dom in controller
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* fix ignore malloc size of comment for strategy size
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* reduce visibility of public methods to crate in controller
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* remove use of JS_GetPendingException in controller get_chunk_size
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* return early on error in write
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* use is_some_and in assertion that stream.witer is writer in release
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* root pending abort request
uses ai
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* fix mutable re-borrow risk in writer
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
---------
Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
Signed-off-by: Gregory Terzian <2792687+gterzian@users.noreply.github.com>
Co-authored-by: Josh Matthews <josh@joshmatthews.net>
2025-02-19 13:02:14 +00:00
DK Liao
720bc725b0
feat: support pre-edit text display for IME ( #35535 )
...
* feat: support pre-edit text display for IME
Signed-off-by: DK Liao <dklassic@gmail.com>
* enable ime by show_ime
Signed-off-by: DK Liao <dklassic@gmail.com>
---------
Signed-off-by: DK Liao <dklassic@gmail.com>
2025-02-19 11:22:57 +00:00
Mukilan Thiyagarajan
56840e0a35
script: add skeleton implementation of FontFace
API ( #35262 )
...
This patch implements the `FontFace` interface, but with some caveats
1. The interface is only exposed on `Window`. Support for Workers will
be handled in the future.
2. The concept of `css-connected` `FontFace` is not implemented, so
`@font-face` rules in stylesheets will not be represented in the DOM.
3. The constructor only supports using `url()` strings as source
and `ArrayBuffer` and `ArrayBufferView` are not supported yet.
A skeleton implementation of the `load` method of `FontFaceSet` is also
implemented in this patch. The intention is to support some web pages
that don't load without this method.
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2025-02-19 05:50:01 +00:00
Simon Wülker
29e0fad21e
Ensure that qualified-name segments start with a valid start character ( #35530 )
...
* Add spec comments to various methods
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Ensure that qualified-name segments start with a valid start character
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Update WPT expectations
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
---------
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-02-19 04:34:42 +00:00
Jason Tsai
22c3a63737
feat: add Notification
Web API binding ( #34842 )
...
* feat: add Notification Web API binding
Signed-off-by: Jason Tsai <git@pews.dev>
* chore: update spec link
Signed-off-by: Jason Tsai <git@pews.dev>
* chore: fix clippy
Signed-off-by: Jason Tsai <git@pews.dev>
* fix: index overflow
Signed-off-by: Jason Tsai <git@pews.dev>
* test(tidy): add notification WebIDL standard URL
Signed-off-by: Jason Tsai <git@pews.dev>
* fix: allow crown::unrooted_must_root
Signed-off-by: Jason Tsai <git@pews.dev>
* implement GetPermission
Signed-off-by: Jason Tsai <git@pews.dev>
* fix silent type
Signed-off-by: Jason Tsai <git@pews.dev>
* add all properties
Signed-off-by: Jason Tsai <git@pews.dev>
* test: add Notification to global
Signed-off-by: Jason Tsai <git@pews.dev>
* chore: update wpt manifest and fix clippy
Signed-off-by: Jason Tsai <git@pews.dev>
* test: temp skip notifications
Signed-off-by: Jason Tsai <git@pews.dev>
* add vibration and apply suggestions
Signed-off-by: Jason Tsai <git@pews.dev>
* partially implement RequestPermission
Signed-off-by: Jason Tsai <git@pews.dev>
* call Permission request permission algorithm
Signed-off-by: Jason Tsai <git@pews.dev>
* chore: pub crate Notification
Signed-off-by: Jason Tsai <git@pews.dev>
* chore: fix clippy
Signed-off-by: Jason Tsai <git@pews.dev>
* chore: crown attribute
Signed-off-by: Jason Tsai <git@pews.dev>
* fix part of suggestions
Signed-off-by: Jason Tsai <git@pews.dev>
* fix: store private `Action` structure
Signed-off-by: Jason Tsai <git@pews.dev>
* chore: fix typo
Signed-off-by: Jason Tsai <git@pews.dev>
* fix: serialize images URL
Signed-off-by: Jason Tsai <git@pews.dev>
* fix: use globalscope as environment settings object
Signed-off-by: Jason Tsai <git@pews.dev>
* chore: add pref `dom_notification_enabled` and default to disabled
Signed-off-by: Jason Tsai <git@pews.dev>
* fix: use `descriptor_permission_state`
Signed-off-by: Jason Tsai <git@pews.dev>
* apply suggestions
Signed-off-by: Jason Tsai <git@pews.dev>
Co-authored-by: Josh Matthews <josh@joshmatthews.net>
* test: remove passed meta
Signed-off-by: Jason Tsai <git@pews.dev>
* test: enable notification prefs in mozilla tests
Signed-off-by: Jason Tsai <git@pews.dev>
---------
Signed-off-by: Jason Tsai <git@pews.dev>
Co-authored-by: Josh Matthews <josh@joshmatthews.net>
2025-02-18 16:56:57 +00:00
Josh Matthews
73507f58e6
script: Add custom logging representation for DOM interfaces. ( #35416 )
...
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
2025-02-18 05:28:18 +00:00
Josh Matthews
1d606bb85c
Make WebBluetooth an optional feature. ( #35479 )
...
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
2025-02-18 04:13:43 +00:00
Simon Wülker
32f19c1eae
Don't attempt to report style attribute for non-htmlelements to devtools ( #35519 )
...
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-02-17 21:33:11 +00:00
Gae24
56199fd153
window: avoid NonNull<JSObject> in NamedGetter ( #35508 )
...
Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
2025-02-17 12:48:21 +00:00
Bi Fuguo
3fe42a0b5a
implement Touchevent prevent default behavior ( #35031 )
...
* implement Touchevent prevent default behavior
* The status change logic of the `TouchHandler` is changed.
> The `WaitingForScript` state is canceled. TouchAction can be identified
based on the current touch type and numbers if touch points.
* Sends current event to script thread along with recognized `TouchAction`.
> After dispatch event, script thread sends a `TouchEventProcess(EventResult)`
message to main thread. If the event is set to `DefaultAllowed`, the
corresponding `TouchAction` information is added.
* After receiving `DefaultAllowed(TouchAction)` message, main thread executes corresponding action.
> `DefaultPrevented(TouchEventType)` is received. Use `prevent_click` to mark
that the default `Click` is blocked, and `prevent_move` to mark that the
default `Scroll` and `Zoom` are blocked. In this way, all TouchActions
implement preventDefault.
Signed-off-by: Bi Fuguo <1782765876@qq.com>
* fix some suggestions
* support preventDefault fling
* move `TouchAction` to share touch directory
* check preventDefault everytime when touch
* fix zoom ineffective
Signed-off-by: Bi Fuguo <1782765876@qq.com>
* fix some suggestions
rename on_event_processed to on_touch_event_processed
clear unused features
Signed-off-by: Bi Fuguo <1782765876@qq.com>
* Optimizes pan performance by continuously sliding without waiting for the eventhandler.
Signed-off-by: kongbai1996 <1782765876@qq.com>
* resolve conflict
Signed-off-by: kongbai1996 <1782765876@qq.com>
---------
Signed-off-by: Bi Fuguo <1782765876@qq.com>
Signed-off-by: kongbai1996 <1782765876@qq.com>
2025-02-17 10:50:04 +00:00
Euclid Ye
d466688526
dom: expose obsolete scheme
attribute for meta tag ( #35505 )
...
* dom: expose obsolete `scheme` attribute for meta tag
Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
* update tests
Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
---------
Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2025-02-17 07:07:24 +00:00
Gae24
966888615f
DataTransferItem
: improve spec compliance (#35418 )
...
* DataTransfer: remove PlainString and Binary structs
Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
* add DataTransferItemList remove() test case
Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
* bring datatransferitem closer to the spec
Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
* queue a task to invoke the callback
Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
---------
Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
2025-02-16 18:53:35 +00:00
Samson
0e9bebce0f
chore: Update wgpu ( #35503 )
...
* Update wgpu
d8833d0798
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Update expectations
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* fix tidy
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2025-02-16 18:24:13 +00:00
shanehandley
5ab3641a8e
script: implement HTMLHyperlinkElementUtils for HTMLAreaElement ( #35482 )
...
This makes some common functionality in HTMLAreaElement and
HTMLAnchorElement shared code.
Signed-off-by: Shane Handley <shanehandley@fastmail.com>
2025-02-16 09:54:31 +00:00
Kingsley Yung
b4f48c561b
script: Take away Fallible from new_resolved and new_rejected ( #35473 )
...
* script: Take away Fallible from new_resolved and new_rejected
Both Promise::new_resolved and new_rejected only return `Ok`. We don't
need them to be fallible. Simply return `Rc<Promise>`, instead of
`Fallible<Rc<Promise>>`. Also, clean up relevant code.
Signed-off-by: Kingsley Yung <kingsley@kkoyung.dev>
* script: pull_algorithm becomes infallible
The method pull_algorithm only returns `Some(Ok(_))`, which means it is
infallible. Clean up the returned type.
Signed-off-by: Kingsley Yung <kingsley@kkoyung.dev>
* script: generic_initialize becomes infallible
The method generic_initialize only returns `Ok(())`, which means it is
infallible. Clean up the returned type.
Signed-off-by: Kingsley Yung <kingsley@kkoyung.dev>
---------
Signed-off-by: Kingsley Yung <kingsley@kkoyung.dev>
2025-02-15 21:29:34 +00:00
shanehandley
3421185737
script: remove non-actionable todo from script/dom/document.rs ( #35472 )
...
Signed-off-by: Shane Handley <shanehandley@fastmail.com>
2025-02-15 03:55:53 +00:00
Josh Matthews
9b3e23633d
chore: Remove outdated FIXME. ( #35458 )
...
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
2025-02-14 07:35:44 +00:00
Mukilan Thiyagarajan
c95bd9d052
libservo: change 'request_fullscreen_state_change' API to a notification ( #35445 )
...
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2025-02-13 09:04:41 +00:00
Steven Novaryo
becd097585
dom: IntersectionObserver initialization ( #35314 )
...
* Add internal slot definition
Signed-off-by: stevennovaryo <steven.novaryo@gmail.com>
* Add initialization for new IntersectionObserver
Signed-off-by: stevennovaryo <steven.novaryo@gmail.com>
* Move observer initialization
Signed-off-by: stevennovaryo <steven.novaryo@gmail.com>
* Update WPT tests
Signed-off-by: stevennovaryo <steven.novaryo@gmail.com>
* Make a copy of style IntersectionObserverRootMargin
Signed-off-by: stevennovaryo <steven.novaryo@gmail.com>
* Move initialization to account for rooted expression
Signed-off-by: stevennovaryo <steven.novaryo@gmail.com>
* Fix some fields typing
Signed-off-by: stevennovaryo <steven.novaryo@gmail.com>
* Impl rest of IntersectionObserver interface
Signed-off-by: stevennovaryo <steven.novaryo@gmail.com>
* Fix tidy issue
Signed-off-by: stevennovaryo <steven.novaryo@gmail.com>
* Apply types logic and tidy fix from suggestions
Signed-off-by: stevennovaryo <steven.novaryo@gmail.com>
* Add allow unrooted for add registration to element
Signed-off-by: stevennovaryo <steven.novaryo@gmail.com>
---------
Signed-off-by: stevennovaryo <steven.novaryo@gmail.com>
2025-02-13 07:47:29 +00:00
Samson
610a1c2303
Use surfman with glow bindings (take II) ( #35422 )
...
* Reapply "Use surfman with glow bindings (#34328 )" (#35402 )
This reverts commit 0fed99590a
.
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* update surfman
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
---------
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2025-02-13 07:26:38 +00:00
Martin Robinson
0908a47780
libservo: Expose a single InputEvent
type and pass it to script ( #35430 )
...
This change exposes a single `InputEvent` type and now there is only a
single delegate method for this `WebViewDelegate::notify_input_event`.
- Clipboard events are now handled as `EditingAction` inpute events. In
the future this can include things like "Select All", etc.
In addition, many parts of the dance to pass these events can now be
simplified due to this abstraction.
- All forwarded events are handled the same way in the `Constellation`,
though they may carry an optional hit test (for events that have a
`point`) which affects which `Pipeline` they are sent to.
- In the `ScriptThread` we now accept these `InputEvents` and use them
everywhere. Now all "compositor events" are "input events".
- This allows removing several data structures which are no longer
necessary.
- We no longer inform the embedder when an event was handled by a
WebView as that was only important for a MDI feature that will
no longer be so important the full-featured `WebView` API.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2025-02-12 17:07:15 +00:00