aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Use version of `markup5ever` with `web_atoms` crate (#36542)HEADmainNico Burns9 hours55-64/+69
| | | | | | | | Upgrades `markup5ever` and fixes "unnecessary import" lints. See https://github.com/servo/html5ever/pull/599 And https://github.com/servo/stylo/pull/173 Signed-off-by: Nico Burns <nico@nicoburns.com>
* layout: Combine `layout_2020` and `layout_thread_2020` into a crate called ↵Martin Robinson10 hours62-122/+58
| | | | | | | | | | | | | | | | | | `layout` (#36613) Now that legacy layout has been removed, the name `layout_2020` doesn't make much sense any longer, also it's 2025 now for better or worse. The split between the "layout thread" and "layout" also doesn't make as much sense since layout doesn't run on it's own thread. There's a possibility that it will in the future, but that should be something that the user of the crate controls rather than layout iself. This is part of the larger layout interface cleanup and optimization that @Looriool and I are doing. Testing: Covered by existing tests as this is just code movement. Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* script: Only register one image callback per CSS image in use. (#36612)Josh Matthews14 hours3-2/+34
| | | | | | | | | | | | | | | | | | | When layout encounters a CSS image, the script thread is responsible for fetching the image from the image cache. When the image is not yet available, the script thread creates image cache listeners to perform actions in response to future updates from the image cache. In the current implementation, a cache listener would iterate over all nodes using a particular image and mark them as dirty. However, we mistakenly added one cache listener per node, leading to n^2 runtime while performing lots of redundant work. For cases like #36480 with over 1000 elements using the same image, this led to a completely unresponsive script thread. Testing: Manual testing on the provided testcase, and a new WPT test that times out without this PR's changes. Fixes: #36480 Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* build(deps): bump brotli-decompressor from 4.0.2 to 4.0.3 (#36601)dependabot[bot]15 hours1-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bumps [brotli-decompressor](https://github.com/dropbox/rust-brotli-decompressor) from 4.0.2 to 4.0.3. <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/dropbox/rust-brotli-decompressor/commits">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=brotli-decompressor&package-manager=cargo&previous-version=4.0.2&new-version=4.0.3)](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>
* content/dom: set navigator.onLine attribute to `true` (#36560)Siddhant N Trivedi19 hours8-24/+18
| | | | | | | | | | | | | | | | | | | | Sets the navigator.onLine attribute to true. Testing: Ran `./mach run https://pinterest.com --enable-experimental-web-platform-features`. This doesn't show the "Hmm..you're not connected to the internet" text anymore. <img width="1027" alt="Screenshot 2025-04-16 at 11 31 02 AM" src="https://github.com/user-attachments/assets/3745077b-dc51-42ce-88a0-38d5f157fc0c" /> part of: #36554 --------- Signed-off-by: Siddhant N. Trivedi <sidntrivedi012@gmail.com> Signed-off-by: Siddhant N Trivedi <sidntrivedi012@gmail.com> Co-authored-by: Josh Matthews <josh@joshmatthews.net>
* layout: Report memory usage for fragment and box trees. (#36553)Josh Matthews24 hours33-69/+230
| | | | | | | | | | | | Add memory reporter integration for the fragment and box trees that are persisted in the layout thread. Testing: Looked at the numbers for https://servo.org and https://html.spec.whatwg.org/. The former was very small, but the latter was 700mb. --------- Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Prevent multiple notifications for image dimensions (#36600)Barigbue Nbira24 hours1-9/+11
| | | | | | | | | | | | | Added a simple check to only perform metadata extraction and listener notification when we haven't already processed the metadata for an image Testing: Existing tests should cover if we break decoding image metadata complete. Fixes: #36502 --------- Signed-off-by: Barigbue <barigbuenbira@gmail.com> Co-authored-by: Josh Matthews <josh@joshmatthews.net>
* Move click event trigger from embedding layer to `ScriptThread` (#36413)Euclid Ye25 hours4-35/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Move click event trigger from embedding layer to `ScriptThread` 2. Previously, the logic is to trigger click event at same position as `MouseButtonAction::Up` if `MouseButtonAction::Up` is within 10px of `MouseButtonAction::Down`, in embedding layer. This PR ~~removes the condition~~ moves the check to `ScriptThread`. Testing: tested for webdriver with self written test case. Perform actions of pointermove, pointerdown, pointerup in sequence. Click event can now be triggered. Fixes: #35395 cc @xiaochengh @jdm For `MAYBE? TODO:` part I added, should we do it? I read the [spec](https://w3c.github.io/uievents/#event-type-click), it doesn't specify we have to implement MDN's way. If we should work in the MDN's way, it also should be fixed in another PR, as this PR doesn't regress anything. Also I am not sure what is the best way to do it. Should I handle it in https://github.com/servo/servo/blob/4d4f94936f8859f039497df370083fd7ea35fb00/components/script/dom/document.rs#L1296-L1297? --------- Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
* layout: Store `Fragment` results in `LayoutBoxBase` and start using them for ↵Martin Robinson35 hours15-222/+387
| | | | | | | | | | | | | | | | | | | | | | | | queries (#36583) Start storing a link to laid-out `Fragment`s in `LayoutBoxBase`, so that these are accessible for queries and eventually for incremental layout. Some box tree data structures lacked a `LayoutBoxBase`, such as table tracks and table track groups[^1]. In addition, start using these `Fragment`s for queries instead of walking the entire `Fragment` tree. Currently, this isn't possible for most queries as `Fragment`s do not cache their absolute offsets (which are often necessary). This change uses the new box tree `Fragment`s for most resolved style queries. [^1]: Note that only rows and row groups store `Fragment`s as columsn and colgroups do not produce any. Testing: This is covered by existing tests. Fixes: This is part of #36525. Signed-off-by: Martin Robinson <mrobinson@igalia.com> Co-authored-by: Oriol Brufau <obrufau@igalia.com>
* Streams: make writable streams transferrable (#36588)Gregory Terzian36 hours7-34/+107
| | | | | | Making writable streams transferrable, part of https://github.com/servo/servo/issues/34676 Signed-off-by: gterzian <2792687+gterzian@users.noreply.github.com>
* chore: Update wgpu to v25 (#36486)sagudev37 hours19-2252/+3825
| | | | | | | | | | Updates wgpu to v25 and remove some verbose logging from CTS (that also causes OOM). Testing: WebGPU CTS --------- Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* CI: Add `number_of_chunks` (#36584)sagudev38 hours7-4/+44
| | | | | | | | | | | This allows changing number of chunks used for WPT testing (sometimes useful for WebGPU). Testing: Manual try runs Fixes: #30062 --------- Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* Refactor common infrastructure for creating memory reports. (#36579)Josh Matthews42 hours11-57/+68
| | | | | | | | | This removes a bunch of duplicated code needed to support ConditionalMallocSizeOf correctly, and fixes multiple places where that code was subtly wrong (the seen pointers hashset was never cleared). Testing: Measuring https://www.nist.gov/image-gallery lots of times. Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Check CSP for inline event handlers (#36510)Tim van der Lippe47 hours64-569/+58
| | | | | | | | | | | | This also ensures that document now reports all violations and we set the correct directive. With these changes, all `script-src-attr-elem` WPT tests pass. Part of #36437 Requires servo/rust-content-security-policy#3 to land first Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
* build(deps): bump svg_fmt from 0.4.4 to 0.4.5 (#36587)dependabot[bot]2 days1-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bumps [svg_fmt](https://github.com/nical/rust_debug) from 0.4.4 to 0.4.5. <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/nical/rust_debug/commits">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=svg_fmt&package-manager=cargo&previous-version=0.4.4&new-version=0.4.5)](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>
* Fix `/css/css-flexbox/gap-007-*` WPT tests (#36585)Oriol Brufau2 days9-8/+16
| | | | | | | | | | | | These tests were locally failing for me, both on Servo and Gecko, because these browsers choose a different default font than Blink, making the flex items a bit bigger, and thus only fitting 2 items on the first flex line, instead of 3 items. Manually setting the `line-height` provides consistent results. Testing: This doesn't affect CI, but fixes the local problem for me. Signed-off-by: Oriol Brufau <obrufau@igalia.com>
* layout: Always floor the max-content size by the min-content size (#36571)Oriol Brufau2 days4-10/+17
| | | | | | | | | | This is a follow-up to #36518, which only addressed inline formatting contexts. However, flex formatting contexts had the same problem, so it seems safer to address it in general. Testing: this makes a WPT test pass Fixes: #36570 Signed-off-by: Oriol Brufau <obrufau@igalia.com>
* Report memory usage for image frames. (#36581)Josh Matthews2 days2-2/+6
| | | | | | | | | These changes make the image-cache memory reporter report much larger values after loading image-heavy pages. Testing: Manual testing on https://www.nist.gov/image-gallery Fixes: #36559 Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* compositing: Remove `windowing.rs` and making `compositing` private (#36582)Martin Robinson2 days6-23/+17
| | | | | | | | | | | This file used to contain the `EmbedderDelegate` and `WindowMethods` traits, but these are gone now, so we can move the one remaining enum to be in `compositor.rs` where it is used. This change also stops exposing the `compositing` crate as public Servo API. Testing: This does not change behavior so is covered by existing tests. Signed-off-by: Martin Robinson <mrobinson@igalia.com> Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* imagedata: Fix overflow panic for too large ImageData (#36569)Andrei Volykhin3 days1-4/+21
| | | | | | | | | | | | | | | | | In Servo debug build there are runtime crash due to "attempt to multiply with overflow" panic in case of creation too large ImageData (new ImageData(1<<31, 1<<31)) Use checked integer multiplication to catch occurred overflow and throwing JS error (RangeError OR IndexSizeError). -- - [x] ./mach build -d does not report any errors - [x] ./mach test-tidy does not report any errors - [x] There are tests for these changes tests/wpt/tests/html/canvas/element/pixel-manipulation/2d.imageData.object.ctor.basics.html Signed-off-by: Andrei Volykhin <andrei.volykhin@gmail.com>
* resources: Remove baked in resources (#36042)Jonathan Schwender3 days4-28/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows removing a LazyLock around the resources. We override the baked in resources unconditionally in servoshell upon initialization anyway ([desktop](https://github.com/servo/servo/blob/9f93ccd9427265f39f1a2de38389fec0e80f7bea/ports/servoshell/desktop/cli.rs#L15), [android](https://github.com/servo/servo/blob/9f93ccd9427265f39f1a2de38389fec0e80f7bea/ports/servoshell/egl/android/simpleservo.rs#L49), [ohos](https://github.com/servo/servo/blob/9f93ccd9427265f39f1a2de38389fec0e80f7bea/ports/servoshell/egl/ohos/simpleservo.rs#L43) ), meaning that the baked in resources are unused in servoshell. For 3rd-party embedders, we probably also want to the let them know early that they should initialize the resources, instead of restricting the panics to production mode. Rippy is the only resource which was required. Since it is only 253 bytes large, we just bake that resource in as a fallback. We do want to make using the resources easy from tests, so we add some logic to keep the baked in resources for tests only and initialize the resource reader on first access. --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: --> - [x] `./mach build -d` does not report any errors - [x] `./mach test-tidy` does not report any errors - [ ] These changes fix #___ (GitHub issue number if applicable) - [ ] There are tests for these changes OR - [ ] These changes do not require tests because ___ Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
* Fix crash when enumerating properties of global object (#36491)Josh Matthews3 days9-34/+98
| | | | | | | | | | | | | | | | | | | These changes make our implementation of the enumeration hook for globals [match Gecko's](https://searchfox.org/mozilla-central/rev/1f65969e57c757146e3e548614b49d3a4168eeb8/dom/base/nsGlobalWindowInner.cpp#3297), fixing an assertion failure that occurred in the previous implementation. Our enumeration hook is supposed to fill a vector with names of properties on the global object without modifying the global in any way; instead we were defining all of the missing webidl interfaces. We now do much less work and crash less. Testing: New crashtest based on manual testcase. Fixes: #34686 --------- Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Support static and instance members having the same name in IDLs (#36523)Sebastian C3 days2-21/+35
| | | | | | | | | | | | | | | | This is needed to implement features like `Response.json` which is a static helper added to the fetch spec which overlaps with the `json` instance method `Response` has from `Body`. Partly based these changes on what Firefox does for this same issue. (https://searchfox.org/mozilla-central/source/dom/bindings/Codegen.py and https://searchfox.org/mozilla-central/source/dom/bindings/Configuration.py specifically keying `binaryNameFor` on name and `isStatic`). Testing: I locally updated the Response.webidl to contain the new static `json` and it compiles. Signed-off-by: Sebastian C <sebsebmc@gmail.com>
* fix writablestream assertion crash when getting chunk size following spec ↵Taym Haddadi3 days2-9/+3
| | | | | | | | change (#36566) One-line change to align with the new spec and avoid a crash. fix #36565 Signed-off-by: Taym Haddadi <haddadi.taym@gmail.com>
* build(deps): bump proc-macro2 from 1.0.94 to 1.0.95 (#36575)dependabot[bot]3 days1-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.94 to 1.0.95. <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.95</h2> <ul> <li>Update semver-exempt API under <code>RUSTFLAGS=--cfg=procmacro2_semver_exempt</code> to that of nightly-2025-04-16 (<a href="https://redirect.github.com/dtolnay/proc-macro2/issues/497">#497</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/dtolnay/proc-macro2/commit/24bbf16d9df01d5f7d9ac39bdfbaea85f4c194fb"><code>24bbf16</code></a> Release 1.0.95</li> <li><a href="https://github.com/dtolnay/proc-macro2/commit/835c5bd540373ceed913bfb4d68a7f56279f0a2a"><code>835c5bd</code></a> Merge pull request <a href="https://redirect.github.com/dtolnay/proc-macro2/issues/497">#497</a> from dtolnay/nosourcefile</li> <li><a href="https://github.com/dtolnay/proc-macro2/commit/7bc363c50931c5d3e6de1f785b9b6bc0b53c8866"><code>7bc363c</code></a> Update semver-exempt API to nightly-2025-04-16</li> <li><a href="https://github.com/dtolnay/proc-macro2/commit/b867aa73a8b3c3b4015e2573c66899bf13a1d512"><code>b867aa7</code></a> Merge pull request <a href="https://redirect.github.com/dtolnay/proc-macro2/issues/496">#496</a> from PaulGrandperrin/master</li> <li><a href="https://github.com/dtolnay/proc-macro2/commit/c605e8e2d913dd7512a62e4622cfb05bbe52e2db"><code>c605e8e</code></a> Revert &quot;Merge pull request <a href="https://redirect.github.com/dtolnay/proc-macro2/issues/495">#495</a> from dtolnay/fuzzlld&quot;</li> <li><a href="https://github.com/dtolnay/proc-macro2/commit/1993cd32113f06046e610146effb6671bf5a0edc"><code>1993cd3</code></a> Merge pull request <a href="https://redirect.github.com/dtolnay/proc-macro2/issues/495">#495</a> from dtolnay/fuzzlld</li> <li><a href="https://github.com/dtolnay/proc-macro2/commit/cfdb5677eeee37ab8f76dd01f49ceea281fbff0c"><code>cfdb567</code></a> Link to honggfuzz-rs issue</li> <li><a href="https://github.com/dtolnay/proc-macro2/commit/b09a5b0e452c34824a389ecc6b94b080b413c220"><code>b09a5b0</code></a> Work around cargo-hfuzz nostart-stop-gc gold link failure</li> <li>See full diff in <a href="https://github.com/dtolnay/proc-macro2/compare/1.0.94...1.0.95">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=proc-macro2&package-manager=cargo&previous-version=1.0.94&new-version=1.0.95)](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>
* libservo: Expose a `ServoBuilder` (#36549)Martin Robinson3 days17-271/+252
| | | | | | | | | Expose a `ServoBuilder` for easily creating Servo instances using default values. This change enables removing `EmbedderTraits`. Testing: This is covered by `Servo` unit tests. Signed-off-by: Martin Robinson <mrobinson@igalia.com> Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* layout: Throw away nested marker elements instead of storing them in a ↵Martin Robinson3 days1-8/+31
| | | | | | | | | | | | | | | | | | | | | | `BoxSlot` (#36568) `::before` and `::after` pseudo-elements can have their own `::marker` pseudo-element. Since this case wasn't taken into account, they were being stored in main element's `::marker` `BoxSlot`. This could cause problems where two layout boxes would try to use the same `BoxSlot`. For now, just don't store the nested version of the marker. Later, we'll need to figure out how to store these layout objects without causing too much memory usage. Testing: This is covered by `/css/css-lists/nested-marker-styling.html`. In addition, we also made a test case that always causes this crash, but since it had to create 100000 `<div>`s it's probably not appropriate for a test suite. Fixes: #36551 Signed-off-by: Martin Robinson <mrobinson@igalia.com> Co-authored-by: Oriol Brufau <obrufau@igalia.com>
* compositing: Add memory reporter for WebRender. (#36557)Josh Matthews3 days9-8/+98
| | | | | | | | | | This adds a memory reporter for WebRender's memory usage. I seeded it with a couple entries that looked reasonable based on https://searchfox.org/mozilla-central/rev/2c71f1e9b5947612abdc16b64008162c58c1b9d3/gfx/thebes/gfxPlatform.cpp#722-738. Testing: Verified that new numbers appear in about:memory for servo.org. The new images category is surprisingly large (40mb). Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* net: Report memory usage for image cache. (#36556)Josh Matthews3 days6-7/+49
| | | | | | | | | These changes add a new report for image cache memory usage for each script thread. Testing: Looked at the numbers after browsing various stock photo sites that show galleries of images. Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* net: Measure HSTS memory usage. (#36558)Josh Matthews3 days3-24/+27
| | | | | | | | Records the memory usage of the HSTS lists in the network thread. Testing: Verified the presence of the new reports for servo.org. Fixes: #35059 Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* uv: Use native-tls (#36564)Jonathan Schwender3 days1-0/+1
| | | | | | | | | | | | | | | | | | | | | | | uv by default uses baked in webpki certificates. Using the system certificates is preferable for multiple reasons: - OS updates will automatically update the certificates (including revoking) - Supports custom certificates installed on the system (corporate networks) uv does not enable this option by default, because it has a performance overhead on macos. In our scenarios, with long-running commands, the overhead is basically not measurable. I've been using the option on my mac for around 1 month now, without noticing any degradation. See also the previous discussion in https://github.com/servo/book/issues/53 for some background. Testing: We use `uv` in all our tests Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
* libservo: Allow running more than one Servo test in a run (#36532)Martin Robinson4 days4-12/+90
| | | | | | | | | | A `Servo` instance can only be constructed once per program execution and cannot be passed between threads. This change adds a special thread to run `Servo` unit tests. This will allow creating suites of `WebView` unit tests. Testing: This change includes a new test. Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* Fix crash when setting custom property on Location (#36494)Josh Matthews4 days7-13/+21
| | | | | | | | | | | | | | | | | The JS engine uses types like `Handle<Maybe<PropertyDescriptor>>` in various places and our automated bindings are not able to handle the Maybe type. We have hand-written bindings that use outparams to indicate a PropertyDescriptor value is actually the Nothing type, but that data was getting lost when we passed the property descriptor to SetPropertyIgnoringNamedGetter, which assumed that the property descriptor was always valid. Depends on https://github.com/servo/mozjs/pull/579. Testing: Manual testing on testcase from https://github.com/servo/servo/issues/34709, and new crashtest added. Fixes: #34709 Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* media element: support seekable attribute (#36541)TIN TUN AUNG4 days5-39/+59
| | | | | | | | | | | | | | | support seekable attribute in `htmlmediaelement`, modify `seek` algorithm to use `seekable` attribute. related [specs](https://html.spec.whatwg.org/multipage/media.html#dom-media-seekable) Testing: Run WPT Test Fixes: https://github.com/servo/servo/issues/22297 Will wait for https://github.com/servo/media/pull/435 before turning this to ready for review. cc @jdm @xiaochengh Signed-off-by: rayguo17 <rayguo17@gmail.com>
* Implement GetComputedRole in wd (#36552)Kenzie Raditya Tirtarahardja4 days4-0/+40
| | | | | | | | Implement Webdriver Get Computed Role. [spec](https://w3c.github.io/webdriver/#get-computed-role) Signed-off-by: Kenzie Raditya Tirtarahardja <kenzieradityatirtarahardja.18@gmail.com> Co-authored-by: Kenzie Raditya Tirtarahardja <kenzieradityatirtarahardja.18@gmail.com>
* Refactor retrieving element container in webdriver into function (#36467)Kenzie Raditya Tirtarahardja4 days1-21/+37
| | | | | | | | | | | Refactor getting an element's container. Previously this is inlined and only done for `HTMLOptionElement`. [Try](https://github.com/PotatoCP/servo/actions/runs/14399482275) Fixes: #24106 Signed-off-by: Kenzie Raditya Tirtarahardja <kenzieradityatirtarahardja.18@gmail.com> Co-authored-by: Kenzie Raditya Tirtarahardja <kenzieradityatirtarahardja.18@gmail.com>
* compositing: Remove `compositing_traits::MouseWindowEvent` (#36550)Martin Robinson4 days1-9/+1
| | | | | | | | This data structure is unused. Testing: No tests as this just removes dead code. Signed-off-by: Martin Robinson <mrobinson@igalia.com> Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* build(deps): bump stylo from `c756a21` to `0eaeea3` (#36545)Siddhant N Trivedi4 days1-12/+12
| | | | | | | | This PR bumps stylo from [c756a21](https://github.com/servo/stylo/commit/c756a21864709dae8f85c564125bf92440aeaab5) to [0eaeea3](https://github.com/servo/stylo/commit/0eaeea3dfd4aa0415529700353075ad1e1e47e5b). Signed-off-by: Siddhant N. Trivedi <sidntrivedi012@gmail.com>
* compositor: Unify the cross process and in-process API (#36543)Martin Robinson4 days7-183/+87
| | | | | | | | | | | | | | | | | | | Because there used to be two traits exposing messages to the compositor, there were two kinds of messages that could be sent: 1. In-process messages from the `Constellation` 2. Cross-process messages from other parts of Servo Now these two types of messages can be unified into one type. This is a reland of #36443, which caused regressions due to the fact that messages to the compositor were no longer triggering the event loop waker. This version of the PR splits out just the bits that unify the two APIs, leaving the cleanup of routes in the constellation for another PR. Testing: This is covered by existing WPT tests. Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* build(deps): bump content-security-policy from `babd99e` to `be68d50` (#36548)dependabot[bot]4 days1-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bumps [content-security-policy](https://github.com/servo/rust-content-security-policy) from `babd99e` to `be68d50`. <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/servo/rust-content-security-policy/commit/be68d50b793c31403d858ecdfc6eb245085e7e7c"><code>be68d50</code></a> Make URL serializable with <code>serde</code></li> <li><a href="https://github.com/servo/rust-content-security-policy/commit/b4a07f76443981031331f645c52e6c6ca9d11a0b"><code>b4a07f7</code></a> Fix effective directive for inline checks</li> <li>See full diff in <a href="https://github.com/servo/rust-content-security-policy/compare/babd99e8fbafe42434186c252f14b17a3f8dad22...be68d50b793c31403d858ecdfc6eb245085e7e7c">compare view</a></li> </ul> </details> <br /> 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>
* build(deps): bump libc from 0.2.171 to 0.2.172 (#36547)dependabot[bot]4 days1-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bumps [libc](https://github.com/rust-lang/libc) from 0.2.171 to 0.2.172. <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.172</h2> <h3>Added</h3> <ul> <li>Android: Add <code>getauxval</code> for 32-bit targets (<a href="https://redirect.github.com/rust-lang/libc/pull/4338">#4338</a>)</li> <li>Android: Add <code>if_tun.h</code> ioctls (<a href="https://redirect.github.com/rust-lang/libc/pull/4379">#4379</a>)</li> <li>Android: Define <code>SO_BINDTOIFINDEX</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4391">#4391</a>)</li> <li>Cygwin: Add <code>posix_spawn_file_actions_add[f]chdir[_np]</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4387">#4387</a>)</li> <li>Cygwin: Add new socket options (<a href="https://redirect.github.com/rust-lang/libc/pull/4350">#4350</a>)</li> <li>Cygwin: Add statfs &amp; fcntl (<a href="https://redirect.github.com/rust-lang/libc/pull/4321">#4321</a>)</li> <li>FreeBSD: Add <code>filedesc</code> and <code>fdescenttbl</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4327">#4327</a>)</li> <li>Glibc: Add unstable support for _FILE_OFFSET_BITS=64 (<a href="https://redirect.github.com/rust-lang/libc/pull/4345">#4345</a>)</li> <li>Hermit: Add <code>AF_UNSPEC</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4344">#4344</a>)</li> <li>Hermit: Add <code>AF_VSOCK</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4344">#4344</a>)</li> <li>Illumos, NetBSD: Add <code>timerfd</code> APIs (<a href="https://redirect.github.com/rust-lang/libc/pull/4333">#4333</a>)</li> <li>Linux: Add <code>_IO</code>, <code>_IOW</code>, <code>_IOR</code>, <code>_IOWR</code> to the exported API (<a href="https://redirect.github.com/rust-lang/libc/pull/4325">#4325</a>)</li> <li>Linux: Add <code>tcp_info</code> to uClibc bindings (<a href="https://redirect.github.com/rust-lang/libc/pull/4347">#4347</a>)</li> <li>Linux: Add further BPF program flags (<a href="https://redirect.github.com/rust-lang/libc/pull/4356">#4356</a>)</li> <li>Linux: Add missing INPUT_PROP_XXX flags from <code>input-event-codes.h</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4326">#4326</a>)</li> <li>Linux: Add missing TLS bindings (<a href="https://redirect.github.com/rust-lang/libc/pull/4296">#4296</a>)</li> <li>Linux: Add more constants from <code>seccomp.h</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4330">#4330</a>)</li> <li>Linux: Add more glibc <code>ptrace_sud_config</code> and related <code>PTRACE_*ET_SYSCALL_USER_DISPATCH_CONFIG</code>. (<a href="https://redirect.github.com/rust-lang/libc/pull/4386">#4386</a>)</li> <li>Linux: Add new netlink flags (<a href="https://redirect.github.com/rust-lang/libc/pull/4288">#4288</a>)</li> <li>Linux: Define ioctl codes on more architectures (<a href="https://redirect.github.com/rust-lang/libc/pull/4382">#4382</a>)</li> <li>Linux: Add missing <code>pthread_attr_setstack</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4349">#4349</a>)</li> <li>Musl: Add missing <code>utmpx</code> API (<a href="https://redirect.github.com/rust-lang/libc/pull/4332">#4332</a>)</li> <li>Musl: Enable <code>getrandom</code> on all platforms (<a href="https://redirect.github.com/rust-lang/libc/pull/4346">#4346</a>)</li> <li>NuttX: Add more signal constants (<a href="https://redirect.github.com/rust-lang/libc/pull/4353">#4353</a>)</li> <li>QNX: Add QNX 7.1-iosock and 8.0 to list of additional cfgs (<a href="https://redirect.github.com/rust-lang/libc/pull/4169">#4169</a>)</li> <li>QNX: Add support for alternative Neutrino network stack <code>io-sock</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4169">#4169</a>)</li> <li>Redox: Add more <code>sys/socket.h</code> and <code>sys/uio.h</code> definitions (<a href="https://redirect.github.com/rust-lang/libc/pull/4388">#4388</a>)</li> <li>Solaris: Temporarily define <code>O_DIRECT</code> and <code>SIGINFO</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4348">#4348</a>)</li> <li>Solarish: Add <code>secure_getenv</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4342">#4342</a>)</li> <li>VxWorks: Add missing <code>d_type</code> member to <code>dirent</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4352">#4352</a>)</li> <li>VxWorks: Add missing signal-related constsants (<a href="https://redirect.github.com/rust-lang/libc/pull/4352">#4352</a>)</li> <li>VxWorks: Add more error codes (<a href="https://redirect.github.com/rust-lang/libc/pull/4337">#4337</a>)</li> </ul> <h3>Deprecated</h3> <ul> <li>FreeBSD: Deprecate <code>TCP_PCAP_OUT</code> and <code>TCP_PCAP_IN</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4381">#4381</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Cygwin: Fix member types of <code>statfs</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4324">#4324</a>)</li> <li>Cygwin: Fix tests (<a href="https://redirect.github.com/rust-lang/libc/pull/4357">#4357</a>)</li> <li>Hermit: Make <code>AF_INET = 3</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4344">#4344</a>)</li> <li>Musl: Fix the syscall table on RISC-V-32 (<a href="https://redirect.github.com/rust-lang/libc/pull/4335">#4335</a>)</li> <li>Musl: Fix the value of <code>SA_ONSTACK</code> on RISC-V-32 (<a href="https://redirect.github.com/rust-lang/libc/pull/4335">#4335</a>)</li> <li>VxWorks: Fix a typo in the <code>waitpid</code> parameter name (<a href="https://redirect.github.com/rust-lang/libc/pull/4334">#4334</a>)</li> </ul> <h3>Removed</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/rust-lang/libc/blob/0.2.172/CHANGELOG.md">libc's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/rust-lang/libc/compare/0.2.171...0.2.172">0.2.172</a> - 2025-04-14</h2> <h3>Added</h3> <ul> <li>Android: Add <code>getauxval</code> for 32-bit targets (<a href="https://redirect.github.com/rust-lang/libc/pull/4338">#4338</a>)</li> <li>Android: Add <code>if_tun.h</code> ioctls (<a href="https://redirect.github.com/rust-lang/libc/pull/4379">#4379</a>)</li> <li>Android: Define <code>SO_BINDTOIFINDEX</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4391">#4391</a>)</li> <li>Cygwin: Add <code>posix_spawn_file_actions_add[f]chdir[_np]</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4387">#4387</a>)</li> <li>Cygwin: Add new socket options (<a href="https://redirect.github.com/rust-lang/libc/pull/4350">#4350</a>)</li> <li>Cygwin: Add statfs &amp; fcntl (<a href="https://redirect.github.com/rust-lang/libc/pull/4321">#4321</a>)</li> <li>FreeBSD: Add <code>filedesc</code> and <code>fdescenttbl</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4327">#4327</a>)</li> <li>Glibc: Add unstable support for _FILE_OFFSET_BITS=64 (<a href="https://redirect.github.com/rust-lang/libc/pull/4345">#4345</a>)</li> <li>Hermit: Add <code>AF_UNSPEC</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4344">#4344</a>)</li> <li>Hermit: Add <code>AF_VSOCK</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4344">#4344</a>)</li> <li>Illumos, NetBSD: Add <code>timerfd</code> APIs (<a href="https://redirect.github.com/rust-lang/libc/pull/4333">#4333</a>)</li> <li>Linux: Add <code>_IO</code>, <code>_IOW</code>, <code>_IOR</code>, <code>_IOWR</code> to the exported API (<a href="https://redirect.github.com/rust-lang/libc/pull/4325">#4325</a>)</li> <li>Linux: Add <code>tcp_info</code> to uClibc bindings (<a href="https://redirect.github.com/rust-lang/libc/pull/4347">#4347</a>)</li> <li>Linux: Add further BPF program flags (<a href="https://redirect.github.com/rust-lang/libc/pull/4356">#4356</a>)</li> <li>Linux: Add missing INPUT_PROP_XXX flags from <code>input-event-codes.h</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4326">#4326</a>)</li> <li>Linux: Add missing TLS bindings (<a href="https://redirect.github.com/rust-lang/libc/pull/4296">#4296</a>)</li> <li>Linux: Add more constants from <code>seccomp.h</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4330">#4330</a>)</li> <li>Linux: Add more glibc <code>ptrace_sud_config</code> and related <code>PTRACE_*ET_SYSCALL_USER_DISPATCH_CONFIG</code>. (<a href="https://redirect.github.com/rust-lang/libc/pull/4386">#4386</a>)</li> <li>Linux: Add new netlink flags (<a href="https://redirect.github.com/rust-lang/libc/pull/4288">#4288</a>)</li> <li>Linux: Define ioctl codes on more architectures (<a href="https://redirect.github.com/rust-lang/libc/pull/4382">#4382</a>)</li> <li>Linux: Add missing <code>pthread_attr_setstack</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4349">#4349</a>)</li> <li>Musl: Add missing <code>utmpx</code> API (<a href="https://redirect.github.com/rust-lang/libc/pull/4332">#4332</a>)</li> <li>Musl: Enable <code>getrandom</code> on all platforms (<a href="https://redirect.github.com/rust-lang/libc/pull/4346">#4346</a>)</li> <li>NuttX: Add more signal constants (<a href="https://redirect.github.com/rust-lang/libc/pull/4353">#4353</a>)</li> <li>QNX: Add QNX 7.1-iosock and 8.0 to list of additional cfgs (<a href="https://redirect.github.com/rust-lang/libc/pull/4169">#4169</a>)</li> <li>QNX: Add support for alternative Neutrino network stack <code>io-sock</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4169">#4169</a>)</li> <li>Redox: Add more <code>sys/socket.h</code> and <code>sys/uio.h</code> definitions (<a href="https://redirect.github.com/rust-lang/libc/pull/4388">#4388</a>)</li> <li>Solaris: Temporarily define <code>O_DIRECT</code> and <code>SIGINFO</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4348">#4348</a>)</li> <li>Solarish: Add <code>secure_getenv</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4342">#4342</a>)</li> <li>VxWorks: Add missing <code>d_type</code> member to <code>dirent</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4352">#4352</a>)</li> <li>VxWorks: Add missing signal-related constsants (<a href="https://redirect.github.com/rust-lang/libc/pull/4352">#4352</a>)</li> <li>VxWorks: Add more error codes (<a href="https://redirect.github.com/rust-lang/libc/pull/4337">#4337</a>)</li> </ul> <h3>Deprecated</h3> <ul> <li>FreeBSD: Deprecate <code>TCP_PCAP_OUT</code> and <code>TCP_PCAP_IN</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4381">#4381</a>)</li> </ul> <h3>Fixed</h3> <ul> <li>Cygwin: Fix member types of <code>statfs</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4324">#4324</a>)</li> <li>Cygwin: Fix tests (<a href="https://redirect.github.com/rust-lang/libc/pull/4357">#4357</a>)</li> <li>Hermit: Make <code>AF_INET = 3</code> (<a href="https://redirect.github.com/rust-lang/libc/pull/4344">#4344</a>)</li> <li>Musl: Fix the syscall table on RISC-V-32 (<a href="https://redirect.github.com/rust-lang/libc/pull/4335">#4335</a>)</li> <li>Musl: Fix the value of <code>SA_ONSTACK</code> on RISC-V-32 (<a href="https://redirect.github.com/rust-lang/libc/pull/4335">#4335</a>)</li> <li>VxWorks: Fix a typo in the <code>waitpid</code> parameter name (<a href="https://redirect.github.com/rust-lang/libc/pull/4334">#4334</a>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/rust-lang/libc/commit/a5eab581f9c9c03f29e3edd4a4d4f850d748f2e9"><code>a5eab58</code></a> Merge pull request <a href="https://redirect.github.com/rust-lang/libc/issues/4410">#4410</a> from tgross35/release-libc</li> <li><a href="https://github.com/rust-lang/libc/commit/481eca7cc3382b3a8e367a16f1e20440810d70fd"><code>481eca7</code></a> chore: release libc 0.2.172</li> <li><a href="https://github.com/rust-lang/libc/commit/ce2edbbaa9bbc3273e356694b6dd2c39fc7b788b"><code>ce2edbb</code></a> Merge pull request <a href="https://redirect.github.com/rust-lang/libc/issues/4399">#4399</a> from tgross35/backport-triagebot-branch-warn</li> <li><a href="https://github.com/rust-lang/libc/commit/31b32009070ffbdfdea2752d10bc51c2a580991c"><code>31b3200</code></a> Suggest stable-nominated in the PR template</li> <li><a href="https://github.com/rust-lang/libc/commit/3bffe1d58a9e86521cee10b697270403e2429f76"><code>3bffe1d</code></a> Make triagebot warn on non-default branches</li> <li><a href="https://github.com/rust-lang/libc/commit/03e6ffc8c4679f5f70d53971002e2e4814da9dc3"><code>03e6ffc</code></a> Merge pull request <a href="https://redirect.github.com/rust-lang/libc/issues/4396">#4396</a> from tgross35/backport-serrano</li> <li><a href="https://github.com/rust-lang/libc/commit/f9a47ac8113e45fc9c6871911bc1e0b7de858972"><code>f9a47ac</code></a> Define SO_BINDTOIFINDEX on Android</li> <li><a href="https://github.com/rust-lang/libc/commit/a358dae479b3b886caa1410d4f80fa546db31660"><code>a358dae</code></a> Add missing utmpx apis for linux musl</li> <li><a href="https://github.com/rust-lang/libc/commit/1ff2f2181ae33067ee8e25bee4cbcab535c34160"><code>1ff2f21</code></a> adding linux glibc ptrace_sud_config and related PTRACE_*ET_SYSCALL_USER_DISP...</li> <li><a href="https://github.com/rust-lang/libc/commit/55c58c956d72819faea79fd49ff8dbb779c8a577"><code>55c58c9</code></a> Add more redox sys/socket.h and sys/uio.h definitions</li> <li>Additional commits viewable in <a href="https://github.com/rust-lang/libc/compare/0.2.171...0.2.172">compare view</a></li> </ul> </details> <br /> [![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=libc&package-manager=cargo&previous-version=0.2.171&new-version=0.2.172)](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>
* Switch to data_url::mime for document content type (#36522)webbeef4 days10-178/+112
| | | | | | | | The data_url Mime parser has a more conformant behavior in most cases, including dealing with charsets. Testing: wpt expectations with new passes are updated. Signed-off-by: webbeef <me@webbeef.org>
* Fix git failure on macos (#36544)Jonathan Schwender4 days1-0/+3
| | | | | | | | | | | | | | | | | | | Fixes the following warning: ``` warning: servoshell@0.0.1: Could not generate git version information: "dyld[59398]: Symbol not found: _libintl_setlocale\n Referenced from: <CB4FE7B2-A5DC-34F0-8247-A96F45D664E8> /opt/homebrew/Cellar/git/2.48.1/bin/git\n Expected in: <0DA2D46D-7A17-3860-809D-71FD05B785FA> /Library/Frameworks/GStreamer.framework/Versions/1.0/lib/libintl.8.dylib\n" ``` This was discussed in https://github.com/servo/servo/issues/36435#issuecomment-2794224073. mach sets DYLD_LIBRARY_PATH, which is currently necessary for our unit tests, but causes git to fail in the build script. Simply unsetting the environment variable before invoking git works around this problem. Testing: Tested manually on macos and verified the warning does not occur anymore. Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
* canvas: Add "EnforceRange" attribute to CanvasImageData interface (#36546)Andrei Volykhin4 days13-52/+7
| | | | | | | | | | | | | Add missing "EnforceRange" attribute to interface methods https://html.spec.whatwg.org/multipage/canvas.html#canvasimagedata -- - [x] ./mach build -d does not report any errors - [x] ./mach test-tidy does not report any errors - [x] There are tests for these changes tests/wpt/tests/html/canvas/element/pixel-manipulation/2d.imageData* tests/wpt/tests/html/canvas/offscreen/pixel-manipulation/2d.imageData* Signed-off-by: Andrei Volykhin <andrei.volykhin@gmail.com>
* script: Implement CSSStyleSheet constructor (#36521)Oriol Brufau4 days11-38/+127
| | | | | | | | https://drafts.csswg.org/cssom/#dom-cssstylesheet-cssstylesheet Testing: covered by WPT This is part of #36162 Signed-off-by: Oriol Brufau <obrufau@igalia.com>
* Remove two outdated TODO comments in HTMLScriptElement (#36540)Simon Wülker4 days1-7/+14
| | | | | | We support both the "referrerpolicy" and the "nonce" attribute on script elements, just not where the spec tells us to do it. Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* Make DOMException serializable (#36535)Kingsley Yung4 days6-12/+138
| | | | | | | | | | | Follow the implementation of making DOMPoint and DOMPointReadOnly serializable in PR #35989 Testing: Passed a test previously expected to fail. Fixes: #36463 --------- Signed-off-by: Kingsley Yung <kingsley@kkoyung.dev>
* Unify media query and media query list parsing (#36520)Oriol Brufau4 days4-123/+64
| | | | | | | | | | Several places were using identical logic in order to parse a media queries or media query lists. This patch centralizes the logic into 2 new helper methods in MediaList. Testing: not needed (no behavior change) Signed-off-by: Oriol Brufau <obrufau@igalia.com>
* [OHOS] Allow setting the log-filter via cli arguments (#36444)Astraea Quinn S4 days3-29/+75
| | | | | | | | | | This PR allows setting the log-filter according to the env_filter spec via CLI arguments. Testing is currently in progress, will be done on machines running OHOS. --------- Signed-off-by: Astraea Quinn Skoutelli <astraea.quinn.skoutelli@huawei.com> Co-authored-by: Jonathan Schwender <schwenderjonathan@gmail.com>
* touch: Fix panic with -Zconvert-mouse-to-touch (#36531)Jonathan Schwender4 days2-17/+47
| | | | | | | | | | | | | | | - We previously converted all mouse move events to touch events, but we should only be doing that while a mouse button is pressed (a finger always does touch-down -> move -> up / cancel) - Only consider Left mouse button for mouse-to-touch. We currently already hardcode TouchId 0, which we would need to change in order to properly support Multi-touch. Since we don't have any Multi-touch gestures at the moment, we leave this unimplemented and simply only evaluate the left mouse button. Testing: Manual testing. We don't have servodriver support yet. Fixes: #36526 Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>