Commit Graph

530 Commits

Author SHA1 Message Date
webbeef
295e019d00 script: pointer events: pointerenter, pointerout, pointerleave, pointerover (#42736)
Adds support for more pointer events: pointerenter, pointerout,
pointerleave, pointerover
Also add global event handlers that were missing.

Testing: WPT expectations are updated.

cc @yezhizhen

Signed-off-by: webbeef <me@webbeef.org>
2026-03-03 08:27:53 +00:00
Taym Haddadi
cfc4920815 indexeddb: implement "inject a key into a value using a key path with value" (#42727)
implement "inject a key into a value using a key path with value"
following he spec:

https://w3c.github.io/IndexedDB/#inject-a-key-into-a-value-using-a-key-path
 

Testing: More indexeddb tests should pass.
part of https://github.com/servo/servo/issues/40983

---------

Signed-off-by: Taym Haddadi <haddadi.taym@gmail.com>
2026-03-02 23:16:29 +00:00
Shubham Gupta
77e4bfbcc4 Pass Request's URL for LargestContentfulPaint Entry (#42901)
Pass Request URL to `LargestContnetfulPaint` Entry

Testing: WPT Expectations Updated.
Fixes: #42902

---------

Signed-off-by: Shubham Gupta <shubham.gupta@chromium.org>
2026-03-02 20:35:37 +00:00
eri
88f2469270 devtools: Implement initial support for Step in, Step out and Step over (#42907)
We are adding initial support for stepping in the debugger. Step over
mostly works, but Step in and Step out have some quirks that we are
working on.

![2026-02-27
12-32-05](https://github.com/user-attachments/assets/0b73b32c-efa3-444c-80a4-f863a64b6fdc)

Testing: DevTools tests and manual checks.
Part of: #36027

Signed-off-by: eri <eri@igalia.com>
Co-authored-by: atbrakhi <atbrakhi@igalia.com>
2026-03-02 18:35:02 +00:00
Narfinger
b55bc205a7 script: jscontext-ify element aria methods and SetCrossOrigin (#42957)
Use &mut JSContext in element aria* methods and SetCrossOrigin methods.

Testing: Compilation is the test as this is part from
https://github.com/servo/servo/issues/40600

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
2026-03-02 17:23:33 +00:00
Domenico Rizzo
68284e4a38 script: Refactors GPUPipelineLayout to disallow direct Drop. (#42937)
Moves the `Drop` implementation for `GPUPipelineLayout` to a dedicated
private helper struct, `DroppableGPUPipelineLayout`. This ensures that
DOM types do not directly implement `Drop`, aligning with best practices
for resource management in the DOM. The associated `Bindings.conf` entry
is removed as direct `Drop` is no longer needed for this type.

Testing: WebGpu just coverages cases with  proper tests
Fixes: Partially #26488

Signed-off-by: Domenico Rizzo <domenico.rizzo@gmail.com>
2026-03-02 15:26:42 +00:00
Jonathan Schwender
37dfa42731 Unify servo package naming (#42916)
This is a preparation for publishing to crates.io. Changes include:
- Add `servo-` prefixes to avoid name collisions on crates.io
- Use `-` instead of `_` in package names.
- Rename the crates to their original names in Cargo.toml,
  to keep the diff minimal
- Rename `media` to `servo-media-thread` to avoid name collision with
  `servo-media` (originally from the media repository).

This is an outcome of the previous discussion at [#general > Switch
remaining git dependencies to
crates.io](https://servo.zulipchat.com/#narrow/channel/263398-general/topic/Switch.20remaining.20git.20dependencies.20to.20crates.2Eio/with/576336288)

Testing: This should be mostly covered by our CI, but some amount of
breakage is to be expected, since some package names could still be
referenced from scripts which are not tested or run in CI. [mach try
run](https://github.com/jschwe/servo/actions/runs/22502945949)

---------

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2026-03-01 14:15:27 +00:00
webbeef
1ad41dc15f script: Add a ServoInternals.garbageCollectAllContexts() (#42798)
This is useful in about:memory to measure memory usage after running the
GC.

The calling page sends a callback to the constellation that in turn wait
for all script threads to run the GC and report back.

Testing: Manual testing in `about:memory`

Before running GC:

<img width="2048" height="1480" alt="Screenshot from 2026-02-23
18-50-46"
src="https://github.com/user-attachments/assets/fd8399c1-fbc7-4f4c-886d-f29629ef8369"
/>

After running GC:

<img width="2048" height="1480" alt="Screenshot from 2026-02-23
18-51-00"
src="https://github.com/user-attachments/assets/82c793f7-8229-4de4-9cb5-47c94383b410"
/>

Signed-off-by: webbeef <me@webbeef.org>
2026-02-28 08:38:32 +00:00
Sam
8757ccbc8d script: Replace RAII AutoIncumbentScript with function wrapper (#42905)
As in https://github.com/servo/servo/pull/42715 we will need cx in drop
so we need to go to function wrapper pattern.

Testing: Just refactor should be covered by WPT tests.

---------

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2026-02-28 06:53:07 +00:00
Jonathan Schwender
33ac4f4850 script_bindings: Fix warnings about match_domstring_ascii_inner macro (#42917)
The warning occurs when compiling the script bindings unit-tests `./mach
test-unit -p script_bindings --lib`.
Presumably in some contexts the inner macro is already imported, which
triggers the warning.
Directly using `crate::` avoids this.

The fixed warning:
```
warning: unused import: `$crate::match_domstring_ascii_inner`
    --> components/script_bindings/domstring.rs:1050:17
     |
1050 |               use $crate::match_domstring_ascii_inner;
     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
1352 |           let _res = match_domstring_ascii!(s,
     |  ____________________-
1353 | |             "❤" => true,
1354 | |             _ => false,);
     | |________________________- in this macro invocation
     |
     = note: this warning originates in the macro `match_domstring_ascii` (in Nightly builds, run with -Z macro-backtrace for more info)
```

Testing: Manually tested the warning is fixed by running `./mach
test-unit -p script_bindings --lib`.

---------

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2026-02-27 20:49:51 +00:00
Martin Robinson
f6e44fad29 script: Expose the tabIndex property on HTMLOrSVGElement (#42913)
This is exposes the `tabIndex` property for `HTMLOrSVGElement` according
to the HTML specification. This is the first step toward implementation
of tab navigation in Servo.

Testing: This causes many WPT subtests to start passing, but causes a
few to
start failing. This is likely because we do not have a full
implementation of
the `delegatesFocus` parameter of `attachShadow` yet.
Fixes: This is part of #25001 and #32169.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
2026-02-27 19:03:54 +00:00
eri
b2b27d857b devtools: Avoid creating unnecessary new frame actors (#42906)
Before we were creating a new frame actor each time we paused, even if
the frame object in debugger.js was the same. Now we avoid this by
reusing the same frame actor id.

This helps our upcoming work on onStep, onPop, and onEnterFrame hooks.

Testing: Ran `mach test-devtools` and manually check that it works
Part of: #36027

Signed-off-by: eri <eri@igalia.com>
Co-authored-by: atbrakhi <atbrakhi@igalia.com>
2026-02-27 14:34:18 +00:00
Gae24
49b13627b5 script: Propagate &mut JSContext inside evaluate_js_on_global (#42846)
Since `evaluate_js_on_global` called `enter_realm` and there were
already some callee that did it, I've actually passed `&mut
CurrentRealm`.
Also converted `Window::WebdriverException` to pass `&mut JSContext`
inside `javascript_error_info_from_error_info`.

Testing: A successful build is enough
Part of #40600

---------

Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
2026-02-27 11:49:44 +00:00
atbrakhi
433d0acd0e devtools: Make why attribute use PauseReasons (#42878)
devtools: Make `why` attribute use `PauseReasons`

Currently we have why attribute hardcoded as per the event. In this PR
we introduce `PAUSE_REASON` and make sure `why` attribute is using
`PAUSE_REASONS`.

This is in order to support the upcoming work on `onStep`, `onPop`, and
`onEnterFrame` hook.

Testing: all existing tests are passing
Fixes: Part of #36027

Signed-off-by: atbrakhi <atbrakhi@igalia.com>
Co-authored-by: eri <eri@igalia.com>
2026-02-27 09:22:33 +00:00
Onur Şahin
2a0b4606ab script: use &mut JSContext in MessagePort::PostMessage (#42880)
Replace crate::script_runtime::JSContext with js::context::JSContext in
`MessagePort::PostMessage`

Testing: Builds and runs fine
Fixes: part of https://github.com/servo/servo/issues/42347

Signed-off-by: Onur Sahin <sahinonur2000@hotmail.com>
2026-02-26 15:52:26 +00:00
Domenico Rizzo
e61ad2775e script: Encapsulates GPUDevice resource cleanup logic (#42851)
Moves the `Drop` implementation for `GPUDevice` into a private
`DroppableGPUDevice` struct.

Also updates `Bindings.conf` to prevent the generation of `Drop`
implementations for `GPUDevice`.

Testing: WebGpu tests just cover the cases
Fixes: Partially #26488

Signed-off-by: Domenico Rizzo <domenico.rizzo@gmail.com>
2026-02-26 13:03:05 +00:00
eri
a2f1c55676 devtools: Register frame actor before pause (#42844)
We need a map between frame actor ids (from devtools) and frame objects
(from debugger.js) to implement stepping hooks in the future.

To achieve this, we register the frame actor with a call to the devtools
before entering the event loop when the debugger is paused. Instead of
creating the frame actor in `handle_debugger_pause`, we create it
before.

Testing: It passes existing devtools tests
Part of: #36027

Signed-off-by: eri <eri@igalia.com>
Co-authored-by: atbrakhi <atbrakhi@igalia.com>
2026-02-26 09:24:04 +00:00
Luke Warlow
035b5d60f4 script: Add an initial command and commandfor attribute implementation (#41237)
Initial command and commandfor attribute implementation

Testing: Covered by WPTs

Signed-off-by: Luke Warlow <lwarlow@igalia.com>
2026-02-25 21:40:39 +00:00
Oriol Brufau
d5c82150e0 layout: Add testing API for counting restyled and rebuilt fragments (#42817)
Now `ServoTestUtils.forceLayout()` will provide the number of fragments
that have been restyled and rebuilt. This will be useful to test that
incremental layout works well.

Testing: Adds a test using this new API

---------

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Luke Warlow <lwarlow@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2026-02-25 21:25:32 +00:00
Tim van der Lippe
756af3bf37 script: Fix loading of about:srcdoc documents (#41959)
Align with the spec and implement part of its lazy loading
steps. Most tests use non-srcdoc lazy loading URLs, so most
tests will not pass until the other parts are implemented
as well.

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
2026-02-25 19:57:41 +00:00
Jonathan Schwender
4b2e8c38d1 script bindings: Fix warning about unused span. (#42850)
The span needs to be assigned to a variable, so that it drops at the end
of scope.
This was introduced in #42715. 
Additionally also switch tho the profile_traits macro to simplify the
statement.

Testing: Manually verified the warning is fixed.

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2026-02-25 18:30:40 +00:00
Narfinger
a122bde4b1 Script: Use &mut JSContext in CheckValidity and ReportValidity Methods (#42820)
This is part of replacing can_gc with the new &JSContext/&mut JSContext
method.
We modify CheckValidity and ReportValidity in various HTML Elements to
use the context instead of CanGc.

Testing: Compilation is the test as this is mostly mechanical.

---------

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
2026-02-25 10:34:21 +00:00
Sam
6c334f2811 script: Replace RAII of CallSetup and AutoEntryScript with a function wrapper (#42715)
As mentioned in #40600 we will need this to properly handle &mut
JSContext (we cannot pass it to drop) and I think this wrappers are
preferred ways of doing this in rust as it is safe to forget (not call
drop) which is unsound in this case (due to realm stack at least).

Revieable per commits.

Testing: Just a refactor, but should be covered by WPT

---------

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2026-02-25 09:13:18 +00:00
Sam
3e2f14c455 script: Pass down &mut JSContext in servoparser and event loop. (#42635)
I only wanted to get `&mut JSContext` in microtask chunk and checkpoint,
but this in turn needed `&mut JSContext` in servoparser, which then
caused need for even more changes in script.

I tried to limit the size by putting some `temp_cx` in:
- drops of `LoadBlocker`, `GenericAutoEntryScript`
- methods of `VirtualMethods`
- methods of `FetchResponseListener`

Testing: Just refactor, but should be covered by WPT tests.
Part of #40600

---------

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2026-02-25 07:14:23 +00:00
Onur Şahin
a4d98df1a9 script: use &mut JSContext inside History (#42805)
Replace `crate::script_runtime::JSContext` with `js::context::JSContext`
in:
- `History::PostMessage`
- `History::ReplaceState`
- `History::GetState`

Testing: Builds and runs locally. [WPT
passed](https://github.com/onsah/servo/actions/runs/22341528931)

Fixes: part of https://github.com/servo/servo/issues/42347

Signed-off-by: Onur Sahin <sahinonur2000@hotmail.com>
2026-02-25 02:37:39 +00:00
Kingsley Yung
5b3684e2ce script: Pass &mut JSContext to method of Crypto interface (#42809)
This patch changes the method of `Crypto` interface to use the new `&mut
JSContext`.

The method `crypto.subtle` calls `SubtleCrypto::new` to create an
instance of `SubtleCrypto` and the new `&mut JSContext` is passed to
`SubtleCrypto::new`. Therefore, the new `reflect_dom_object_with_cx`
method is also used in `SubtleCrypto::new`.

Testing: Refactoring. Existing tests suffice.
Fixes: Part of #42638

Signed-off-by: Kingsley Yung <kingsley@kkoyung.dev>
2026-02-24 19:24:46 +00:00
Onur Şahin
16d2a8d72b script: use &mut JSContext in DissimilarOriginWindowMethods (#42780)
Replace `crate::script_runtime::JSContext` with `js::context::JSContext`
in:
- `DissimilarOriginWindowMethods::PostMessage`
- `DissimilarOriginWindowMethods::SetOpener`
- `DissimilarOriginWindowMethods::Opener`

Testing: Builds and runs locally. WPT [test
passed](https://github.com/onsah/servo/actions/runs/22342635066)

Fixes: part of https://github.com/servo/servo/issues/42347

Signed-off-by: Onur Sahin <sahinonur2000@hotmail.com>
2026-02-24 14:43:46 +00:00
eri
92259af702 devtools: Unify pause handling for breakpoints and interrupt (#42599)
The pause debugger screen should be shown for both pausing manually
(interrupt) and hitting a breakpoint.

Reuse the logic for pausing breakpoints to pause the debugger when the
user manually clicks the pause button.

Rename the pause event to interrupt to match the language of the
DevTools client and to avoid confusion with paused frames, which can
happen on interrupt or on a breakpoint.


https://github.com/user-attachments/assets/ceb0007d-0e57-44d6-a159-55980ff8b517

Testing: New DevTools test and manual testing.
Part of: #36027

cc @atbrakhi

---------

Signed-off-by: eri <eri@igalia.com>
Co-authored-by: atbrakhi <atbrakhi@igalia.com>
2026-02-23 09:29:59 +00:00
Tim van der Lippe
f8552ed214 script: Implement remaining query command methods (#42748)
This implements a baseline for these tests. By implementing these dummy
methods, we avoid a lot of test expectation clutter when debugging these
tests to figure out why they aren't passing yet.

For the delete command, since it doesn't have any state or is
indeterminate, we always return the same.

Part of #25005

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
2026-02-22 21:35:51 +00:00
Sam
43bdd3818d script: Pass &mut JSContext to more dom methods (#42751)
split from https://github.com/servo/servo/pull/42635, some dom methods
are also called from other function, which require passing down cx from
many more places :(

Testing: Just refactor, but should be covered by WPT.
Part of #42638

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2026-02-22 13:22:33 +00:00
Tim van der Lippe
e505275744 script: Implement queryCommandSupported (#42731)
This method was already present on the document, but
wasn't implemented yet. Note that now more tests are
failing, since before they weren't running. The tests
check if a command is enabled before they started
running.

The selection API doesn't yet take into account
contenteditable containers, which is why these
tests don't consider a command enabled, since the
range of the selection is empty.

Part of #25005

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
2026-02-21 20:36:26 +00:00
aquaThirsty
235dd18b79 fixup: inline CanGc and use CurrentRealm in get_gatt_children (#42735)
Follow-up PR to #42720 (addressing nits by @sagudev)

Testing: It compiles without any errors
Fixes: Part of issue #42638 and PR #42720

Signed-off-by: TimurBora <timurborisov5561@gmail.com>
2026-02-21 05:24:42 +00:00
Martin Robinson
e7ee1171d8 script: Remove some proprietary Servo-only testing methods from Window (#42728)
These three methods date back from the very early history of Servo and
are no longer necessary:

1. `Window.debug`: `console.log` is a better replacement for this method
   now. A manual test that tests the very basics of JavaScript used
   this. This test is removed as well.
2. `Window.gc`: This can be replaced with `TestUtils.gc`, which is part
    of a W3C specification.
3. `Window.js_backtrace`: This method is moved to `ServoTestUtils`.

Testing: Tests are updated to reflect these changes.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2026-02-20 17:32:34 +00:00
Luke Warlow
853fcf4fda script: Introduce ServoTestUtils and a forceLayout() function (#42714)
This introduces a new `ServoTestUtils` namespace with a `forceLayout()`
function. This `forceLayout()` function returns an object which
currently has an array of the phases ran by layout. Also moves
`panic()`, `crashHard()` and `advanceClock()` from `TestBinding` to this
new namespace.  `TestBinding` is meant to test the bindings generation,
but these are more generic helpers for Servo-only tests.

Testing: This change adds a series of Servo-only tests that verify the
behavior of the new `forceLayout()` function. Tests that rely on the
moved interfaces are updated and should continue to pass.

Signed-off-by: Luke Warlow <lwarlow@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2026-02-20 13:00:06 +00:00
Kingsley Yung
b6f714c73d script: Pass &mut JSContext to methods of SubtleCrypto (#42726)
This patch changes the methods of `SubtleCrypto` to use the new `&mut
JSContext` and `&mut CurrentRealm`, Those methods are `Encrypt`,
`Decrypt`, `Sign`, `Verify`, `GenerateKey`, `DeriveKey`, `DeriveBits`,
`Digest`, `ImportKey`, `ExportKey`, `WrapKey`, `UnwrapKey`,
`EncapsulateKey`, `EncapsulateBits`, `DecapsulateKey`,
`DecapsulateBits`.

The change also propagate to the all internal methods within the
`subtlecrypto` module.

Testing: Refactoring. Existing tests suffice.
Fixes: Part of #42638

---------

Signed-off-by: Kingsley Yung <kingsley@kkoyung.dev>
2026-02-20 11:18:29 +00:00
aquaThirsty
47bd830c8b script/dom/bluetooth: Move to &mut js::context::JSContext (#42720)
Move from `InRealm` to `&mut CurrentRealm` and from `CanGc` to `&mut
js::context::JSContext`

Testing: `/mach build`, `/mach test-unit` and `/mach test-tidy`
Fixes: Part of #42638

Signed-off-by: TimurBora <timurborisov5561@gmail.com>
2026-02-20 08:25:14 +00:00
Sam
3cde83447e script: always let cx = &mut cx in codegen and support cx in Constructor (#42712)
#42681 did not actually allowed using cx in Constructor, but it did most
heavy lifting. Now we need to pass cx to Constructor call (and skip
CanGc) if cx is requested in Bindings.conf. This PR also test this on
testbindings.

Also we now always use `let cx = &mut cx`, so we can always use just cx
(compiler will automatically deref it into &cx if needed). This is
important because codegen stuff is called from many places to it make
sense/easier to just unify this.

Testing: It compiles

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2026-02-19 08:57:40 +00:00
atbrakhi
3c8c46d32f devtools: implement pause and resume in debugger (#42580)
When a breakpoint is hit, the script thread now pauses execution and
notifies devtools clients with a "paused" event. The script
thread enters a loop that processes devtools messages until
a Resume command is received.

This change does not implement manual pause

Testing: Added new test
Fixes: part of https://github.com/servo/servo/issues/36027




https://github.com/user-attachments/assets/c619db20-4579-4f77-aa60-0e43e6e7e575

Signed-off-by: atbrakhi <atbrakhi@igalia.com>
2026-02-18 10:08:46 +00:00
Domenico Rizzo
24f2303811 script: Defers GPUComputePipeline drop to a helper struct (#42690)
Moves the drop implementation for `GPUComputePipeline` to a separate
`DroppableGPUComputePipeline` struct.

Removes `allowDropImpl` from the bindings configuration.

Testing: No tests added because of webgpu tests existent coverage
Fixes: Partially #26488

Signed-off-by: Domenico Rizzo <domenico.rizzo@gmail.com>
2026-02-18 04:22:50 +00:00
aquaThirsty
87ff2021a2 script: Turn scrollParent into a function and change wpt tests (#42689)
Turn `scrollParent` into a function as the CSSWG resolved in
https://github.com/w3c/csswg-drafts/issues/12731#issuecomment-3885728833

Testing: updating wpt tests
`tests/wpt/tests/css/cssom-view/scrollParent.html` and
`tests/wpt/tests/css/cssom-view/scrollParent-shadow-tree.html`
Fixes: #42547

Signed-off-by: TimurBora <timurborisov5561@gmail.com>
2026-02-17 21:21:12 +00:00
Narfinger
45eb43c1a7 canvas: Change canvas to use JSContext instead of CanGc (#42662)
This changes the methods in dom/canvas to use the new JSContext/&mut
JSContext instead of CanGc.

Part of https://github.com/servo/servo/issues/40600

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>

Testing: This is a refactor, hence, compilation is the test.

---------

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
2026-02-17 16:12:01 +00:00
Tim van der Lippe
92e2d00083 script: Implement check for supported and enabled commands (#42634)
The first step of `execCommand` commands is to figure out
if they are supported and enabled. Therefore, implement
these two pieces with only 1 command: delete.

The implementation of `delete` is currently mostly dummy,
to have at least something going. But the main part of
this change is to setup the infrastructure to figure out
when commands are supported and enabled.

For the first part, its simply the list of commands we
currently have implemented, which is only delete.

For the second part, we need to consider the active range
of the current selection and do various checks, as well as
check the presence of `contenteditable`.

Part of #25005

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
2026-02-17 13:19:41 +00:00
Sam
f623081537 script: Pass &mut JSContext to Constructor and Wrap (#42681)
Testing: Just refactor, but should be covered by WPT
Part of #40600

---------

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2026-02-17 13:15:24 +00:00
Tim van der Lippe
e413d45982 script: Move ImportScripts to &mut JSContext (#42665)
Part of #42638

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
2026-02-17 05:37:59 +00:00
Tim van der Lippe
3665659dbe script: Move attribute-related methods to &mut JSContext (#42667)
Part of #42638

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
2026-02-17 05:36:38 +00:00
Alice
00e07a6736 Bump rust version to 1.92.0 (#42661)
This is a prerequisite for using the new version of egui introduced in
https://github.com/servo/servo/pull/42402.

Testing: No new behaviour.

Signed-off-by: Alice Boxhall <alice@igalia.com>
2026-02-16 18:58:15 +00:00
Tim van der Lippe
e23c14aabd script: Implement support for contenteditable (#42633)
This is required for `document.execCommand`, since it needs to check the
active range of the selection whether it has the attribute or not.

It also turns on the relevant WPT tests, with 1
pre-existing failure for absolute positioned pseudo elements. These
currently do not render correctly, regardless of the existence of
contenteditable.

Fixes #12776

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
2026-02-16 18:55:42 +00:00
Domenico Rizzo
8a16d8ca7d script: Refactors GPUComputePassEncoder to manage drop logic (#42656)
Moves the drop logic for `GPUComputePassEncoder` to a separate
`DroppableGPUComputePassEncoder` struct.

Testing: Tests that coverages webgpu just exist
Fixes: Partially #26488

Signed-off-by: Domenico Rizzo <domenico.rizzo@gmail.com>
2026-02-16 11:10:27 +00:00
Gae24
c13d8a2eff script: Start using &mut JSContext in devtools and webdriver code (#42640)
This is a first step to compile scripts using `&mut JSContext`.

Testing: Refactor, covered by existing WPT tests.
Part of #40600

---------

Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
2026-02-16 08:32:08 +00:00
Sam
3283fcfb3d script: Move CSSStyleSheetMethods to &mut JSContext (#42637)
Demonstrate how to change some methods:
- [from `InRealm` to `&mut
CurrentRealm`](0132fc0fbe)
- [from `CanGc` to `&mut
JSContext`](36e5b32ee1)

Testing: Just refactor, should be covered by WPT.
Part of #40600

---------

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2026-02-15 15:30:27 +00:00