mirror of
https://github.com/servo/servo.git
synced 2025-08-17 19:35:33 +01:00
52388 commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
|
c741e45b21
|
build(deps): bump clap from 4.5.44 to 4.5.45 (#38662)
Bumps [clap](https://github.com/clap-rs/clap) from 4.5.44 to 4.5.45. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p> <blockquote> <h2>v4.5.45</h2> <h2>[4.5.45] - 2025-08-12</h2> <h3>Fixes</h3> <ul> <li><em>(unstable-v5)</em> <code>ValueEnum</code> variants now use the full doc comment, not summary, for <code>PossibleValue::help</code></li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's changelog</a>.</em></p> <blockquote> <h2>[4.5.45] - 2025-08-12</h2> <h3>Fixes</h3> <ul> <li><em>(unstable-v5)</em> <code>ValueEnum</code> variants now use the full doc comment, not summary, for <code>PossibleValue::help</code></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
591b107b3a
|
build(deps): bump rayon-core from 1.12.1 to 1.13.0 (#38663)
Bumps [rayon-core](https://github.com/rayon-rs/rayon) from 1.12.1 to 1.13.0. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/rayon-rs/rayon/blob/main/RELEASES.md">rayon-core's changelog</a>.</em></p> <blockquote> <h1>Release rayon 1.11.0 / rayon-core 1.13.0 (2025-08-12)</h1> <ul> <li>The minimum supported <code>rustc</code> is now 1.80.</li> <li><code>iter::repeatn</code> has been renamed to <code>iter::repeat_n</code> to match the name stabilized in the standard library. The old name still exists as a deprecated function for compatibility.</li> <li>Fixed a bug in <code>in_place_scope</code> when the default global registry uses the current thread, like on WebAssembly without threading support.</li> <li><code>binary_heap::Iter</code> no longer requires a temporary allocation.</li> <li>Relaxed trait bounds on many of the public structs.</li> <li>Implemented <code>IntoParallelIterator for Box<[T]></code> and its references.</li> <li>Implemented <code>FromParallelIterator<_> for Box<str></code> via <code>String</code>.</li> </ul> <h1>Release rayon 1.10.0 (2024-03-23)</h1> <ul> <li>The new methods <code>ParallelSlice::par_chunk_by</code> and <code>ParallelSliceMut::par_chunk_by_mut</code> work like the slice methods <code>chunk_by</code> and <code>chunk_by_mut</code> added in Rust 1.77.</li> </ul> <h1>Release rayon 1.9.0 (2024-02-27)</h1> <ul> <li>The new methods <code>IndexedParallelIterator::by_exponential_blocks</code> and <code>by_uniform_blocks</code> allow processing items in smaller groups at a time.</li> <li>The new <code>iter::walk_tree</code>, <code>walk_tree_prefix</code>, and <code>walk_tree_postfix</code> functions enable custom parallel iteration over tree-like structures.</li> <li>The new method <code>ParallelIterator::collect_vec_list</code> returns items as a linked list of vectors, which is an efficient mode of parallel collection used by many of the internal implementations of <code>collect</code>.</li> <li>The new methods <code>ParallelSliceMut::par_split_inclusive_mut</code>, <code>ParallelSlice::par_split_inclusive</code>, and <code>ParallelString::par_split_inclusive</code> all work like a normal split but keeping the separator as part of the left slice.</li> <li>The new <code>ParallelString::par_split_ascii_whitespace</code> splits only on ASCII whitespace, which is faster than including Unicode multi-byte whitespace.</li> <li><code>OsString</code> now implements <code>FromParallelIterator<_></code> and <code>ParallelExtend<_></code> for a few item types similar to the standard <code>FromIterator</code> and <code>Extend</code>.</li> <li>The internal <code>Pattern</code> trait for string methods is now implemented for <code>[char; N]</code> and <code>&[char; N]</code>, matching any of the given characters.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
026f00f027
|
build(deps): bump syn from 2.0.104 to 2.0.105 (#38660)
Bumps [syn](https://github.com/dtolnay/syn) from 2.0.104 to 2.0.105. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/dtolnay/syn/releases">syn's releases</a>.</em></p> <blockquote> <h2>2.0.105</h2> <ul> <li>Disallow "negative" inherent impls like <code>impl !T {}</code> (<a href="https://redirect.github.com/dtolnay/syn/issues/1881">#1881</a>, <a href="https://redirect.github.com/rust-lang/rust/pull/144386">rust-lang/rust#144386</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
70be996a29
|
net: Remove CoreResourceThread from FetchThread state (#38422)
In single process mode, there is a race condition on the initialization of the global fetch thread: once initialized the global fetch thread will always use a given core resource thread, and this will be determined by the component who first initializes it. For example, if the canvas paint thread first does an async fetch, then this will set the public core resource as used for all future fetches, including those coming from a pipeline in private mode. In multi-process mode, there is a race condition per window event-loop: the first pipeline to use the fetch will set the core resource thread for all others. To ensure the fetch thread uses the correct core resource thread(private vs public), we need to pass the core resource thread to each fetch thread operation for which is it needed. Testing: It should not break existing fetch WPT tests. The race condition is not something that can be tested reliably, but it seems to be based on solid logic. Fixes: follow-up from https://github.com/servo/servo/pull/38421/files#r2248950924 --------- Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com> |
||
|
5ff084a688
|
layout: Use the PseudoElement from ServoThreadSafeLayoutNode in NodeAndStyleInfo (#38630)
Instead of storing the non-pseudo version of the node in `NodeAndStyleInfo`, store the pseudo version and use that to query the `PseudoElement` that a `NodeAndStyleInfo` refers to. This is a step on the way toward fixing nested pseudo-elements in Servo. Testing: This should not change behavior and is thus covered by existing WPT tests. Signed-off-by: Martin Robinson <mrobinson@igalia.com> |
||
|
ee7c1d9109
|
layout: Use ServoThreadSafeLayoutNode in more places (#38626)
Use `ServoThreadSafeLayoutNode` in more places in layout rather than `ServoLayoutNode`. The former is meant to be used during layout, but layout 2020 was written against the latter. In general, this reduces the amount of conversion to the thread-safe version in many places in layout. In addition, an unused iterator from the `script` crate `ServoThreadSafeLayoutNodeChildrenIterator` is replaced with the child iterator from `layout`. The `layout` version must be directly in `script` now as it uses the dangerous variants of `next_sibling` and `first_child`, which allow encapsulating the unsafe bits into one module. This will ultimately be useful for storing the layout data of pseudo-element children of pseudo-elements properly. Testing: This should not change any behavior and thus is covered by existing tests. Signed-off-by: Martin Robinson <mrobinson@igalia.com> Co-authored-by: Oriol Brufau <obrufau@igalia.com> |
||
|
20ad1ce84e |
Revert "ci: Run devtools tests whenever we run unit tests (#38614)"
This reverts commit
|
||
|
18f0d92e99
|
build(deps): bump the napi-ohos-related group with 4 updates (#38555)
Bumps the napi-ohos-related group with 4 updates: [napi-derive-ohos](https://github.com/ohos-rs/ohos-rs), [napi-ohos](https://github.com/ohos-rs/ohos-rs), [napi-derive-backend-ohos](https://github.com/ohos-rs/ohos-rs) and [napi-sys-ohos](https://github.com/ohos-rs/ohos-rs). Updates `napi-derive-ohos` from 1.0.4 to 1.1.0 <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
d0d952d1fa
|
build(deps): bump nix from 0.29.0 to 0.30.1 (#38650)
Bumps [nix](https://github.com/nix-rust/nix) from 0.29.0 to 0.30.1. - [Changelog](https://github.com/nix-rust/nix/blob/master/CHANGELOG.md) - [Commits](https://github.com/nix-rust/nix/compare/v0.29.0...v0.30.1) Closes: #38145 Testing: Covered by existing tests Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com> |
||
|
069ad40872
|
script: Move the majority of the input event handling code to DocumentEventHandler (#38584)
This moves the majority of the input event handler code to the `DocumentEventHandler` helper structure. It better encapsulates event handling, hiding most of the details from both `ScriptThread` and `Document`. The benefit here is that the majority of the functions can become private and `Document` is over 1000 lines shorter. Testing: This should not change any behavior so is covered by existing WPT tests. Signed-off-by: Martin Robinson <mrobinson@igalia.com> |
||
|
bd9bb77295
|
script_bindings: Assert that serializable/transferable types have accurate WebIDL annotations (#38615)
These changes add compile-time assertions that: * any type that implements the Serializable/Transferable trait has a `[Serializable]` or `[Transferable]` annotation in the interface WebIDL * any WebIDL interface with the `[Serializable]` or `[Transferable]` annotation implements the corresponding trait This is useful because it means that WebIDL definitions will be less confusing if you're trying to figure out whether Servo supports serializing/transferring a particular interface type. It also makes fixing #21715 in the future a little bit easier, because the annotations will remain up to date. Testing: compile-time only; no point in writing tests for this since it involves webidl codegen. --------- Signed-off-by: Josh Matthews <josh@joshmatthews.net> |
||
|
0d6d434e59
|
build(deps): bump anyhow from 1.0.98 to 1.0.99 (#38635)
Bumps [anyhow](https://github.com/dtolnay/anyhow) from 1.0.98 to 1.0.99. <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
6029976365
|
webdriver: Synchronize "close window" command & Return correct error type (#38620)
1. Synchronize [Close Window](https://w3c.github.io/webdriver/#dfn-close-window) command to reduce intermittency 2. There was a update last month exposing that we are not returning correct error type for Session getter. https://github.com/web-platform-tests/wpt/pull/53735 3. Other trivial fix Testing: - `/webdriver/tests/classic/close_window/close.py` can now fully pass. - `/webdriver/tests/classic/delete_session/*` can now fully pass. --------- Signed-off-by: Euclid Ye <euclid.ye@huawei.com> |
||
|
7fc2f31309
|
build(deps): bump clap from 4.5.43 to 4.5.44 (#38641)
[//]: # (dependabot-start) ⚠️ **Dependabot is rebasing this PR** ⚠️ Rebasing might not happen immediately, so don't worry if this takes some time. Note: if you make any changes to this PR yourself, they will take precedence over the rebase. --- [//]: # (dependabot-end) Bumps [clap](https://github.com/clap-rs/clap) from 4.5.43 to 4.5.44. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/clap-rs/clap/releases">clap's releases</a>.</em></p> <blockquote> <h2>v4.5.44</h2> <h2>[4.5.44] - 2025-08-11</h2> <h3>Features</h3> <ul> <li>Add <code>Command::mut_subcommands</code></li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/clap-rs/clap/blob/master/CHANGELOG.md">clap's changelog</a>.</em></p> <blockquote> <h2>[4.5.44] - 2025-08-11</h2> <h3>Features</h3> <ul> <li>Add <code>Command::mut_subcommands</code></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
6381c76f64
|
build(deps): bump proc-macro2 from 1.0.96 to 1.0.97 (#38639)
Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.96 to 1.0.97. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/dtolnay/proc-macro2/releases">proc-macro2's releases</a>.</em></p> <blockquote> <h2>1.0.97</h2> <ul> <li>Allow build-script cleanup failure with NFSv3 output directory to be non-fatal (<a href="https://redirect.github.com/dtolnay/proc-macro2/issues/505">#505</a>, <a href="https://redirect.github.com/dtolnay/proc-macro2/issues/512">#512</a>, thanks <a href="https://github.com/davvid"><code>@davvid</code></a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
319909782c
|
build(deps): bump the servo-media-related group with 12 updates (#38640)
Bumps the servo-media-related group with 12 updates: | Package | From | To | | --- | --- | --- | | [servo-media](https://github.com/servo/media) | ``4f36494`` | ``a57b0e6`` | | [servo-media-dummy](https://github.com/servo/media) | ``4f36494`` | ``a57b0e6`` | | [servo-media-gstreamer](https://github.com/servo/media) | ``4f36494`` | ``a57b0e6`` | | servo-media-audio | ``4f36494`` | ``a57b0e6`` | | servo-media-derive | ``4f36494`` | ``a57b0e6`` | | servo-media-gstreamer-render | ``4f36494`` | ``a57b0e6`` | | servo-media-gstreamer-render-android | ``4f36494`` | ``a57b0e6`` | | servo-media-gstreamer-render-unix | ``4f36494`` | ``a57b0e6`` | | servo-media-player | ``4f36494`` | ``a57b0e6`` | | servo-media-streams | ``4f36494`` | ``a57b0e6`` | | servo-media-traits | ``4f36494`` | ``a57b0e6`` | | servo-media-webrtc | ``4f36494`` | ``a57b0e6`` | Updates `servo-media` from `4f36494` to `a57b0e6` <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
c0eb999dbe
|
build(deps): bump ab_glyph_rasterizer from 0.1.9 to 0.1.10 (#38637)
Bumps [ab_glyph_rasterizer](https://github.com/alexheretic/ab-glyph) from 0.1.9 to 0.1.10. <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
bcd569f116
|
webdriver: Add handle user prompt for some command (#38591)
- When taking element screenshot, we should handle the user prompt before getting the element bounding rectangle - Handle user prompt for `is element enabled` and `is element selected` Testing: `./tests/wpt/tests/webdriver/tests/classic/{take_element_screenshot, is_element_enabled, is_element_selected}/user_prompts.py` Signed-off-by: PotatoCP <Kenzie.Raditya.Tirtarahardja@huawei.com> |
||
|
4b91dc6d82
|
CI: Check MSRV in CI (#37152)
As previously proposed on zulip and discussed in the coordination meeting, add a check to CI to see if servo still compiles with our minimum supported Rust version. To avoid requiring changes, we define our MSRV as the current version we are using now (1.85.0). This does not prevent us from updating the default compiler version, which we should still do, to get benefits like faster compile times, newer lints and making sure crown stays up-to-date. We simply test that libservo compiles in CI, since libservo (and dependencies) is what embedders would care about. We also don't need mach (or bootstrap!) for this, so we just use cargo build. Testing: This PR adds a CI test. [`./mach try windows-build-libservo linux-build-libservo mac-build-libservo`](https://github.com/jschwe/servo/actions/runs/16901171766) Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com> |
||
|
6ff5c4ef99
|
tidy: Remove dead and redundant code from Servo Rust tidy check (#38632)
- Remove all handling of comments and attributes. This was not affecting the checks in any way. - Remove `is_associated_type()` as it was unused. - Remove the check for `&String`, `&Vec`, operators at the end of the line, and the unit return type as clippy already checks these (and handles the mutable variants). Testing: This is covered by tidy script tests. Signed-off-by: Martin Robinson <mrobinson@igalia.com> |
||
|
2ea251117a
|
script: Remove unnecessary Arc<Mutex> (#38631)
The `Arc<Mutex<>>` wrapper around the IpcSender does not appear to be needed anymore. Testing: No functional changes. Covered by existing tests Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com> |
||
|
47aa9ea8cf
|
ci: Run devtools tests whenever we run unit tests (#38614)
this patch updates linux.yml, mac.yml, and windows.yml to run the devtools test suite (#36325), whenever unit tests are enabled in those workflows. plus three changes that speed up the tests from 73 → 65 → 56 → 51 seconds: - we replace the hardcoded sleep(1) after starting servoshell with a loop that waits until the devtools port is open (this also fixes intermittent failures when servoshell starts too slowly, especially on macOS) - we start the internal web servers once, and reuse them across all tests - we run servoshell in headless mode (this is also required because most CI runners have no GUI) finally we fix two bugs that cause very noisy but not very interesting error messages: - in the test code, we use a [context manager](https://docs.python.org/3/reference/datamodel.html#context-managers) to ensure the devtools client is disconnected unconditionally, even if test methods or assert helper methods raise exceptions (this was causing errors on all platforms) - in the devtools server, we treat “connection reset” errors when reading from the client like a normal EOF, rather than as a failure (this was causing errors on Windows) on self-hosted linux builds, there are still spurious error messages like the following, but we can fix them later: ``` error: XDG_RUNTIME_DIR not set in the environment. libEGL warning: egl: failed to create dri2 screen ``` Testing: this patch effectively adds 44 tests to CI Fixes: #36325 --------- Signed-off-by: Delan Azabani <dazabani@igalia.com> Signed-off-by: atbrakhi <atbrakhi@igalia.com> Co-authored-by: atbrakhi <atbrakhi@igalia.com> |
||
|
141413d52e
|
layout: Improve sizing for inline SVG (#38603)
The metadata provided by usvg has unreliable sizes. Ignore it, and rely on the `width`, `height` and `viewBox` attributes instead. Note that inline SVG with a natural aspect ratio but no natural sizes should stretch to the containing block. This is left for a follow-up. Bumps Stylo to https://github.com/servo/stylo/pull/229 Testing: Improves several WPT. --------- Signed-off-by: Oriol Brufau <obrufau@igalia.com> Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com> |
||
|
319f4f0e38
|
devtools: Fix getBreakpointListActor handler in watcher actor (#38624)
the Firefox devtools client often sends multiple `getBreakpointListActor` requests to the watcher actor when connecting, and the Firefox devtools server returns the same breakpoint list actor every time, but Servo returns a new breakpoint list actor each time. this patch aligns Servo’s behaviour with Firefox. Testing: this patch adds a devtools test Signed-off-by: Delan Azabani <dazabani@igalia.com> Co-authored-by: atbrakhi <atbrakhi@igalia.com> |
||
|
b3978439ad
|
test config: Add escape character (#38619)
Add escape character for config. Otherwise cannot run webdriver test. Fixes: `wptrunner.wptmanifest.parser.ParseError: Junk before EOL ]` Signed-off-by: Euclid Ye <euclid.ye@huawei.com> |
||
|
e5a73ede17
|
script: Send JS evaluation errors to constellation (#38602)
Send JS evaluation errors to constellation in `script_thread::handle_evaluate_javascript` instead of silently swallowing. Testing: New test cases in `tests/webview.rs`: one for compilation failure, another for evaluation failure. Fixes: #37810 Signed-off-by: Rodion Borovyk <rodion.borovyk@gmail.com> |
||
|
9effdce5a1
|
Implement webdriver extract script arguments (#38357)
Fix script parsing step. Implement webdriver `extract script arguments`. Implement `deserialize_web_element` and `deserialize_shadow_root` from script command argument. Testing: `/tests/wpt/tests/webdriver/tests/classic/execute_script/` `/tests/wpt/tests/webdriver/tests/classic/execute_async_script/` cc: @xiaochengh --------- Signed-off-by: batu_hoang <hoang.binh.trong@huawei.com> |
||
|
c0d884ddb2
|
script: Implement getModifierState for mouse event (#38535)
Implement missing idl function `getModifierState` for mouse event. The
implementation is exactly the same as in keyboard event
https://w3c.github.io/uievents/#dom-keyboardevent-getmodifierstate.
|
||
|
2e2bfc6067
|
Basic webdriver support to servoshell on ohos (#38386)
Adding basic webdriver support to servoshell on ohos and basic communication between the ohos device and script. Testing: Manual testing and tracing logs Signed-off-by: abdelrahman1234567 <abdelrahman.hossameldin.awadalla@huawei.com> |
||
|
f5b631e270
|
devtools: Show clients where they can set breakpoints (#37667)
devtools clients query source actors to determine where the user can set breakpoints in a source. there are two relevant requests here: `getBreakableLines` controls which line numbers can be clicked in the margin, and once a line number is clicked, `getBreakpointPositionsCompressed` controls where to show breakpoint buttons within that line. this patch handles those requests by querying the [SpiderMonkey Debugger API](https://firefox-source-docs.mozilla.org/js/Debugger/) for that information: - devtools sends its script thread a GetPossibleBreakpoints message for the source’s [`spidermonkey_id`](https://firefox-source-docs.mozilla.org/js/Debugger/Debugger.Source.html#id) - the script thread fires a `getPossibleBreakpoints` event into its debugger global - the debugger script looks up the [root](https://firefox-source-docs.mozilla.org/js/Debugger/Debugger.html#onnewscript-script-global) [Debugger.Script](https://firefox-source-docs.mozilla.org/js/Debugger/Debugger.Script.html#getpossiblebreakpoints-query) for that source, calls [getPossibleBreakpoints()](https://firefox-source-docs.mozilla.org/js/Debugger/Debugger.Script.html#getpossiblebreakpoints-query), and returns the result via DebuggerGlobalScope#getPossibleBreakpointsResult() - that method takes the pending result sender, and sends the result back to devtools - devtools massages the result into the format required by the request, and replies to the client as a result, users of the Firefox devtools client can now set breakpoints, though they don’t have any effect. Testing: this patch adds new devtools tests Fixes: part of #36027 <img width="1433" height="1328" alt="image" src="https://github.com/user-attachments/assets/f0cd31e0-742f-44d3-8c5d-ceedd9a2706d" /> --------- Signed-off-by: Delan Azabani <dazabani@igalia.com> Co-authored-by: atbrakhi <atbrakhi@igalia.com> |
||
|
1995e22e19
|
net: Send Cookies to Devtools (#38601)
The current behaviour in dev tools network monitor is missing cookies in the cookies tab in Request Details, displaying "No cookies for this request" even for requests with cookies. The changes in this PR refactors the `request_cookies` and `response_cookies` to check and retrieve the cookies if available Also, the structure in which the cookies is sent to devtools is been refactored to match the format firefox's devtools client expects. With these changes, we now have the cookies displayed for requests that have one. Fixes: https://github.com/servo/servo/issues/38127 --------- Signed-off-by: uthmaniv <uthmanyahayababa@gmail.com> |
||
|
122069cf43
|
build(deps): bump libc from 0.2.174 to 0.2.175 (#38608)
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.174 to 0.2.175. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/rust-lang/libc/releases">libc's releases</a>.</em></p> <blockquote> <h2>0.2.175</h2> <h3>Added</h3> <ul> <li>AIX: Add <code>getpeereid</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4524">#4524</a>)</li> <li>AIX: Add <code>struct ld_info</code> and friends (<a href="https://redirect.github.com/rust-lang/libc/pull/4578">#4578</a>)</li> <li>AIX: Retore <code>struct winsize</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4577">#4577</a>)</li> <li>Android: Add UDP socket option constants (<a href="https://redirect.github.com/rust-lang/libc/pull/4619">#4619</a>)</li> <li>Android: Add <code>CLONE_CLEAR_SIGHAND</code> and <code>CLONE_INTO_CGROUP</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4502">#4502</a>)</li> <li>Android: Add more <code>prctl</code> constants (<a href="https://redirect.github.com/rust-lang/libc/pull/4531">#4531</a>)</li> <li>FreeBSD Add further TCP stack-related constants (<a href="https://redirect.github.com/rust-lang/libc/pull/4196">#4196</a>)</li> <li>FreeBSD x86-64: Add <code>mcontext_t.mc_tlsbase </code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4503">#4503</a>)</li> <li>FreeBSD15: Add <code>kinfo_proc.ki_uerrmsg</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4552">#4552</a>)</li> <li>FreeBSD: Add <code>in_conninfo</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4482">#4482</a>)</li> <li>FreeBSD: Add <code>xinpgen</code> and related types (<a href="https://redirect.github.com/rust-lang/libc/pull/4482">#4482</a>)</li> <li>FreeBSD: Add <code>xktls_session</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4482">#4482</a>)</li> <li>Haiku: Add functionality from <code>libbsd</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4221">#4221</a>)</li> <li>Linux: Add <code>SECBIT_*</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4480">#4480</a>)</li> <li>NetBSD, OpenBSD: Export <code>ioctl</code> request generator macros (<a href="https://redirect.github.com/rust-lang/libc/pull/4460">#4460</a>)</li> <li>NetBSD: Add <code>ptsname_r</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4608">#4608</a>)</li> <li>RISCV32: Add time-related syscalls (<a href="https://redirect.github.com/rust-lang/libc/pull/4612">#4612</a>)</li> <li>Solarish: Add <code>strftime*</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4453">#4453</a>)</li> <li>linux: Add <code>EXEC_RESTRICT_*</code> and <code>EXEC_DENY_*</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4545">#4545</a>)</li> </ul> <h3>Changed</h3> <ul> <li>AIX: Add <code>const</code> to signatures to be consistent with other platforms (<a href="https://redirect.github.com/rust-lang/libc/pull/4563">#4563</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>AIX: Fix the type of <code>struct statvfs.f_fsid</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4576">#4576</a>)</li> <li>AIX: Fix the type of constants for the <code>ioctl</code> <code>request</code> argument (<a href="https://redirect.github.com/rust-lang/libc/pull/4582">#4582</a>)</li> <li>AIX: Fix the types of <code>stat{,64}.st_*tim</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4597">#4597</a>)</li> <li>AIX: Use unique <code>errno</code> values (<a href="https://redirect.github.com/rust-lang/libc/pull/4507">#4507</a>)</li> <li>Build: Fix an incorrect <code>target_os</code> -> <code>target_arch</code> check (<a href="https://redirect.github.com/rust-lang/libc/pull/4550">#4550</a>)</li> <li>FreeBSD: Fix the type of <code>xktls_session_onedir.ifnet</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4552">#4552</a>)</li> <li>Mips64 musl: Fix the type of <code>nlink_t</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4509">#4509</a>)</li> <li>Mips64 musl: Use a special MIPS definition of <code>stack_t</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4528">#4528</a>)</li> <li>Mips64: Fix <code>SI_TIMER</code>, <code>SI_MESGQ</code> and <code>SI_ASYNCIO</code> definitions (<a href="https://redirect.github.com/rust-lang/libc/pull/4529">#4529</a>)</li> <li>Musl Mips64: Swap the order of <code>si_errno</code> and <code>si_code</code> in <code>siginfo_t</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4530">#4530</a>)</li> <li>Musl Mips64: Use a special MIPS definition of <code>statfs</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4527">#4527</a>)</li> <li>Musl: Fix the definition of <code>fanotify_event_metadata</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4510">#4510</a>)</li> <li>NetBSD: Correct <code>enum fae_action</code> to be <code>#[repr(C)]</code> (<a href=" |
||
|
b8f160c85b
|
build(deps): bump webrender_api from ae2477d to 15318d6 (#38604)
Bumps [webrender_api](https://github.com/servo/webrender) from `ae2477d` to `15318d6`. <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
5d21234872
|
script: Focus on mousedown instead of mouse click according to spec (#38589)
- Focus on mousedown instead of mouse click according to [spec](https://w3c.github.io/uievents/#handle-native-mouse-down) - Refactor to follow spec closer and make things more clear. - Add some spec link. - Remove some dead spec link. Still some preparation before implementing #38435. Testing: No regression in WebDriver & WPT. But update some outdated test. Fixes: #38588 --------- Signed-off-by: Euclid Ye <euclid.ye@huawei.com> |
||
|
d2122c8bd8
|
build(deps): bump uuid from 1.17.0 to 1.18.0 (#38611)
Bumps [uuid](https://github.com/uuid-rs/uuid) from 1.17.0 to 1.18.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/uuid-rs/uuid/releases">uuid's releases</a>.</em></p> <blockquote> <h2>v1.18.0</h2> <h2>What's Changed</h2> <ul> <li>Fix up mismatched_lifetime_syntaxes lint by <a href="https://github.com/KodrAus"><code>@KodrAus</code></a> in <a href="https://redirect.github.com/uuid-rs/uuid/pull/837">uuid-rs/uuid#837</a></li> <li>Conversions between <code>Timestamp</code> and <code>std::time::SystemTime</code> by <a href="https://github.com/dcormier"><code>@dcormier</code></a> in <a href="https://redirect.github.com/uuid-rs/uuid/pull/835">uuid-rs/uuid#835</a></li> <li>Wrap the error type used in time conversions by <a href="https://github.com/KodrAus"><code>@KodrAus</code></a> in <a href="https://redirect.github.com/uuid-rs/uuid/pull/838">uuid-rs/uuid#838</a></li> <li>Prepare for 1.18.0 release by <a href="https://github.com/KodrAus"><code>@KodrAus</code></a> in <a href="https://redirect.github.com/uuid-rs/uuid/pull/839">uuid-rs/uuid#839</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/dcormier"><code>@dcormier</code></a> made their first contribution in <a href="https://redirect.github.com/uuid-rs/uuid/pull/835">uuid-rs/uuid#835</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/uuid-rs/uuid/compare/v1.17.0...v1.18.0">https://github.com/uuid-rs/uuid/compare/v1.17.0...v1.18.0</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
faa50bcba4
|
build(deps): bump glob from 0.3.2 to 0.3.3 (#38610)
Bumps [glob](https://github.com/rust-lang/glob) from 0.3.2 to 0.3.3. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/rust-lang/glob/releases">glob's releases</a>.</em></p> <blockquote> <h2>v0.3.3</h2> <ul> <li>Optimize memory allocations (<a href="https://redirect.github.com/rust-lang/glob/pull/147">#147</a>)</li> <li>Bump the MSRV to 1.63 (<a href="https://redirect.github.com/rust-lang/glob/pull/172">#172</a>)</li> <li>Fix spelling in pattern documentation (<a href="https://redirect.github.com/rust-lang/glob/pull/164">#164</a>)</li> <li>Fix version numbers and some formatting (<a href="https://redirect.github.com/rust-lang/glob/pull/157">#157</a>)</li> <li>Style fixes (<a href="https://redirect.github.com/rust-lang/glob/pull/137">#137</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/rust-lang/glob/blob/master/CHANGELOG.md">glob's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/rust-lang/glob/compare/v0.3.2...v0.3.3">0.3.3</a> - 2025-08-11</h2> <ul> <li>Optimize memory allocations (<a href="https://redirect.github.com/rust-lang/glob/pull/147">#147</a>)</li> <li>Bump the MSRV to 1.63 (<a href="https://redirect.github.com/rust-lang/glob/pull/172">#172</a>)</li> <li>Fix spelling in pattern documentation (<a href="https://redirect.github.com/rust-lang/glob/pull/164">#164</a>)</li> <li>Fix version numbers and some formatting (<a href="https://redirect.github.com/rust-lang/glob/pull/157">#157</a>)</li> <li>Style fixes (<a href="https://redirect.github.com/rust-lang/glob/pull/137">#137</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
ab66c087c0
|
build(deps): bump rustversion from 1.0.21 to 1.0.22 (#38609)
Bumps [rustversion](https://github.com/dtolnay/rustversion) from 1.0.21 to 1.0.22. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/dtolnay/rustversion/releases">rustversion's releases</a>.</em></p> <blockquote> <h2>1.0.22</h2> <ul> <li>Turn off clippy incompatible_msrv in rustversion-conditional code (<a href="https://redirect.github.com/dtolnay/rustversion/issues/63">#63</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
dd1da149d9
|
build(deps): bump webrender from ae2477d to 15318d6 (#38607)
Bumps [webrender](https://github.com/servo/webrender) from `ae2477d` to `15318d6`. <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
6bd1564280
|
build(deps): bump wr_malloc_size_of from ae2477d to 15318d6 (#38606)
Bumps [wr_malloc_size_of](https://github.com/servo/webrender) from `ae2477d` to `15318d6`. <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
340a2ecc39
|
build(deps): bump proc-macro2 from 1.0.95 to 1.0.96 (#38605)
Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.95 to 1.0.96. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/dtolnay/proc-macro2/releases">proc-macro2's releases</a>.</em></p> <blockquote> <h2>1.0.96</h2> <ul> <li>Simplify how rustdoc flags are decided during docs.rs builds (<a href="https://redirect.github.com/dtolnay/proc-macro2/issues/511">#511</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
68ad03c40a
|
canvas: trace/instrument canvas messages processing (#38600)
Add some tracing/instrumenting for canvas messages processing. Testing: We have not tests for tracing code. Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> |
||
|
3f7f9ba6cd
|
canvas: Use Transform2D<f64> instead of Transform2D<f32> (#38316)
I mostly did dumb replacement so please check that this is correct. In addition, `canvas_data::draw_with_shadow` needs some a bit of a closer look. Testing: This is covered by existing tests, and it is likely that WPT tests are unaffected by the precision of the transform, even though it is technically more correct. Fixes: #38256 Signed-off-by: Narfinger <Narfinger@users.noreply.github.com> |
||
|
4ff1e8dbd9
|
layout: Use FastTransform for hit testing (#38554)
`FastTransform` provides faster matrix operations when the involved transforms are just translations. Testing: Not needed (no change in behavior) Signed-off-by: Oriol Brufau <obrufau@igalia.com> Co-authored-by: Martin Robinson <mrobinson@igalia.com> |
||
|
0d40547bec
|
Update mozjs dependency. (#38596)
Dependency update for mozjs which includes the faster latin1 decoding. Testing: Dependency updates have no tests. Signed-off-by: Narfinger <Narfinger@users.noreply.github.com> |
||
|
3976fa77bc
|
Implement Trusted Types for ShadowRoot (#38595)
Also make TrustedHTML work the same as TrustedScript by only taking 1 `&str` to make things easier. Part of #36258 Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com> |
||
|
abc549eff7
|
Reduce the size of some unsafe blocks in shaper.rs (#38597)
This change ensures that safe operations are done outside of unsafe blocks as often as possible. Signed-off-by: Simon Wülker <simon.wuelker@arcor.de> |
||
|
b75c3feb97
|
script/compositor: Send mouseleave events when cursor moves between <iframe> s (#38539)
Properly send `mouseleave` events when the cursor moves between `<iframe>`s. This allows a better handling of cursor changes and status text updates. Specifically, we do not need to continuously update the cursor and the value can be cached in the `Document`. In addition, status updates can now be sent properly when moving focus between `<iframe>`s. Note that style updates for `:hover` values are still broken, but less so than before. Now the hover state on the `Node` is updated, but for some reason the restyle isn't taking place properly. This maintains the status quo as far as behavior goes when hover moves between `<iframe>`s. This change also adds a helper data structure to `Document` which will eventually be responsible for event handling. Testing: Cursor and status change are currently very hard to test as the API test harness makes this difficult at the moment. Signed-off-by: Martin Robinson <mrobinson@igalia.com> Co-authored-by: Oriol Brufau <obrufau@igalia.com> |
||
|
82ca2b92cd
|
Implement Trusted Type eval checks (#37834)
It implements the new codeForEvalGets callback to retrieve the value for a trusted script object. Additionally, it implements the new logic in can-compile-strings to call the policy factory if required. Note that parameter and argument checks aren't implemented yet, as they require updates to binding generation (see TODO in script_runtime). Part of #36258 Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com> |
||
|
4c05758ded
|
script: support inline SVG by serializing the subtree (#38188)
This patch adds support for rendering static inline SVG documents in the DOM tree by serializing the SVGElement's subtree and leveraging the existing resvg based SVG stack for rendering. Serialiing the subtree is necessary as resvg's tree representation (roxmltree) is immutable, so we can't construct the tree incrementally. Few other design choices here: 1. The `SVGSVGElement` is now treated as a replaced element and the layout code is responsible for plumbing the serialized SVG source (encoded as a base64 data: url) into the image cache, much like how background images are handled. 2. The serialization is done on the script thread after an initial layout pass. This is necessary because the serialization code asserts that it is invoked from script thread i.e we can't call it from layout workers. 3. The serialized SVG data: url is cached to avoid recomputing it on subsequent layouts. The cache is invalidated when the SVGSVGElement's subtree is mutated. The original SVGSVGElement code was behind the `dom_svg_enabled` pref. This patch also removes the preference and make SVG support using resvg available unconditionally. Below is the analysis of the new test failures: These tests use inline SVG but used to pass by accident. They now fail because they contain SVG with no intrinsic sizing which is not handled by resvg in a way that would allows us to distinguish it from the sized case. The same limitation applies to non-inline SVG. - /css/CSS2/positioning/absolute-replaced-width-003a.xht - /css/CSS2/positioning/absolute-replaced-width-003b.xht - /css/CSS2/positioning/absolute-replaced-width-003c.xht These tests employ CSS styles in the HTML that target the elements in inline SVG, which is not currently supported. - /css/compositing/mix-blend-mode/mix-blend-mode-plus-lighter-svg-basic.html - /css/compositing/mix-blend-mode/mix-blend-mode-plus-lighter-svg.html This is a tentative test that uses the unsupported 'border-shape' CSS property. The ref uses SVG, so it used to pass accidentally. The ref still doesn't render correctly since it also relies on styling SVG elements using CSS classes in the HTML (instead of inline in SVG). - /css/css-borders/tentative/border-shape/border-shape-stroke.html These tests use the attribute 'clip-path=circle(...)' in the test, but this doesn't seem to work in resvg. - /css/css-masking/clip-path/clip-path-borderBox-1b.html - /css/css-masking/clip-path/clip-path-contentBox-1b.html - /css/css-masking/clip-path/clip-path-contentBox-1c.html - /css/css-masking/clip-path/clip-path-fillBox-1b.html - /css/css-masking/clip-path/clip-path-marginBox-1a.html - /css/css-masking/clip-path/clip-path-paddingBox-1b.html - /css/css-masking/clip-path/clip-path-strokeBox-1b.html - /css/css-masking/clip-path/clip-path-strokeBox-1c.html - /css/css-masking/clip-path/clip-path-viewBox-1a.html - /css/css-masking/clip-path/clip-path-viewBox-1b.html - /css/css-masking/clip-path/clip-path-viewBox-1d.html - /css/css-masking/clip-path/svg-clip-path-circle-offset.html - /css/css-masking/clip-path/svg-clip-path-ellipse-offset.html Additionally, the below two tests use a `foreignObject` SVG element which embeds a html div fragment. This is also not supported by resvg. - /css/css-masking/clip-path/clip-path-viewBox-1d.html - /css/css-masking/clip-path/clip-path-fillBox-1b.html The following test fails because of apparent pixel differences between a circle rendered purely using CSS clip-path vs a circle rendered in SVG using resvg. - /css/css-masking/clip-path/clip-path-contentBox-1c.html These tests style the inline SVG elements using CSS in the HTML or separate stylesheet. This is not supported by this implementation. - /css-transforms/document-styles/svg-document-styles-{001..004}.html - /css-transforms/document-styles/svg-document-styles-012.html - /css-transforms/external-styles/svg-external-styles-{001..004}.html - /css-transforms/external-styles/svg-external-styles-014.html These tests seem like they should pass, but they fail because of what seems like an anti-aliasing issue in the rendering engine. The transformed element has a thin outline which is causing pixel difference with the ref: - /css/css-transforms/group/svg-transform-group-008.html - /css/css-transforms/group/svg-transform-group-009.html - /css/css-transforms/group/svg-transform-nested-009.html - /css/css-transforms/group/svg-transform-nested-013.html - /css/css-transforms/group/svg-transform-nested-014.html - /css/css-transforms/group/svg-transform-nested-018.html - /css/css-transforms/group/svg-transform-nested-019.html - /css/css-transforms/group/svg-transform-nested-008.html The below tests fail because resvg is calculating the wrong size for the 'rect' inside the SVG. The dimensions of the SVG are established via the CSS in the HTML, so it seems resvg is using incorrect coordinates for the children of the svg when explict width/height are not specified in the root svg element. - /css/css-transforms/group/svg-transform-group-011.html - /css/css-transforms/group/svg-transform-nested-021.html - /css/css-transforms/group/svg-transform-nested-029.html All these tests use an SVG that doesn't have width nor height attributes and this causes resvg to use incorrect coordinates for the SVG's children. In addition, the following tests use the CSS syntax for transforms inside the SVG (using style attribute) which is not supported by resvg (it only supports the SVG 1.1 transform syntax). - /css/css-transforms/inline-styles/svg-inline-styles-{001..004}.html - /css/css-transforms/inline-styles/svg-inline-styles-012.html In the case of these four tests, the `style` attribute specifies an invalid transform, but resvg doesn't fallback to the transform specified via the `transform` attribute on the same element. - /css/css-transforms/inline-styles/svg-inline-styles-005.html - /css/css-transforms/inline-styles/svg-inline-styles-006.html - /css/css-transforms/inline-styles/svg-inline-styles-010.html - /css/css-transforms/inline-styles/svg-inline-styles-013.html The following test fails because of the lack of width/height in SVG as described above but it also exposes gaps in our CSS tranform implementation. - /css/css-transforms/preserve3d-and-filter-with-perspective.html These tests failure because resvg doesn't handle the SVG without explicit width and height, but specified via CSS in the HTML. In addition, there are pixel differences between the ref due to antialiasing issues. - /css/css-transforms/matrix/svg-matrix-{005...008}.html - /css/css-transforms/matrix/svg-matrix-010.html - /css/css-transforms/matrix/svg-matrix-012.html - /css/css-transforms/matrix/svg-matrix-{015..069}.html - /css/css-transforms/rotate/svg-rotate-angle-45-001.html - /css/css-transforms/rotate/svg-rotate-angle-45-011.html - /css/css-transforms/rotate/svg-rotate-angle-45-022.html - /css/css-transforms/scale/svg-scale-006.html - /css/css-transforms/scale/svg-scale-007.html These tests seem to be failing due to some sort of antialiasing issue, where a transformed SVG element has a thin border that causes pixel differences compared to the solid colored reference. - /css/css-transforms/skewX/svg-skewx-001.html - /css/css-transforms/skewX/svg-skewx-006.html - /css/css-transforms/skewX/svg-skewx-011.html - /css/css-transforms/skewX/svg-skewx-016.html - /css/css-transforms/skewX/svg-skewx-021.html - /css/css-transforms/skewX/svg-skewxy-001.html - /css/css-transforms/skewY/svg-skewy-001.html - /css/css-transforms/skewY/svg-skewy-006.html - /css/css-transforms/skewY/svg-skewy-011.html - /css/css-transforms/skewY/svg-skewy-016.html - /css/css-transforms/skewY/svg-skewy-021.html These tests specify several SVG attributes such as transform, vector-effect etc via CSS in the HTML (rather than inline in SVG). The current implementation doesn't support this. - /css/css-transforms/transform-box/stroke-box-mutation-001.html - /css/css-transforms/transform-box/stroke-box-mutation-002.html - /css/css-transforms/transform-box/stroke-box-mutation-003.html - /css/css-transforms/transform-box/stroke-box-mutation-004.html - /css/css-transforms/transform-box/svgbox-stroke-box-002.html - /css/css-transforms/transform-box/svgbox-stroke-box-003.html - /css/css-transforms/transform-box/svgbox-stroke-box-004.html - /css/css-transforms/transform-box/svgbox-stroke-box-005.html These tests depend on 'transform-origin' specified on an element inside an SVG, but this transform is influenced by the 'tranform-box' set via CSS in the HTML itself (not the SVG). The current implementation doesn't support styling the SVG using document styles, so these tests just fail. - /css/css-transforms/transform-origin/svg-origin-relative-length-*.html These tests check the fallback behaviour when invalid syntax is encountered in the 'transform-origin' value. resvg doesn't correctly fallback to 0,0 causing the tests to fail. - /css/css-transforms/transform-origin/svg-origin-relative-length-invalid-001.html - /css/css-transforms/transform-origin/svg-origin-relative-length-invalid-002.html - /css/css-transforms/transform-origin/svg-origin-relative-length-invalid-003.html - /css/css-transforms/transform-origin/svg-origin-relative-length-invalid-004.html These tests use unimplemented Canvas APIs like 'beginLayer' and the 'CanvasFilter' constructor and hence fail at runtime. - /html/canvas/element/filters/2d.filter.canvasFilterObject.gaussianBlur.tentative.html - /html/canvas/element/filters/2d.filter.layers.gaussianBlur.tentative.html - /html/canvas/element/layers/2d.layer.anisotropic-blur.isotropic.tentative.html - /html/canvas/element/layers/2d.layer.anisotropic-blur.mostly-x.tentative.html - /html/canvas/element/layers/2d.layer.anisotropic-blur.mostly-y.tentative.html - /html/canvas/element/layers/2d.layer.anisotropic-blur.x-only.tentative.html - /html/canvas/element/layers/2d.layer.anisotropic-blur.y-only.tentative.html - /html/canvas/element/layers/2d.layer.css-filters.blur-and-shadow.tentative.html - /html/canvas/element/layers/2d.layer.css-filters.blur.tentative.html - /html/canvas/element/layers/2d.layer.css-filters.shadow.tentative.html - /html/canvas/element/layers/2d.layer.ctm.layer-filter.tentative.html - /html/canvas/offscreen/filters/2d.filter.canvasFilterObject.dropShadow.tentative.html - /html/canvas/offscreen/filters/2d.filter.canvasFilterObject.gaussianBlur.tentative.html - /html/canvas/offscreen/filters/2d.filter.layers.dropShadow.tentative.html - /html/canvas/offscreen/filters/2d.filter.layers.gaussianBlur.tentative.html - /html/canvas/offscreen/layers/2d.layer.anisotropic-blur.isotropic.tentative.html - /html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-x.tentative.html - /html/canvas/offscreen/layers/2d.layer.anisotropic-blur.mostly-y.tentative.html - /html/canvas/offscreen/layers/2d.layer.anisotropic-blur.x-only.tentative.html - /html/canvas/offscreen/layers/2d.layer.anisotropic-blur.y-only.tentative.html - /html/canvas/offscreen/layers/2d.layer.css-filters.blur-and-shadow.tentative.html - /html/canvas/offscreen/layers/2d.layer.css-filters.blur.tentative.html - /html/canvas/offscreen/layers/2d.layer.css-filters.shadow.tentative.html - /html/canvas/offscreen/layers/2d.layer.ctm.layer-filter.tentative.html These tests fail because resvg doesn't seem to honour the 'translate' CSS property specified on an SVG element using an inline 'style' attribute. - /css/css-transforms/translate/svg-translate-with-units.html - /css/css-transforms/translate/translate-and-transform-attribute-in-svg.html - /css/css-transforms/translate/translate-and-transform-css-property-in-svg.html - /css/css-transforms/translate/translate-in-svg.html These tests seem to fail due to the filter effect implementation in resvg either not being complete or spec compliant. - /css/filter-effects/feconvolve-divisor.html - /css/filter-effects/feconvolve-region-001.html - /css/filter-effects/feconvolve-region-002.html - /css/filter-effects/filter-subregion-01.html - /css/filter-effects/svg-feimage-002.html - /css/filter-effects/svg-feimage-003.html - /css/filter-effects/svg-feimage-004.html - /css/filter-effects/svg-feoffset-001.html The test /css/filter-effects/svg-feimage-004.html should ideally PASS but currently fails because we don't propagate height/width set using CSS in HTML element to the root SVG, so resvg uses the wrong dimensions when rendering the children of the SVG. These failures are due to deficienies in our current implementation i.e we don't support styling SVG elements using CSS in HTML. - /css/css-transforms/gradientTransform/svg-gradientTransform-combination-001.html - /css/selectors/sharing-in-svg-use.html The below test fails as our current implementation relies on resvg to tell us the intrinsic ratio of the SVG, but this doesn't always work correctly. - /css/css-sizing/svg-intrinsic-size-005.html This failure is due to lack of proper fallback to no-op transform in resvg when the `rotate()` syntax is specified with an invalid list e.g `rotate(90,)`. - /css/css-transforms/rotate/svg-rotate-3args-invalid-002.html This test only passes in CI and based on the raw log output, it seems that no text inside the SVG is rendered in the CI. This could be an font stack related issue. - /css/css-display/display-contents-svg-elements.html This test asserts that the CSP blocks loads triggered using `use` elements in SVG. It used to TIMEOUT as without inline SVG support, no CSP violation event was triggered. It fails now since the event is now triggered for the load of the SVG itself (our current implementation loads inline SVGs as serialized base64 data: urls). This doesn't match the blocked URL in the use element though. - /content-security-policy/img-src/svg-use-blocked.tentative.html Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> |
||
|
be7625fc1e
|
tidy: Replace custom panic /unwrap lint with clippy lint (#38593)
This change replaces our custom `panic` / `unwrap` lint with the one from clippy. This rule as not properly applied in servoshell, so this change fixes some clippy errors raised by the new configuration. Testing: This change removes the tidy tests for the custom lints, but otherwise the behavior is tested as part of clippy itself. Signed-off-by: Martin Robinson <mrobinson@igalia.com> |