This ensures that the selection after the move is as expected.
It mostly fixes tests that had fully passing implementation, but
the after fontsize was incorrect, since the selection wasn't
properly updated.
Some new regressions were false positives.
Part of #25005
Testing: WPT
---------
Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
Signed-off-by: Tim van der Lippe <TimvdLippe@users.noreply.github.com>
Bumps libredox from 0.1.15 to 0.1.16.
[](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 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>
Do not `cancel_animations_for_node` for this function.
We can then reuse it more often.
Testing: Just a refactor.
Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
Added a `register` method to `NodeActor` following the same pattern used
by other actors in the devtools codebase. Updated
`NodeInfoToProtocol::get_or_register_node_actor` to use it instead of
constructing `NodeActor` directly.
Testing:
Ran `./mach try linux-unit-tests` and `./mach test-devtools`. No new
failures introduced.
Fixes:part of #43800
---------
Signed-off-by: Emmanuel Paul Elom <elomemmanuel007@gmail.com>
font: Use `read_fonts` module to generate font list on OpenHarmony
platform. Specifically:
- `Family name` is obtained from the font's `name` table.
- `width` & `weight` is obtained from the font's `os2` table.
- `style` is obtained from the font's `postscript` table.
Additionally, I'd like to mention that I plan to add a caching mechanism
to store the font list in the near future (as mentioned in the related
issue)
Reference: [TrueType reference
manual](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6.html)
Testing: No behavior changes expected.
Fixes: Part of [#43596](https://github.com/servo/servo/issues/43596)
---------
Signed-off-by: Richard Tjokroutomo <richard.tjokro2@gmail.com>
Added a `register` method to `PageStyleActor` following the same pattern
used by other actors in the devtools codebase. Updated
`InspectorActor::register` to use it instead of constructing
`PageStyleActor` directly.
Testing:
Ran `./mach try linux-unit-tests` and `./mach test-devtools`. No new
failures introduced.
Fixes:part of #43800
Signed-off-by: Emmanuel Paul Elom <elomemmanuel007@gmail.com>
Signed-off-by: eri <eri@igalia.com>
Co-authored-by: eri <eri@igalia.com>
Instead of panicking when pressing a keyboard shortcut for an uknown
WebView, just silently ignore the request. This code path is only
followed when using keyboard shortcuts, so this isn't going to hide any
unexpected behavior.
Testing: We do not have testing at this level of servoshell.
Fixes: #44056.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
When media controls are removed (either by removing the controls
attribute or by removing the element from the DOM), the shadow root's
children are now cleared. This breaks the reference cycle between the js
mediacontrols instance and the media element, the event listeners and
this.media reference in the controls script would otherwise keep the
element alive and prevent garbage collection.
I tested the controls and it renders correctly and deleting a video with
controls doesn't crash.
Fixes: #43828
Signed-off-by: Messi002 <rostandmessi2@gmail.com>
Added a `register` method to `HighlighterActor` following the same
pattern used by other actors in the devtools codebase. Updated
`InspectorActor::register` to use it instead of onstructing
`HighlighterActor` directly.
Testing:
Ran `./mach try linux-unit-tests` and `./mach test-devtools`. No new
failures introduced.
Fixes:part of #43800
---------
Signed-off-by: CynthiaOketch <cynthiaoketch6@gmail.com>
Make `isAsync` and `isGenerator` optional
Testing: Current tests as passing
Fixes: part of #36027
Signed-off-by: atbrakhi <atbrakhi@igalia.com>
Signed-off-by: eri <eri@igalia.com>
Co-authored-by: eri <eri@igalia.com>
Handle different number values and their types
Testing: Current tests are passing
Fixes: part of #36027
Signed-off-by: atbrakhi <atbrakhi@igalia.com>
Co-authored-by: eri <eri@igalia.com>
There are two times that Servo needs to ask other `Document`s to either
focus or blur.
- During processing of the "focusing steps". When a new element gains
focus this may cause focus to be lost or gained in parent `<iframe>`s.
- When calling `focus()` on a DOM Window from another origin.
In both of these cases we need to request that a `Document` gain or lose
focus via the Constellation, but in the second case we may have a
`BrowsingContextId` of the `<iframe>` gaining focus and a
`FocusSequence`. This change splits those cases into two kinds of
messages.
Finally, run the entire focusing steps when calling `window.focus()`
instead of going to the constellation immediately. This will be
important in a followup changes where messaging order is made more
consistent.
Testing: This should not change behavior so is covered by existing
tests.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
This PR removes support for passing direct test file paths (e.g.,
`./mach test-unit <test_file.rs>`) to `mach test-unit`.
Previously, this shorthand was supported in `test-unit` but was
subsequently broken in #39897. Supporting this behavior now requires
extracting test names from a generic parameter list, which is
error-prone due to the presence of arbitrary arguments and inconsistent
argument ordering.
With this change, `mach test-unit` aligns more closely with standard
Cargo test patterns. Users are expected to specify test modules or
patterns instead (e.g., `./mach test-unit <module>::` or using
Cargo-compatible arguments).
This simplifies the implementation and avoids maintaining fragile logic
for shorthand support that was not widely used.
---
### Testing
* Ran `./mach test-unit` with various valid patterns and module-based
inputs
* Verified that tests execute correctly across supported use cases
* Confirmed that removal of direct file path support does not affect
standard workflows
---
Fixes: #41065
---------
Signed-off-by: Emmanuel Paul Elom <elomemmanuel007@gmail.com>
Our implementation of [fetch a single module
script](https://html.spec.whatwg.org/multipage/webappapis.html#fetch-a-single-module-script)
was missing the task queueing steps:
```
5. If moduleMap[(url, moduleType)] is "fetching", wait in parallel until that entry's value changes,
then queue a task on the networking task source to proceed with running the following steps.
6. If moduleMap[(url, moduleType)] exists, run onComplete given moduleMap[(url, moduleType)], and return.
```
Instead we appended a `PromiseNativeHandler`, which would run
`on_complete` when resolved, on the promise of the pending fetch.
Testing: This change shouldn't be observable since modules are evaluated
in sync, but it's required for #39417.
Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
The initial interpretation of "convert the font size to the value in
pixels" was completely off. I thought it meant the existing font
elements in the DOM, but instead it implied that you would have to
convert these into pixels according to the HTML size table.
Therefore, use the implementation in Stylo to convert the html size to a
keyword and then compute the value for the keyword.
To make that work, we need to compute the pixel size as fallback when
resolving the CSS value on the node. We check if it were pixels and then
go through the conversion. If they aren't pixels, we can skip all that
logic and directly convert, saving a few cycles.
Part of #25005
Testing: WPT
---------
Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
Signed-off-by: Tim van der Lippe <TimvdLippe@users.noreply.github.com>
Co-authored-by: Josh Matthews <josh@joshmatthews.net>
Bumps [thin-vec](https://github.com/gankra/thin-vec) from 0.2.14 to
0.2.15.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/mozilla/thin-vec/blob/main/RELEASES.md">thin-vec's
changelog</a>.</em></p>
<blockquote>
<h1>Version 0.2.15 (2025-02-19)</h1>
<ul>
<li>Support AutoTArrays created from rust in Gecko FFI mode.</li>
<li>Add extract_if.</li>
<li>Add const new() support behind feature flag.</li>
<li>Fix <code>thin_vec</code> macro not being hygienic when
recursing</li>
<li>Improve extend() performance.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="70bcca0960"><code>70bcca0</code></a>
chore: Bump version to v0.2.15</li>
<li><a
href="322423b7a6"><code>322423b</code></a>
Fix miri error on extract_if().</li>
<li><a
href="eca5334c29"><code>eca5334</code></a>
Don't make push_unchecked public.</li>
<li><a
href="90e23c39cc"><code>90e23c3</code></a>
Minor nits, go back to call push_reserved push_unchecked.</li>
<li><a
href="ee9d6bb28f"><code>ee9d6bb</code></a>
Optimize extend() to avoid unnecessary capacity checks</li>
<li><a
href="7fd47080c0"><code>7fd4708</code></a>
feat: add const_new feature for const ThinVec::new()</li>
<li><a
href="beb652d66b"><code>beb652d</code></a>
Merge pull request <a
href="https://redirect.github.com/gankra/thin-vec/issues/75">#75</a>
from jtracey/patch-1</li>
<li><a
href="6f3da2525d"><code>6f3da25</code></a>
Merge pull request <a
href="https://redirect.github.com/gankra/thin-vec/issues/73">#73</a>
from emilio/auto-array-tweaks</li>
<li><a
href="d3d7475118"><code>d3d7475</code></a>
gecko: Keep the auto-bit across relocations.</li>
<li><a
href="faa01eb790"><code>faa01eb</code></a>
Merge pull request <a
href="https://redirect.github.com/gankra/thin-vec/issues/66">#66</a>
from GnomedDev/extract-if</li>
<li>Additional commits viewable in <a
href="https://github.com/gankra/thin-vec/compare/v0.2.14...v0.2.15">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 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>
Bumps [zerofrom-derive](https://github.com/unicode-org/icu4x) from 0.1.6
to 0.1.7.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md">zerofrom-derive's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h2>icu 2.2.x</h2>
<p>Several crates have had patch releases in the 2.2 stream:</p>
<ul>
<li>Components
<ul>
<li>(2.2.1) <code>icu_calendar</code>
<ul>
<li>Fix extended year calculations in Gregorian-like and Coptic-like
calendars (unicode-org#7849)</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2>icu4x 2.2</h2>
<ul>
<li>Components
<ul>
<li>General
<ul>
<li>Use HTTPS links in docs (unicode-org#7212)</li>
<li>Update MSRV to 1.86 (unicode-org#7576)</li>
<li>Updated to CLDR 48.2 (unicode-org#7792)</li>
<li>Replace <code>experimental</code> features with
<code>unstable</code> features (unicode-org#7566)</li>
<li>Add categories and keywords to Cargo.toml for all components
(unicode-org#7737)</li>
</ul>
</li>
<li><code>icu_calendar</code>
<ul>
<li>Add <code>Date::try_new</code>, which replaces
<code>Date::try_new_from_codes</code>, and takes typed year/month
values. (unicode-org#7773, unicode-org#7764)</li>
<li>New methods: <code>Date::try_new</code> (and primarily-internal
<code>Calendar::new_date</code>)</li>
<li>New types: <code>InputYear</code>, <code>DateNewError</code></li>
<li>Handle possible <code>Overflow</code> values on individual calendars
(unicode-org#7795)</li>
<li>New <code>Date::try_from_fields</code> API for fully general date
construction from various choices of year and month values
(unicode-org#7798)</li>
<li>New methods: <code>Date::try_from_fields()</code></li>
<li>New types: <code>DateFields</code>,
<code>DateFromFieldsOptions</code>, <code>Overflow</code>,
<code>MissingFieldsStrategy</code>,
<code>DateFromFieldsError</code></li>
<li>New associated method: <code>Calendar::from_fields()</code></li>
<li>New Date arithmetic APIs for adding and subtracting dates
(unicode-org#7798, unicode-org#7355, unicode-org#7257)</li>
<li>New methods: <code>Date::try_add_with_options</code>,
<code>Date::try_added_with_options</code>,
<code>Date::try_until_with_options</code></li>
<li>New types: <code>DateDuration</code>, <code>DateAddOptions</code>,
<code>DateDifferenceOptions</code>, <code>DateDurationUnit</code>,
<code>DateDurationParseError</code>, <code>DateAddError</code>,
<code>MismatchedCalendarError</code></li>
<li>New associated items: <code>Calendar::add</code>,
<code>Calendar::until</code>,
<code>Calendar::DateCompatibilityError</code></li>
<li>Introduce a new <code>Month</code> type, preferred over using month
codes (unicode-org#7147, unicode-org#7756)
<ul>
<li>New type: <code>Month</code></li>
<li>New method: <code>MonthInfo::to_input()</code></li>
</ul>
</li>
<li>Introduce year/date ranges to all APIs, documented on the APIs
themselves. <code>Date</code> now has a fundamental range (ISO years
between ±999,999), and most constructors enforce a stricter range of
±9999 years for input years. (unicode-org#7676, unicode-org#7062,
unicode-org#7629, unicode-org#7753, unicode-org#7219,
unicode-org#7227)</li>
<li>Add constructors with <code>Month</code> for lunisolar calendars
(unicode-org#7485)</li>
<li>New methods: <code>Date::try_new_korean_traditional()</code>,
<code>Date::try_new_chinese_traditional()</code>,
<code>Date::try_new_hebrew_v2()</code></li>
<li>Expose <code>LeapStatus</code> on <code>MonthInfo</code>
(unicode-org#7667)</li>
<li>New method: <code>MonthInfo::leap_status()</code></li>
<li>New enum: <code>LeapStatus</code></li>
<li>(Unstable) Integrate with <code>chrono</code>, <code>jiff</code>,
and <code>time</code> (unicode-org#7617, unicode-org#7711)</li>
<li>New impls: <code>From<chrono::NaiveDate></code>,
<code>From<jiff::civil::Date></code>,
<code>From<time::Date></code> for
<code>Date<Gregorian></code></li>
<li>Replace <code>Date::day_of_week</code> by <code>Date::weekday</code>
(unicode-org#7288)
<ul>
<li>New method: <code>Date::weekday()</code></li>
</ul>
</li>
<li>Deprecate <code>Date::new_from_iso</code>/<code>Date::to_iso</code>
(unicode-org#7287)</li>
<li>Deprecate <code>Date::extended_year()</code> (use
<code>Date::year().extended_year()</code>) (unicode-org#7289)</li>
<li>Remove <code>YearInfo: PartialEq</code> bound
(unicode-org#7743)</li>
<li>Start producing Meiji era only after Meiji 6 (unicode-org#7503)</li>
</ul>
</li>
</ul>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/unicode-org/icu4x/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 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>
Bumps [cryptography](https://github.com/pyca/cryptography) from 46.0.6
to 46.0.7.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst">cryptography's
changelog</a>.</em></p>
<blockquote>
<p>46.0.7 - 2026-04-07</p>
<pre><code>
* **SECURITY ISSUE**: Fixed an issue where non-contiguous buffers could
be
passed to APIs that accept Python buffers, which could lead to buffer
overflow. **CVE-2026-39892**
* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL
3.5.6.
<p>.. _v46-0-6:<br />
</code></pre></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="622d672e42"><code>622d672</code></a>
46.0.7 release (<a
href="https://redirect.github.com/pyca/cryptography/issues/14602">#14602</a>)</li>
<li>See full diff in <a
href="https://github.com/pyca/cryptography/compare/46.0.6...46.0.7">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 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)
You can disable automated security fix PRs for this repo from the
[Security Alerts page](https://github.com/servo/servo/network/alerts).
</details>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This will be needed for ensuring that shaped text is valid during
relayout. It duplicates some information, but the hope is that when all
of these change are done, there will be many fewer individual shaped
segments of text.
Testing: This should not really change observable behavior so is covered
by existing tests.
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
While debugging test failures, I discovered that I had reversed the
`is_allowed_child` arguments. That made a bunch more tests pass, but
then also started to fail tests as we weren't clearing the previous
value and computing loose equivalence.
Therefore, this PR fixes the reversal and implements the relevant parts
of some algorithms as to not regress too much. There are two new
failures related to how integers should be parsed, but tackling that
separately.
Part of #25005
Testing: WPT
Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
Despite using `jemalloc` by default on macos as the Rust global
allocator, the default system allocator will still be used by some C/C++
libraries.
Using `malloc_zone_statistics` on macos allows us to get information
about the system allocator heap usage.
Since the macos statistic also provides information about reserved, but
currently unused memory, we also expose that and attempt to calculate
the same metric on Linux, which should be
arena (Non-mmapped space allocated (bytes)) + hblkhd (Space allocated in
mmapped regions (bytes)) See
https://man7.org/linux/man-pages/man3/mallinfo.3.html
Loading `servo.org` in a debug build on macOS and then navigating to
about:memory, I see 31MB system-heap-allocated and 92 MB
system-heap-reserved.
Testing: Manually tested on macOS. Not tested on Linux.
---------
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
CacheMode, CredentialsMode, Destination, RedirectMode, and Referrer were
imported with NetTraitsRequest* aliases to avoid naming conflicts. These
conflicts no longer exist; their original names do not clash with any
other imports or types in this file, so the aliases are restored.
Testing: Pure refactor with no behavior change. Ran `./mach try
linux-unit-tests` to verify existing tests continue to pass.
Fixes: #42981
Signed-off-by: CynthiaOketch <cynthiaoketch6@gmail.com>
Refer to https://github.com/servo/servo/pull/43746 for a description of
the problem. This change ensures that video posters can be loaded from
blob URLs, even if the URL is revoked right after.
Testing: This change adds a test
---------
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
Fix recursion causing panic in debugger
Testing: Current tests are passing, also manual testing
Fixes: part of #36027
Signed-off-by: atbrakhi <atbrakhi@igalia.com>
Co-authored-by: eri <eri@igalia.com>
Returns an error on `RenderingContext` constructors when size is 0 in
either dimension. Also adds panics to resize functions in the same case.
Testing: Added a unit test for the new error on
`SoftwareRenderingContext::new()`.
Fixes: https://github.com/servo/servo/issues/36061
Signed-off-by: Freya Arbjerg <git@arbjerg.dev>
Co-authored-by: Martin Robinson <martin@abandonedwig.info>
Implement Player Trait in ohos backend using Harmony OS MediaKit's[
AVPlayer](https://developer.huawei.com/consumer/en/doc/harmonyos-references/capi-avplayer-h).
The modular design of `VideoSink`, `InnerPlayer`, and `MediaSource` is
taken from the GStreamer backend.
Only support HarmonyOS SDK API 21, because the
`OH_AVPlayer_SetDataSource` only started to be exposed on API 21.
Testing: N/A, as there are no platform specific task.
Fixes: N/A, now we can play video on HarmonyOS phone using `<video>`
---------
Signed-off-by: rayguo17 <rayguo17@gmail.com>
The `IONFLAGS` environment variable configure logging for the JIT, but
it must be enabled in spidermonkey at compile time. The prebuilt mozjs
binaries don't enable it, so we must build from source.
Companion PR for https://github.com/servo/mozjs/pull/728
Testing: We don't have tests for the build process
---------
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
During traversal, exclude shadow roots.
Analysis:
Each shadow root is processed twice:
- via host: Element::bind_to_tree()
- Via iterator
In total, this would be
```math
\sum_{i=0}^{N-1} 2^i = 2^N - 1
```
Testing: Added a test.
Fixes: https://github.com/servo/servo/issues/43998
---------
Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
Co-authored-by: webbeef <me@webbeef.org>
Fixes: #43968
made get callable property accept ` &CStr ` instead of `&str`
Testing: no behaviour change expected, so existing WPT tests are
sufficient.
Signed-off-by: Rover track <rishan.pgowda@gmail.com>
Bumps [async-signal](https://github.com/smol-rs/async-signal) from
0.2.13 to 0.2.14.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/smol-rs/async-signal/releases">async-signal's
releases</a>.</em></p>
<blockquote>
<h2>v0.2.14</h2>
<ul>
<li>Fix build error on haiku. (<a
href="https://redirect.github.com/smol-rs/async-signal/issues/59">#59</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/smol-rs/async-signal/blob/master/CHANGELOG.md">async-signal's
changelog</a>.</em></p>
<blockquote>
<h1>Version 0.2.14</h1>
<ul>
<li>Fix build error on haiku. (<a
href="https://redirect.github.com/smol-rs/async-signal/issues/59">#59</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="d750e57adc"><code>d750e57</code></a>
Release 0.2.14</li>
<li><a
href="eb72cfd64a"><code>eb72cfd</code></a>
Fix build error on haiku</li>
<li><a
href="1ffadd3db8"><code>1ffadd3</code></a>
Update signal-hook requirement from 0.3.14 to 0.4.1 (<a
href="https://redirect.github.com/smol-rs/async-signal/issues/57">#57</a>)</li>
<li><a
href="a43dca7fd1"><code>a43dca7</code></a>
Fix clippy::io_other_error warning</li>
<li><a
href="c00258a4a6"><code>c00258a</code></a>
Bump MSRV to 1.85</li>
<li><a
href="3fdfdee177"><code>3fdfdee</code></a>
ci: Use taiki-e/checkout-action action</li>
<li><a
href="0f8053d9af"><code>0f8053d</code></a>
ci: Use cargo-hack's --rust-version flag for msrv check</li>
<li>See full diff in <a
href="https://github.com/smol-rs/async-signal/compare/v0.2.13...v0.2.14">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 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>
`global.api_base_url().origin()` returns a unique opaque origin when the
base URL is an opaque origin. When we use the global's origin instead,
requests for claimed blobs can now pass the same-origin check.
Testing: Newly passing tests.
Fixes: #43326Fixes: #43973
---------
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
Removed ```introduction_type_override``` field from
```HTMLScriptElement``` & passed the new variable to
```fetch_inline_module_script```
Testing: No testing required, compiles successfully.
Fixes: #43980
Signed-off-by: Sabb <sarafaabbas@gmail.com>
The origin of a `file` URL is unspecified. Engines act like they're
opaque except in a few special cases - one of which is the "is
potentially trustworthy" algorithm. This change allows consumers of
`servo-url` to distinguish between regular opaque origins and file
origins. Then we use that to mark file origins as "potentially
trustworthy" which is what the spec wants.
For now we can get away without changes to the `url` crate (the one used
in the wider ecosystem, not just servo), but I'm unsure if that will be
the case in the future.
Testing: This change adds a test
Fixes: https://github.com/servo/servo/issues/42540
---------
Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
ParseFromString currently complains that it matches multiple trace
lines. The reason for that is a bit unclear as it should only produce
one alert. Local testing shows that it produces multiple (even for one
run). This should at least give us the metric back.
Testing: This is currently untested. As it is a small CI change that
can't break a broken test it should be fine.
Fixes: https://github.com/servo/servo/issues/42992
Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>