mirror of
https://github.com/servo/servo.git
synced 2025-09-18 19:08:22 +01:00
52795 commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
|
228b240635
|
layout: Convert animated image delays < 10ms into 100 ms delays (#39189)
Some animated images in the wild have delays <10ms and browsers usually change them into 100ms as such small timings are unusual. Relevant code in FF: https://searchfox.org/firefox-main/source/image/FrameTimeout.h#35 Testing: Manually tested Fixes: #39187 Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> |
||
|
30d3706a2b
|
layout: allow only repaint when css background and border image loaded (#39201)
This change allows that only new display list is built when css background and border image loaded. Testing: This change should not change any behaviors so covered by existing WPT tests. Signed-off-by: sharpshooter_pt <ibluegalaxy_taoj@163.com> |
||
|
e00bfb525b
|
script: Replace webcrypto-specific macro with trait abstraction. (#39205)
The value_from_js_object macro exists to paper over differences between dictionary types that require rooting (via `RootedTraceableBox`) and those that do not. However, I need to read the macro source every time I look at the code that uses it because I can never remember what it's doing. These changes replace the macro with a trait abstraction that is clearer, and should be a code size win as well. Testing: Existing WPT tests suffice. Signed-off-by: Josh Matthews <josh@joshmatthews.net> |
||
|
9584b9e57d
|
script: Add can_gc to WebIDL dictionary constructors (#39195)
More progress on can_gc! Testing: Internal change only, shouldn't change behavior. Fixes: #38708 --------- Signed-off-by: lumiscosity <averyrudelphe@gmail.com> |
||
|
1b9dc3e672
|
build(deps): bump lebe from 0.5.2 to 0.5.3 (#39200)
Bumps [lebe](https://github.com/johannesvollmer/lebe) from 0.5.2 to 0.5.3. <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/johannesvollmer/lebe/commits">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
4588088dcd
|
build(deps): bump wit-bindgen from 0.45.0 to 0.45.1 (#39198)
Bumps [wit-bindgen](https://github.com/bytecodealliance/wit-bindgen) from 0.45.0 to 0.45.1. <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
de7ee105cd
|
build(deps): bump zune-jpeg from 0.4.20 to 0.4.21 (#39199)
Bumps [zune-jpeg](https://github.com/etemesi254/zune-image) from 0.4.20 to 0.4.21. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/etemesi254/zune-image/releases">zune-jpeg's releases</a>.</em></p> <blockquote> <h2>v0.1.0</h2> <p>No release notes provided.</p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/etemesi254/zune-image/commits">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
a9f20998db
|
build(deps): bump winapi-util from 0.1.10 to 0.1.11 (#39197)
Bumps [winapi-util](https://github.com/BurntSushi/winapi-util) from 0.1.10 to 0.1.11. <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
641be94ab8
|
build(deps): bump zerocopy from 0.8.26 to 0.8.27 (#39196)
Bumps [zerocopy](https://github.com/google/zerocopy) from 0.8.26 to 0.8.27. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/google/zerocopy/releases">zerocopy's releases</a>.</em></p> <blockquote> <h2>v0.8.27</h2> <!-- raw HTML omitted --> <h2>What's Changed</h2> <ul> <li>Add <code>KnownLayout::size_for_metadata</code> by <a href="https://github.com/jswrenn"><code>@jswrenn</code></a> in <a href="https://redirect.github.com/google/zerocopy/pull/2674">google/zerocopy#2674</a></li> <li>Support <code>repr(u128)</code> and <code>repr(i128)</code> in <code>derive(IntoBytes)</code> by <a href="https://github.com/jswrenn"><code>@jswrenn</code></a> in <a href="https://redirect.github.com/google/zerocopy/pull/2676">google/zerocopy#2676</a></li> <li>[derive] <code>IntoBytes</code> padding error says number of bytes by <a href="https://github.com/joshlf"><code>@joshlf</code></a> in <a href="https://redirect.github.com/google/zerocopy/pull/2699">google/zerocopy#2699</a></li> <li>[derive] Clarify FromBytes enum support by <a href="https://github.com/joshlf"><code>@joshlf</code></a> in <a href="https://redirect.github.com/google/zerocopy/pull/2696">google/zerocopy#2696</a></li> <li>Implement traits for unsafe function values by <a href="https://github.com/joshlf"><code>@joshlf</code></a> in <a href="https://redirect.github.com/google/zerocopy/pull/2697">google/zerocopy#2697</a></li> <li><code>derive(IntoBytes)</code>: support <code>repr(C)</code> structs with explicit trailing slices by <a href="https://github.com/jswrenn"><code>@jswrenn</code></a> in <a href="https://redirect.github.com/google/zerocopy/pull/2679">google/zerocopy#2679</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/google/zerocopy/compare/v0.8.26...v0.8.27">https://github.com/google/zerocopy/compare/v0.8.26...v0.8.27</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
ec8b5fc70b
|
Elaborate documentation of notify_history_changed in WebViewDelegate (#39134)
Elaborate documentation of on_history_changed in WebViewDelegate Testing: Just documentation. --------- Signed-off-by: Narfinger <Narfinger@users.noreply.github.com> Co-authored-by: Martin Robinson <mrobinson@igalia.com> Co-authored-by: Euclid Ye <yezhizhenjiakang@gmail.com> |
||
|
9f4f598f44
|
script: Use HTMLElement.scrollParent to implement Element.scrollIntoView (#39144)
To find scrolling ancestors, we need to walk up the flat tree and only consider the elements that are in the chain of containing block ancestors of an element. `scrollParent` now does this so we can use it to properly implement `scrollIntoView`. Testing: There are WPT tests for this change. --------- Signed-off-by: Martin Robinson <mrobinson@igalia.com> Co-authored-by: Oriol Brufau <obrufau@igalia.com> |
||
|
286bbe6cb1
|
CI: Change APT mirror priorities (#39190)
We noticed many times that bootstrap sometimes takes a lot of time due to slow download speed: [#general > Bootstrap is slow in CI @ 💬](https://servo.zulipchat.com/#narrow/channel/263398-general/topic/Bootstrap.20is.20slow.20in.20CI/near/537610373). We [reported this to github](https://github.com/actions/runner-images/issues/12949) and they said we should just use different mirrors. Based on https://github.com/CrowdStrike/glide-core/pull/1113 we change Ubuntu's mirror priorities from: ``` http://azure.archive.ubuntu.com/ubuntu priority:0 https://archive.ubuntu.com/ubuntu priority:1 https://security.ubuntu.com/ubuntu priority:2 ``` to: ``` https://archive.ubuntu.com/ubuntu priority:0 http://azure.archive.ubuntu.com/ubuntu priority:1 https://security.ubuntu.com/ubuntu priority:2 ``` I also set more strict timeout (10 min; usually it takes 2-3 min but always less then 4 min) for bootstrap to alert us on problems. Testing: Manual CI run: https://github.com/sagudev/servo/actions/runs/17527791255 --------- Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> |
||
|
a672ffb850
|
Add resource header for mime sniffing (#39167)
The concept of a "resource header" is not well specced, since it is unclear what a "resource" is. That said, it most closely matches a "response" as part of the navigation params. With this change, we now delay loading the document until either two things happen: 1. We reached the end of the file 2. We processed 1445 bytes (as defined by spec) We initially store bytes in the resource header and then after loading parse the stored bytes. Any subsequent loading will process as before. Part of #14024 Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com> |
||
|
e3de39893f
|
Disable scripting when sandbox flag is set (#39163)
While I adding spec comments to the CSP crate, I discovered two issues: 1. We should only use the last sandbox value (WPT test added) 2. We weren't checking for the scripting sandbox flag in document Also, the autoplay test should have allowed scripts to run, otherwise the test doesn't run. Since we weren't checking the flag before, the test ran fine for Servo. However, it wouldn't run for other browsers. Also realized that an existing test was pointing to a non-existent file (since it doesn't have `.sub`). Updated that and confirmed that in other browsers it now properly works (it no longer shows a 404). However, Servo now fails that test as we don't fire an load event. Part of #913 Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com> |
||
|
088d16d634
|
script: Make set_dictionary_property a safe function (#39191)
Makes `set_dictionary_property` safe. Testing: Changes are internal, this shouldn't affect behavior. Fixes: #39128 Signed-off-by: lumiscosity <averyrudelphe@gmail.com> |
||
|
af8723c0b1
|
Sync WPT with upstream (07-09-2025) (#39188)
Automated downstream sync of changes from upstream as of 07-09-2025 [no-wpt-sync] Signed-off-by: WPT Sync Bot <ghbot+wpt-sync@servo.org> |
||
|
3ac8875697
|
script: Initial stubs for Credential Management API (#38839)
Stubs `Credential`, `CredentialContainer`, and `PasswordCredential` and adds the credentials attribute to navigator. Testing: WPT Fixes: Partially #38788 --------- Signed-off-by: Ashwin Naren <arihant2math@gmail.com> |
||
|
643ac08cf0
|
canvas: Implement strokeText (#39183)
Mostly it's just reusing/copy&edit fillText stuff. Testing: Existing WPT tests Fixes: #29973 Try run: https://github.com/sagudev/servo/actions/runs/17511337550 --------- Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> |
||
|
bd3231847e
|
webdriver: Serialize as i64 if the JS Number has no fractional part (#39186)
JavaScript Number does not have Integer type, except for recently added `BigInt`. That's why we removed `Int` variant from `JSValue` earlier in #38748. However, the Serde deserialization is strict: when it expects `u64`, it cannot deserialize "3.0". But when it expects `f64`, it can still deserialize "3". Now, we serialize as i64 if the JS Number has no fractional part. This not only fixes regression, but also improves the case where we have an integer not representable by i32 and previously would be parsed as f64 again. Testing: `./mach test-wpt -r /infrastructure/testdriver/actions/eventOrder.html --headless --product servodriver` no longer fails when deserializing HTTP request. Fixes: #39181 Signed-off-by: Euclid Ye <euclid.ye@huawei.com> |
||
|
7f5533d0b5
|
cargo: Bump MSRV to 1.86.0 (#39185)
Per discussions in [#general > RFC: Bump MSRV to 1.86 @
💬](https://servo.zulipchat.com/#narrow/channel/263398-general/topic/RFC.3A.20Bump.20MSRV.20to.201.2E86/near/537822241)
it's okay to do this. LLVM/clang used by this rust version is still 19,
so there should be no problems on that front.
This will be needed for future vello bumps:
|
||
|
506e186d03
|
layout: Simplify effective_overflow() a little (#39172)
This implements the Default trait for `AxesOverflow`, to avoid having to manually set both axes to `Overflow::Visible`. Also implements the conversion from `&ComputedValues` to `AxesOverflow`, which is the also used for overflow viewport propagation. And moves the `is_inline_box()` checkinto the `ignores_overflow` logic. Testing: Not needed, no change in behavior Signed-off-by: Oriol Brufau <obrufau@igalia.com> |
||
|
c490033c52
|
indexeddb: Support enabling IndexedDB after startup (#39177)
The servodriver harness requires preference-gated web platform features to be toggleable at any point in the browsing session's lifetime, rather than at startup. To support toggling IndexedDB, we need to ensure the IDB manager thread is always started. Testing: Verified when running `./mach test-wpt /IndexedDB --headless --product servodriver`. We don't run servodriver in CI yet. Fixes: #39175 --------- Signed-off-by: Josh Matthews <josh@joshmatthews.net> |
||
|
b5d6555238
|
indexeddb: Implement getAll and getAllKeys (#38885)
Implement getAll and getAllKeys for IDBObjectStore. Testing: WPT & Unit testing Fixes: Part of #6963. --------- Signed-off-by: Ashwin Naren <arihant2math@gmail.com> |
||
|
e64c53972a
|
Switch the majority of fxhash uses to rustc_hash which is maintained (#39168)
fxhash seems to be unmaintained (see https://github.com/rustsec/advisory-db/issues/2185) so we should move away from it. Additionally, the new crate might be slightly faster. There is still some cases depending on stylo that have the old fxhash crate. Signed-off-by: Narfinger <Narfinger@users.noreply.github.com> Testing: Changes in Hash should really not show any bugs. And performance should be comparable. Signed-off-by: Narfinger <Narfinger@users.noreply.github.com> |
||
|
d67a7bad39
|
cargo: Ignore advisory for deprecated crate 'fxhash' (#39174)
Unblock CI, we will do migration slowly (because stylo). Signed-off-by: Sam <16504129+sagudev@users.noreply.github.com> |
||
|
d3809c1024
|
fix: Store channel reference in CookieStore to prevent panic on unload (#39171)
CookieStore sets up a route with the resource threads to handle async communication and needs to later unregister itself when the page unloads. When attempting to do this in the `Drop` of CookieStore we panic attempting to retrieve the channel via `self.global().resource_threads()` because global is already null. This change stores a reference to the core resource thread in the object to send the unregister on `Drop`. Testing: manual testing for crash fix, behavior should be unchanged Signed-off-by: Sebastian C <sebsebmc@gmail.com> |
||
|
7ce0bd8575
|
script: Remove CookieListItem fields that were removed in the spec (#39170)
The spec removed all fields from CookieListItem except for name and value Testing: WPT tests cover this already. Signed-off-by: Sebastian C <sebsebmc@gmail.com> |
||
|
5b9a23ebdb
|
layout: Add method to retrieve only the first LayoutBoxBase of a box (#39165)
A LayoutBox typically has one LayoutBoxBase, or none in the case of `LayoutBox::DisplayContents`. However, `LayoutBox::InlineLevel` can contain multiple inline items, each one with its base. But since things like the style or the fragment flags should be the same for all of them, getting the first base is sometimes enough. Testing: not needed, no change in behavior. Signed-off-by: Oriol Brufau <obrufau@igalia.com> |
||
|
0f9f507b46
|
layout: Fix scrollParent to skip ancestors with display: contents (#39153)
When encountering such an ancestor, we were returning null instead of skipping it. Testing: Adding new subtest for this. And while I'm at it, another one for the root element, unrelated to this fix. Signed-off-by: Oriol Brufau <obrufau@igalia.com> |
||
|
cf1f64e73f
|
script: remove wpt test added in #39079 (#39164)
Removes a test related to autoplay and sandboxing which will always fail. In https://github.com/servo/servo/pull/39079 I introduced a wpt to test autoplay functionality, but the test was flawed in its approach - shortly after merge, myself and @TimvdLippe found that this test would simulataneously require scripts to be enabled, as well as disabled for the test to pass. This slipped past me becuase we hadn't correctly implemented whether scripting was enabled yet in Servo. Testing: Removes a single WPT - this test has not been merged upstream. Signed-off-by: Shane Handley <shanehandley@fastmail.com> |
||
|
0d58c2be76
|
build(deps): bump windows-sys from 0.59.0 to 0.61.0 (#39156)
Bumps [windows-sys](https://github.com/microsoft/windows-rs) from 0.59.0 to 0.61.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/microsoft/windows-rs/releases">windows-sys's releases</a>.</em></p> <blockquote> <h2>61</h2> <p>Major crate updates:</p> <ul> <li><code>windows</code> 0.59.0</li> <li><code>windows-core</code> 0.59.0 <ul> <li><code>windows-implement</code> 0.59.0</li> <li><code>windows-interface</code> 0.59.0</li> </ul> </li> <li><code>windows-targets</code> 0.53.0 <ul> <li><code>windows_i686_msvc</code> 0.53.0</li> <li><code>windows_x86_64_msvc</code> 0.53.0</li> <li><code>windows_aarch64_msvc</code> 0.53.0</li> <li><code>windows_i686_gnu</code> 0.53.0</li> <li><code>windows_x86_64_gnu</code> 0.53.0</li> <li><code>windows_i686_gnullvm</code> 0.53.0</li> <li><code>windows_x86_64_gnullvm</code> 0.53.0</li> <li><code>windows_aarch64_gnullvm</code> 0.53.0</li> </ul> </li> <li><code>windows-bindgen</code> 0.59.0</li> <li><code>windows-registry</code> 0.4.0</li> <li><code>windows-result</code> 0.3.0</li> <li><code>windows-strings</code> 0.3.0</li> <li><code>cppwinrt</code> 0.2.0</li> </ul> <p>Minor crate updates:</p> <ul> <li><code>windows-version</code> 0.1.2</li> </ul> <p>Excluded:</p> <ul> <li><code>windows-sys</code> 0.59.0</li> </ul> <p>Things to keep in mind:</p> <ul> <li> <p>The tag/release names no longer map directly to the crate versions, so to <a href="https://github.com/microsoft/windows-rs/tree/master/crates/samples">find samples</a> for a particular release requires looking at <a href="https://github.com/microsoft/windows-rs/releases">the releases</a> page and finding the release that most recently updated a particular crate.</p> </li> <li> <p>The <code>windows-bindgen</code> crate includes the major code generation overhaul that brings many improvements - be sure to check out the PR description for more information. The resulting code gen depends on the new version of <code>windows-core</code> and its dependencies, unless you include the <code>--sys</code> option. <a href="https://redirect.github.com/microsoft/windows-rs/issues/3359">#3359</a></p> </li> <li> <p>The <code>cppwinrt</code> crate constitutes a major update due to streamlining the error handling. <a href="https://redirect.github.com/microsoft/windows-rs/issues/3415">#3415</a></p> </li> <li> <p>The <code>windows-registry</code>, <code>windows-strings,</code> and <code>windows-result</code> crates are also major version updates since they include small breaking changes.</p> </li> <li> <p>The <code>windows-targets</code> crate finally receives a major version update, the first in over a year. This is due to <a href="https://redirect.github.com/microsoft/windows-rs/issues/3359">#3359</a> and <a href="https://redirect.github.com/microsoft/windows-rs/issues/3342">#3342</a> potentially introducing breaking changes. Although unlikely, these updates introduced sufficient changes that make it hard to ensure that the <code>windows-targets</code> libs don't break existing code. As we're updating <code>windows-targets</code> anyway, I took the liberty to bump the MSRV to 1.60 - to match the latest version of <code>windows-sys</code> - and remove the old but unused doc macro feature. Both remained for compatibility with very old dependents of the <code>windows-targets</code> crate.</p> </li> <li> <p>The <code>windows-version</code> crate receives a minor update to update its dependency on the <code>windows-targets</code> crate.</p> </li> <li> <p>Beyond these specifics, this update is the culmination of around 6 months worth of work on the <code>windows-rs</code> project. The biggest improvements comes from the new code generation engine, but many other improvements are now also available for production. This includes support for many new lints, warnings, and suggestions provided by the Rust toolchain; much smaller code gen thanks to deriving many more traits; more efficient code gen; major improvements to WinRT type system and implementation support; more robust and consistent error handling; stock collection and async support; improved support for class hierarchies; and much more!</p> </li> </ul> <p>In addition to "what's changed" below, check out what's changed for notes for <a href="https://github.com/microsoft/windows-rs/releases/tag/0.60.0">0.60.0</a> and <a href="https://github.com/microsoft/windows-rs/releases/tag/0.59.0">0.59.0</a> for additional changes that roll up to the crates published as part of this release.</p> <h2>What's Changed</h2> <ul> <li>Remove improper_ctypes workaround by <a href="https://github.com/ChrisDenton"><code>@ChrisDenton</code></a> in <a href="https://redirect.github.com/microsoft/windows-rs/pull/3296">microsoft/windows-rs#3296</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
ed66e0b0ca
|
servoshell: Replace getopts with bpaf for argument parsing (#37194)
This includes some small refactoring and some small breaking changes as listed below. Other than these I tried to keep the functionality exactly the same but because in the old code the parsing and settings of preferences was intermingled it was difficult to figure out. Small Breaking: - Size and resources-path were unused but appeared in the help. - soft-fail and hard-fail: Soft-fail flag got removed because it is too difficult to keep both. The default is now soft-fail and hard-fail can be enabled. - The help strings are obviously formatted differently now. - -V does not work anymore but -v and --version. Ideally, we want to have the ServoShellPreferences and Preferences be directly the Argument structure but that needs a bit more discussion because it would break backwards compatibility with the commandline. This increases the binary size by ~280kb. Testing: The testcases are still working but they do not cover much. I added a unit test for the -p flag because it is the most difficult to parse in general. Fixes: This will fix a small number of various parsing misshaps. It will also show if we are removing an option via unused lint. Signed-off-by: Narfinger <Narfinger@users.noreply.github.com> |
||
|
b29eab0ffe
|
script: Re-implement evaluate_key_path_on_value in IndexedDB (#38847)
The current implementation of evaluate_key_path_on_value was translated from gecko, and it is incomplete. The unimplemented part occurs many crashes in WPT tests. This PR re-implements it according to the spec. It should eliminate many crashed WPT tests, and increase the code readability. Testing: Update WPT test expectation Fixes: #38817 partially, and #25325 --------- Signed-off-by: Kingsley Yung <kingsley@kkoyung.dev> |
||
|
ebc1282c7a
|
webdriver: Update .ini to mark unstable subtests in accept_alert/accept.py , forward/forward.py , perform_actions/pointer_mouse.py , send_alert_text/send.py (#39159)
Few webdriver subtests are quite unstable. But it is an overkill to mark the entire test as intermittent, as the CI would permit buggy PRs that sabotage other stable subtests. This PR mark these subtests and closes the related intermittent issues. Fixes: #39158 Fixes: #39117 Fixes: #39121 Fixes: #39154 --------- Signed-off-by: Euclid Ye <euclid.ye@huawei.com> |
||
|
deb7f802df
|
Refactor loading methods to align with specification (#39146)
This is in preparation of being able to do mime sniffing on the response data. For that, we first need to introduce separate methods so that we can decouple them from process_response. In doing so, we introduce a NavigationParams which mimics what the spec intents. The spec stores different data (policy container instead of csp list and response instead of content-type), but it is similar enough. Part of #14024 Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com> |
||
|
989c0d8994
|
script: Implement document's active sandboxing flag set (#39079)
Implements document's active sandboxing flags. These are currently populated only from CSP-derived sandboxing flags for a new document, when defined in the CSP. Testing: 1 new pass, and some new wpt's are added to test points in the spec where these flags influence behaviour. Signed-off-by: Shane Handley <shanehandley@fastmail.com> |
||
|
f722419861
|
webcrypto: Reduce usage of standalone helper functions for JWK format (#39084)
Reduce the reliance on standalone helper functions for handling JWK format. Instead, those functionalities are now integrated into the `JsonWebKey` type generated by script_binding, via the local trait `JsonWebKeyExt`, for internal use. The `parse_jwk` function remains for now. It will be removed when once we refactor `SubtleCrypto::ImportKey` to support a more generic approach across different cryptographic algorithms. Testing: Refactoring. Existing WPT tests should suffice. --------- Signed-off-by: Kingsley Yung <kingsley@kkoyung.dev> |
||
|
ae5b40ebf9
|
build(deps): bump the egui-related group with 7 updates (#39155)
Bumps the egui-related group with 7 updates: | Package | From | To | | --- | --- | --- | | [egui](https://github.com/emilk/egui) | `0.32.1` | `0.32.2` | | [egui-winit](https://github.com/emilk/egui) | `0.32.1` | `0.32.2` | | [egui_glow](https://github.com/emilk/egui) | `0.32.1` | `0.32.2` | | [ecolor](https://github.com/emilk/egui) | `0.32.1` | `0.32.2` | | [emath](https://github.com/emilk/egui) | `0.32.1` | `0.32.2` | | [epaint](https://github.com/emilk/egui) | `0.32.1` | `0.32.2` | | [epaint_default_fonts](https://github.com/emilk/egui) | `0.32.1` | `0.32.2` | Updates `egui` from 0.32.1 to 0.32.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/emilk/egui/releases">egui's releases</a>.</em></p> <blockquote> <h2>0.32.2 - Ui::place, Harness::mask and more bug fixes</h2> <p>egui is an easy-to-use immediate mode GUI for Rust that runs on both web and native.</p> <p>Try it now: <a href="https://www.egui.rs/">https://www.egui.rs/</a></p> <p>egui development is sponsored by <a href="https://www.rerun.io/">Rerun</a>, a startup building an SDK for visualizing streams of multimodal data.</p> <h3>Add <code>Ui::place</code></h3> <p><code>Ui::place</code> is similar to <code>Ui::put</code>, but it doesn't update the current <code>Ui</code>s cursor. This is very useful when using the new <code>Atom</code>s or making badge-like widgets. The following breaks with <code>Ui::put</code> but works just fine with <code>Ui::place</code>:</p> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <h3>Add <code>Harness::mask</code></h3> <p><code>Harness::mask</code> allows for simple masking of <code>Rect</code>s you don't want to be visible in snapshot test images. The rect will be masked with a ugly color to make it obvious whats going on:</p> <!-- raw HTML omitted --> <h2>egui</h2> <ul> <li>Add <code>Ui::place</code>, to place widgets without changing the cursor <a href="https://redirect.github.com/emilk/egui/pull/7359">#7359</a> by <a href="https://github.com/lucasmerlin"><code>@lucasmerlin</code></a></li> <li>Fix: <code>SubMenu</code> should not display when ui is disabled <a href="https://redirect.github.com/emilk/egui/pull/7428">#7428</a> by <a href="https://github.com/ozwaldorf"><code>@ozwaldorf</code></a></li> <li>Remove line breaks when pasting into single line TextEdit <a href="https://redirect.github.com/emilk/egui/pull/7441">#7441</a> by <a href="https://github.com/YgorSouza"><code>@YgorSouza</code></a></li> <li>Panic mutexes that can't lock for 30 seconds, in debug builds <a href="https://redirect.github.com/emilk/egui/pull/7468">#7468</a> by <a href="https://github.com/emilk"><code>@emilk</code></a></li> <li>Fix: prevent calendar popup from closing on dropdown change <a href="https://redirect.github.com/emilk/egui/pull/7409">#7409</a> by <a href="https://github.com/AStrizh"><code>@AStrizh</code></a></li> </ul> <h2>egui_extras</h2> <ul> <li>Fix memory leak when <code>forget_image</code> is called while loading <a href="https://redirect.github.com/emilk/egui/pull/7380">#7380</a> by <a href="https://github.com/Vanadiae"><code>@Vanadiae</code></a></li> <li>Fix deadlock in <code>ImageLoader</code>, <code>FileLoader</code>, <code>EhttpLoader</code> <a href="https://redirect.github.com/emilk/egui/pull/7494">#7494</a> by <a href="https://github.com/lucasmerlin"><code>@lucasmerlin</code></a></li> </ul> <h2>egui_kittest</h2> <ul> <li>Allow masking widgets in kittest snapshots <a href="https://redirect.github.com/emilk/egui/pull/7467">#7467</a> by <a href="https://github.com/lucasmerlin"><code>@lucasmerlin</code></a></li> </ul> <h2>epaint</h2> <ul> <li>Panic mutexes that can't lock for 30 seconds, in debug builds <a href="https://redirect.github.com/emilk/egui/pull/7468">#7468</a> by <a href="https://github.com/emilk"><code>@emilk</code></a></li> <li>Skip zero-length layout job sections <a href="https://redirect.github.com/emilk/egui/pull/7430">#7430</a> by <a href="https://github.com/HactarCE"><code>@HactarCE</code></a></li> </ul> <h2>Unsorted commits</h2> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/emilk/egui/blob/0.32.2/CHANGELOG.md">egui's changelog</a>.</em></p> <blockquote> <h2>0.32.2 - 2025-09-04</h2> <ul> <li>Fix: <code>SubMenu</code> should not display when ui is disabled <a href="https://redirect.github.com/emilk/egui/pull/7428">#7428</a> by <a href="https://github.com/ozwaldorf"><code>@ozwaldorf</code></a></li> <li>Remove line breaks when pasting into single line TextEdit <a href="https://redirect.github.com/emilk/egui/pull/7441">#7441</a> by <a href="https://github.com/YgorSouza"><code>@YgorSouza</code></a></li> <li>Panic mutexes that can't lock for 30 seconds, in debug builds <a href="https://redirect.github.com/emilk/egui/pull/7468">#7468</a> by <a href="https://github.com/emilk"><code>@emilk</code></a></li> <li>Add <code>Ui::place</code>, to place widgets without changing the cursor <a href="https://redirect.github.com/emilk/egui/pull/7359">#7359</a> by <a href="https://github.com/lucasmerlin"><code>@lucasmerlin</code></a></li> <li>Fix: prevent calendar popup from closing on dropdown change <a href="https://redirect.github.com/emilk/egui/pull/7409">#7409</a> by <a href="https://github.com/AStrizh"><code>@AStrizh</code></a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
e5fbb31452
|
script: Make get_property_jsval a safe function (#39137)
Accept the safe `JSContext` wraper to this function so that it can be safe. Some callers also become safe as well. Testing: This does not change behavior and is thus covered by existing tests. Fixes: #39129. Signed-off-by: Martin Robinson <mrobinson@igalia.com> |
||
|
589a750cac
|
Upgrade Stylo to 2025-09-02 (#39150)
This continues #38429 Changelog: - Upstream: |
||
|
40ced5bb61
|
Enable viewport <meta> tag support for mobile platforms only (#39133)
Enable viewport `<meta>` tag support for mobile platforms only. _Reference:_ [web_preferences.h](https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/public/common/web_preferences/web_preferences.h;l=158?) _Todo: Enable for when requested desktop site:_ [web_contents_impl.cc](https://source.chromium.org/chromium/chromium/src/+/main:content/browser/web_contents/web_contents_impl.cc;l=3752?) Testing: Tested Manually Fixes: #39002 Signed-off-by: Shubham Gupta <shubham13297@gmail.com> |
||
|
c7ca281f44
|
script: implement setMatrixValue for DOMMatrix (#39148)
Even more progress on the geometry suite. Almost there! Testing: Covered by WPT (css/geometry). Signed-off-by: lumiscosity <averyrudelphe@gmail.com> |
||
|
f3a8ad30f1
|
build(deps): bump cc from 1.2.34 to 1.2.35 (#39136)
Bumps [cc](https://github.com/rust-lang/cc-rs) from 1.2.34 to 1.2.35. <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md">cc's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/rust-lang/cc-rs/compare/cc-v1.2.34...cc-v1.2.35">1.2.35</a> - 2025-09-01</h2> <h3>Fixed</h3> <ul> <li>fix building for aarch64-apple-visionos-sim on nightly (<a href="https://redirect.github.com/rust-lang/cc-rs/pull/1534">#1534</a>)</li> <li>fix tests apple_sdkroot_wrong (<a href="https://redirect.github.com/rust-lang/cc-rs/pull/1530">#1530</a>)</li> </ul> <h3>Other</h3> <ul> <li>Regenerate target info (<a href="https://redirect.github.com/rust-lang/cc-rs/pull/1536">#1536</a>)</li> <li>Optimize Tool::to_command (<a href="https://redirect.github.com/rust-lang/cc-rs/pull/1535">#1535</a>)</li> <li>Extract find-msvc-tools (<a href="https://redirect.github.com/rust-lang/cc-rs/pull/1531">#1531</a>)</li> <li>Add prefer_clang_cl_over_msvc (<a href="https://redirect.github.com/rust-lang/cc-rs/pull/1516">#1516</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
925b7c5dad
|
script: Queue a microtask in wait_for_all of promise type (#39108)
In the wait-for-all algorithm of the IDL promise type, we need to queue a microtask to perform successSteps given « » if total is 0. This step was previously implemented in a workaround, which perform successSteps immediately. This patch properly queue the microtask, and remove the workaround. Testing: Refactoring only. Existing tests are enough. Fixes: #37259 --------- Signed-off-by: Kingsley Yung <kingsley@kkoyung.dev> |
||
|
ae2d9674e8
|
build(deps): bump log from 0.4.27 to 0.4.28 (#39135)
Bumps [log](https://github.com/rust-lang/log) from 0.4.27 to 0.4.28. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/rust-lang/log/releases">log's releases</a>.</em></p> <blockquote> <h2>0.4.28</h2> <h2>What's Changed</h2> <ul> <li>ci: drop really old trick and ensure MSRV for all feature combo by <a href="https://github.com/tisonkun"><code>@tisonkun</code></a> in <a href="https://redirect.github.com/rust-lang/log/pull/676">rust-lang/log#676</a></li> <li>chore: fix some typos in comment by <a href="https://github.com/xixishidibei"><code>@xixishidibei</code></a> in <a href="https://redirect.github.com/rust-lang/log/pull/677">rust-lang/log#677</a></li> <li>Unhide <code>#[derive(Debug)]</code> in example by <a href="https://github.com/ZylosLumen"><code>@ZylosLumen</code></a> in <a href="https://redirect.github.com/rust-lang/log/pull/688">rust-lang/log#688</a></li> <li>Chore: delete compare_exchange method for AtomicUsize on platforms without atomics by <a href="https://github.com/HaoliangXu"><code>@HaoliangXu</code></a> in <a href="https://redirect.github.com/rust-lang/log/pull/690">rust-lang/log#690</a></li> <li>Add <code>increment_severity()</code> and <code>decrement_severity()</code> methods for <code>Level</code> and <code>LevelFilter</code> by <a href="https://github.com/nebkor"><code>@nebkor</code></a> in <a href="https://redirect.github.com/rust-lang/log/pull/692">rust-lang/log#692</a></li> <li>Prepare for 0.4.28 release by <a href="https://github.com/KodrAus"><code>@KodrAus</code></a> in <a href="https://redirect.github.com/rust-lang/log/pull/695">rust-lang/log#695</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/xixishidibei"><code>@xixishidibei</code></a> made their first contribution in <a href="https://redirect.github.com/rust-lang/log/pull/677">rust-lang/log#677</a></li> <li><a href="https://github.com/ZylosLumen"><code>@ZylosLumen</code></a> made their first contribution in <a href="https://redirect.github.com/rust-lang/log/pull/688">rust-lang/log#688</a></li> <li><a href="https://github.com/HaoliangXu"><code>@HaoliangXu</code></a> made their first contribution in <a href="https://redirect.github.com/rust-lang/log/pull/690">rust-lang/log#690</a></li> <li><a href="https://github.com/nebkor"><code>@nebkor</code></a> made their first contribution in <a href="https://redirect.github.com/rust-lang/log/pull/692">rust-lang/log#692</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/rust-lang/log/compare/0.4.27...0.4.28">https://github.com/rust-lang/log/compare/0.4.27...0.4.28</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/rust-lang/log/blob/master/CHANGELOG.md">log's changelog</a>.</em></p> <blockquote> <h2>[0.4.28] - 2025-09-02</h2> <h2>What's Changed</h2> <ul> <li>ci: drop really old trick and ensure MSRV for all feature combo by <a href="https://github.com/tisonkun"><code>@tisonkun</code></a> in <a href="https://redirect.github.com/rust-lang/log/pull/676">rust-lang/log#676</a></li> <li>Chore: delete compare_exchange method for AtomicUsize on platforms without atomics by <a href="https://github.com/HaoliangXu"><code>@HaoliangXu</code></a> in <a href="https://redirect.github.com/rust-lang/log/pull/690">rust-lang/log#690</a></li> <li>Add <code>increment_severity()</code> and <code>decrement_severity()</code> methods for <code>Level</code> and <code>LevelFilter</code> by <a href="https://github.com/nebkor"><code>@nebkor</code></a> in <a href="https://redirect.github.com/rust-lang/log/pull/692">rust-lang/log#692</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/xixishidibei"><code>@xixishidibei</code></a> made their first contribution in <a href="https://redirect.github.com/rust-lang/log/pull/677">rust-lang/log#677</a></li> <li><a href="https://github.com/ZylosLumen"><code>@ZylosLumen</code></a> made their first contribution in <a href="https://redirect.github.com/rust-lang/log/pull/688">rust-lang/log#688</a></li> <li><a href="https://github.com/HaoliangXu"><code>@HaoliangXu</code></a> made their first contribution in <a href="https://redirect.github.com/rust-lang/log/pull/690">rust-lang/log#690</a></li> <li><a href="https://github.com/nebkor"><code>@nebkor</code></a> made their first contribution in <a href="https://redirect.github.com/rust-lang/log/pull/692">rust-lang/log#692</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/rust-lang/log/compare/0.4.27...0.4.28">https://github.com/rust-lang/log/compare/0.4.27...0.4.28</a></p> <h3>Notable Changes</h3> <ul> <li>MSRV is bumped to 1.61.0 in <a href="https://redirect.github.com/rust-lang/log/pull/676">rust-lang/log#676</a></li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
fa7d6d4004
|
script: Modify Element::determine_scroll_into_view_position to take a ScrollingBox (#39107)
There is no need to separate the two kinds of scrolling boxes into `Element` and `Viewport` more than once. This also eliminates a potentially panicking `unwrap()`. Testing: This doesn't change behavior and is thus covered by existing tests. Signed-off-by: Martin Robinson <mrobinson@igalia.com> |
||
|
dab195ca80
|
Hookup mime classifier to main document loader (#39109)
While we don't perform any sniffing yet, it does now check all relevant mime types. Before, we would only check specific versions of specific mime types. However, the specification is more elaborate, which MimeClassifier already handles. There are two new test failures, but they actually fail in the same way in other browsers. These tests are still being discussed what the correct behavior should be [1] Part of #14024 [1]: https://github.com/whatwg/mimesniff/issues/189#issuecomment-2081559661 --------- Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com> |
||
|
a44b98c358
|
script: preserve 2D on DOMMatrix invert (#39113)
More small geometry fixes. Testing: Covered by WPT (css/geometry/DOMMatrix-invert-preserves-2d.html) --------- Signed-off-by: lumiscosity <averyrudelphe@gmail.com> |
||
|
ff8be71335
|
font: Remove unused FontTable constructor for Windows (#39130)
#39112 restricts accessibility for some font functions, exposing some functions that haven't been used for a long time. Now it is detected by Lint as dead code. Signed-off-by: Euclid Ye <euclid.ye@huawei.com> |
||
|
fc6bee8b81
|
Move Element::matches_environment to MediaList (#39034)
It more logically matches `MediaList`, and it allows us to call this method with a document. This is required when parsing Link headers, as they don't have an associated element, but they do have a document. Part of #35035 Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com> |