721 Commits

Author SHA1 Message Date
Jonathan Schwender
37dfa42731 Unify servo package naming (#42916)
This is a preparation for publishing to crates.io. Changes include:
- Add `servo-` prefixes to avoid name collisions on crates.io
- Use `-` instead of `_` in package names.
- Rename the crates to their original names in Cargo.toml,
  to keep the diff minimal
- Rename `media` to `servo-media-thread` to avoid name collision with
  `servo-media` (originally from the media repository).

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

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

---------

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2026-03-01 14:15:27 +00:00
Steven Novaryo
ad358de589 libservo: Add allow_virtual_keyboard flag for InputMethodControl (#42467)
Following the convention of other major UAs of gating the virtual
keyboard by certain user activation, adding a flags to let the embedder
knows about the user activation. This would be used to determine whether
the virtual keyboard needs to be shown or not in android and ohos.

Testing: Manual testing.

---------

Signed-off-by: Jo Steven Novaryo <steven.novaryo@gmail.com>
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2026-02-24 07:30:49 +00:00
dependabot[bot]
cb30df1db7 build: bump ohos-abilitykit-sys from 0.1.4 to 0.1.5 (#42793)
Bumps [ohos-abilitykit-sys](https://github.com/openharmony-rs/ohos-sys)
from 0.1.4 to 0.1.5.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/openharmony-rs/ohos-sys/commits">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ohos-abilitykit-sys&package-manager=cargo&previous-version=0.1.4&new-version=0.1.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 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>
2026-02-24 01:32:29 +00:00
Tim van der Lippe
039eab4485 wpt: Move exec_command preference to experimental preferences (#42750)
That way, we correctly run it whenever we invoke WPT. This is relevant
for wpt.fyi, where currently we are not seeing any test coverage in the
`/editing` tests. To make tracking of progress possible, it should be
defined in prefs, not in the `.ini` configuration.

Part of #25005

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
2026-02-22 10:58:16 +00:00
Narfinger
00fa5d3088 devtools: Allow specifiying an address to listen to and default to localhost (#42502)
Previously we listened to 0.0.0.0. which means any connection coming to
a specific port. That seems a bit ill advised as not everybody has a
good firewall setup. Now we default listen only on 127.0.0.1 but
optionally can describe a full SocketAddr such as "192.168.1.23:1234".

Side note: Cleaned up the ipc-channel syntax.

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

Testing: Currently we don't have an automatic way to test this. Manually
run devtools and it connects.

---------

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
2026-02-19 03:24:56 +00:00
Euclid Ye
16f9f7500e webdriver: Retrieve viewport size in CSS pixel (#42628)
According to
[spec](https://w3c.github.io/webdriver/#ref-for-dfn-move-target-out-of-bounds-2:~:text=the%20viewport%20in%20CSS%20pixels),
we are supposed to retrieve viewport size in CSS pixel.

This is a critical step when performing scroll/pointermove, to stop
invalid actions that happen outside viewport.

Testing: Tested with tests in headed mode manually, narrowing
discrepancy between headed/headless mode. Should not have effect on
automated tests in CI.

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2026-02-15 07:55:08 +00:00
Narfinger
028afda6d8 servoshell: Trigger reload when the F5 key is pressed (#42538)
Whenever I open Servoshell and reload, I want to hit F5. Alas it does
nothing.
Now it will.

Testing: This level of functionality in servoshell is not tested at the
moment.

---------

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
2026-02-12 18:29:02 +00:00
Martin Robinson
3292a6edc4 script: Close existing context menus when a new one opens (#42487)
No longer allow showing two context menus as once. Instead only allow a
single context menu at a time. Multiple context menus cause issues with
egui, so it's quite likely that this will cause issues with even more
embedders. This fixes an issue where egui draws scary runtime errors all
over servoshell when opening multiple context menus.

Testing: This changes adds a new WebView API test.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2026-02-10 11:42:02 +00:00
Ashwin Naren
232d434701 Add servo:config page (#40324)
Similar to about:config from firefox. All preferences are editable;
editing them mid-runtime is not guaranteed to cause any effects. This is
separate from servo:preferences, which selectively groups and exposes
preferences. This probably would become more useful if/when preferences
become persistent.

<img width="1136" height="880" alt="Screenshot 2025-10-31 at 10 19
57 PM"
src="https://github.com/user-attachments/assets/2ef759d8-06a4-457f-b9df-331cc3525338"
/>


Followup work:
- Remove `getStringPreference`, `getIntPreference`, and
`getBoolPreference`. Using `getPreference` and `preferenceType` is more
flexible.
- Make more of these config options work on the fly.
- Allow for reverting config options.

---------

Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
2026-02-09 17:31:59 +00:00
Asset Malik
7cf131106e servoshell: Support formatting key,value pairs of events via hitrace on ohos (#41738)
`start_trace_ex` includes not only name, but fields and values of the
trace

Testing: I've passed LargestContentfulPaint pref and got it in the
hitrace.

---------

Signed-off-by: jane <5373400+janeoa@users.noreply.github.com>
2026-02-09 11:46:01 +00:00
Martin Robinson
489c0f0159 servoshell: Foward WindowEvent::Focused events to egui (#42470)
When doing event handling on desktop servoshell, ensure that
`WindowEvent::Focused(true)` is forwarded to egui. This makes it so that
egui knows to show the text cursor in the URL bar input field.

Testing: We currently do not have a way to test visual behavior at this
level of servoshell.
Fixes: #42091.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2026-02-09 10:20:35 +00:00
Mukilan Thiyagarajan
79ed814ec1 libservo: Expand the UserContentManager API. (#42288)
The patch adds the following functionality to the per-WebView
`UserContentManager` API.
- Removing a `UserScript` at that was previously added.
- Adding a new `UserStyleSheet` representing a user-origin style sheet.
allow removing user script
- Removing a previously added `UserStyleSheet`.

There might be scope for some improvements in the API:
- `UserScript` and `UserStyleSheet` have different ways of representing
the source location - a `PathBuf` and `Url` respectively. This is due to
how those values are used by the underlying evaluation APIs in script
and stylo. More investigation is needed here and could be addressed in
future patches.

Testing: New unit tests are added for the user stylesheet APIs. Existing
tests have been updated to test the removal of user scripts.
2026-02-05 13:26:54 +00:00
dependabot[bot]
b7afca1214 build: bump bpaf from 0.9.22 to 0.9.23 (#42349)
Bumps [bpaf](https://github.com/pacak/bpaf) from 0.9.22 to 0.9.23.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pacak/bpaf/blob/master/Changelog.md">bpaf's
changelog</a>.</em></p>
<blockquote>
<h2>bpaf [0.9.23], bpaf_derive [0.5.23] - 2026-02-03</h2>
<ul>
<li>code produced by derive macro is now won't trigger missing-docs
lint</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/pacak/bpaf/commits/v0.9.23">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=bpaf&package-manager=cargo&previous-version=0.9.22&new-version=0.9.23)](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>
2026-02-05 00:52:16 +00:00
Narfinger
fd4198d742 Allow llvm-coverage to write file on webdriver exit (#41141)
This adds a `cfg` to servo that uses the llvm profile-runtime function
for writing the coverage file to disk.

When the webdriver shuts down we should make sure to write the
llvm_coverage file. This is only required on platforms like android or
ohos, where there is no real exiting of the process, so we need to
manually dump the profile to disk.

See also https://clang.llvm.org/docs/SourceBasedCodeCoverage.html

Testing: Tested '/mach build -r --coverage && ./mach test-wpt -r
--coverage' and there do not seem any parsing errors anymore.
Fixes: https://github.com/servo/servo/issues/40942

---------

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
2026-02-04 09:38:32 +00:00
Jonathan Schwender
de7c9d2e43 Bump servoshell to 0.0.5 (#42305)
This version bump is a bit delayed, since I forgot to open the PR before
FOSDEM. The actual release will thus likely not be based on this commit,
but backported to the release branch, to stay in sync with our monthly
report.
There still has been no resolution on the `0.1` version bump situation,
hence another bump of the patch version.

Testing: Not required

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2026-02-03 14:05:55 +00:00
atbrakhi
b6a1761198 Expose a GamepadProvider and use Responder types for messages (#41568)
Expose a `GamepadProvider` and use `Responder` types for messages

Testing: 
Fixes: https://github.com/servo/servo/issues/41453

---------

Signed-off-by: atbrakhi <atbrakhi@igalia.com>
2026-02-01 13:24:01 +00:00
Narfinger
618f40540e net: Remove exterior mutability from FileManager (#42111)
This switches FileManager from being behind an Arc<Mutex<FileManager>>>
to just FileManager.
This saves us the Arc and Mutex and the compiler makes sure that we do
not have Race Conditions.

FileManager is already easily cloneable because it consist of store:
Arc<> and GenericEmbedderProxy.

Testing: Compilation and unit tests are the tests.

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
2026-01-27 01:22:02 +00:00
Ashwin Naren
ccc0d95930 Update servo.exe.manifest for servoshell (#42167)
Bumps servoshell version to actual version and updates `./mach release`
to update it.

---------

Signed-off-by: Ashwin Naren <arihant2math@gmail.com>
2026-01-26 20:23:18 +00:00
hyuraku
a973178fa8 script: move stream-related files into script/dom/stream (#42010)
*Describe the changes that this pull request makes here. This will be
the commit message.*
Move stream file to script/dom/stream
part of https://github.com/servo/servo/issues/38901

Testing: *Describe how this pull request is tested or why it doesn't
require tests*
Fixes: *Link to an issue this pull requests fixes or remove this line if
there is no issue*

---------

Signed-off-by: hyuraku <32809703+hyuraku@users.noreply.github.com>
Signed-off-by: Taym Haddadi <haddadi.taym@gmail.com>
Co-authored-by: Taym Haddadi <haddadi.taym@gmail.com>
2026-01-25 16:18:52 +00:00
Martin Robinson
9c9d9c863f Rename compositing and compositing_traits to paint and paint_api (#42066)
This change finishes the big rename associated with the old
`compositing` crates. Long ago, these crates managed a compositor, like
you might find in a traditional web engine. These days, compositing is
done in WebRender so the name has stopped making much sense. Various
structs inside the crates have already been renamed and this is the
final big change necessary for the rename

Testing: This is just a rename so existing tests should cover it.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2026-01-24 09:17:35 +00:00
Martin Robinson
11d368906b servoshell: Surrender focus when clicking on the WebView on desktop (#42080)
Clicking on the WebView should move focus from the egui interface to the
WebView, so that any subsequent keyboard events are sent there.

Testing: We do not have tests for this layer of servoshell and these
kind of
interactions are difficult to test without a live test runner.
Fixes: #42073
Fixes: #41681

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2026-01-22 15:00:20 +00:00
Josh Matthews
4a2a73ad56 webdriver: Reset prefs to the values present at server start. (#42044)
The test harness attempts to reset preferences to default values when
running a test in which previously-set preferences are no longer set.
This leads to confusing interactions with any preference customizations
that are present, such as `--pref whatever` or `--prefs-file
something.json`, which are not considered when calculating the default.
This PR changes that: whatever preference values are present when the
webdriver server starts is treated as the default value.

Testing: This is a servo-specific webdriver extension, and we're fixing
an interaction with the test harness. I don't see another way to test
this besides observing the impact on our test results.
Fixes: #42043

Signed-off-by: Josh Matthews <josh@joshmatthews.net>
2026-01-21 07:52:17 +00:00
dependabot[bot]
27d27da243 build: bump the napi-ohos-related group with 5 updates (#42018)
Bumps the napi-ohos-related group with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [napi-derive-ohos](https://github.com/ohos-rs/ohos-rs) | `1.1.5` |
`1.1.6` |
| [napi-ohos](https://github.com/ohos-rs/ohos-rs) | `1.1.5` | `1.1.6` |
| [napi-build-ohos](https://github.com/ohos-rs/ohos-rs) | `1.1.5` |
`1.1.6` |
| [napi-derive-backend-ohos](https://github.com/ohos-rs/ohos-rs) |
`1.1.5` | `1.1.6` |
| [napi-sys-ohos](https://github.com/ohos-rs/ohos-rs) | `1.1.5` |
`1.1.6` |

Updates `napi-derive-ohos` from 1.1.5 to 1.1.6
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1357697530"><code>1357697</code></a>
Merge pull request <a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/181">#181</a>
from ohos-rs/feat-0119</li>
<li><a
href="25e8534b9a"><code>25e8534</code></a>
chore: bump version</li>
<li><a
href="1d85ef1318"><code>1d85ef1</code></a>
Sync 0119</li>
<li><a
href="4797037514"><code>4797037</code></a>
chore(deps): update release-plz/action action to v0.5.121 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3098">#3098</a>)</li>
<li><a
href="fc6119b0ff"><code>fc6119b</code></a>
chore(deps): update dependency vite-plugin-node-polyfills to ^0.25.0 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3095">#3095</a>)</li>
<li><a
href="e7c9e72c91"><code>e7c9e72</code></a>
build(deps): bump undici from 6.22.0 to 6.23.0 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3094">#3094</a>)</li>
<li><a
href="2b7de67ba4"><code>2b7de67</code></a>
fix(sys): remove default dyb-symbols</li>
<li><a
href="26c0bb8b73"><code>26c0bb8</code></a>
chore(deps): update dependency <code>@​types/dockerode</code> to v4 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3092">#3092</a>)</li>
<li><a
href="fab18c8c3e"><code>fab18c8</code></a>
docs: add SECURITY.md</li>
<li><a
href="c26cb38ff1"><code>c26cb38</code></a>
chore(deps): update dependency tsdown to ^0.19.0 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3091">#3091</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/ohos-rs/ohos-rs/compare/ohrs@1.1.5...ohrs@1.1.6">compare
view</a></li>
</ul>
</details>
<br />

Updates `napi-ohos` from 1.1.5 to 1.1.6
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1357697530"><code>1357697</code></a>
Merge pull request <a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/181">#181</a>
from ohos-rs/feat-0119</li>
<li><a
href="25e8534b9a"><code>25e8534</code></a>
chore: bump version</li>
<li><a
href="1d85ef1318"><code>1d85ef1</code></a>
Sync 0119</li>
<li><a
href="4797037514"><code>4797037</code></a>
chore(deps): update release-plz/action action to v0.5.121 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3098">#3098</a>)</li>
<li><a
href="fc6119b0ff"><code>fc6119b</code></a>
chore(deps): update dependency vite-plugin-node-polyfills to ^0.25.0 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3095">#3095</a>)</li>
<li><a
href="e7c9e72c91"><code>e7c9e72</code></a>
build(deps): bump undici from 6.22.0 to 6.23.0 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3094">#3094</a>)</li>
<li><a
href="2b7de67ba4"><code>2b7de67</code></a>
fix(sys): remove default dyb-symbols</li>
<li><a
href="26c0bb8b73"><code>26c0bb8</code></a>
chore(deps): update dependency <code>@​types/dockerode</code> to v4 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3092">#3092</a>)</li>
<li><a
href="fab18c8c3e"><code>fab18c8</code></a>
docs: add SECURITY.md</li>
<li><a
href="c26cb38ff1"><code>c26cb38</code></a>
chore(deps): update dependency tsdown to ^0.19.0 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3091">#3091</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/ohos-rs/ohos-rs/compare/ohrs@1.1.5...ohrs@1.1.6">compare
view</a></li>
</ul>
</details>
<br />

Updates `napi-build-ohos` from 1.1.5 to 1.1.6
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/ohos-rs/ohos-rs/releases">napi-build-ohos's
releases</a>.</em></p>
<blockquote>
<h2>ohrs@1.1.6</h2>
<h2>What's Changed</h2>
<ul>
<li>feat: suppport workspace mode by <a
href="https://github.com/richerfu"><code>@​richerfu</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/173">ohos-rs/ohos-rs#173</a></li>
<li>fix(cli): respect bash env by <a
href="https://github.com/richerfu"><code>@​richerfu</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/174">ohos-rs/ohos-rs#174</a></li>
<li>fix: lint error by <a
href="https://github.com/richerfu"><code>@​richerfu</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/175">ohos-rs/ohos-rs#175</a></li>
<li>fix: cargo subcommand sysroot error by <a
href="https://github.com/richerfu"><code>@​richerfu</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/178">ohos-rs/ohos-rs#178</a></li>
<li>Sync by <a
href="https://github.com/richerfu"><code>@​richerfu</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/181">ohos-rs/ohos-rs#181</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/ohos-rs/ohos-rs/compare/ohrs@1.1.5...ohrs@1.1.6">https://github.com/ohos-rs/ohos-rs/compare/ohrs@1.1.5...ohrs@1.1.6</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1357697530"><code>1357697</code></a>
Merge pull request <a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/181">#181</a>
from ohos-rs/feat-0119</li>
<li><a
href="25e8534b9a"><code>25e8534</code></a>
chore: bump version</li>
<li><a
href="1d85ef1318"><code>1d85ef1</code></a>
Sync 0119</li>
<li><a
href="4797037514"><code>4797037</code></a>
chore(deps): update release-plz/action action to v0.5.121 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3098">#3098</a>)</li>
<li><a
href="fc6119b0ff"><code>fc6119b</code></a>
chore(deps): update dependency vite-plugin-node-polyfills to ^0.25.0 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3095">#3095</a>)</li>
<li><a
href="e7c9e72c91"><code>e7c9e72</code></a>
build(deps): bump undici from 6.22.0 to 6.23.0 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3094">#3094</a>)</li>
<li><a
href="2b7de67ba4"><code>2b7de67</code></a>
fix(sys): remove default dyb-symbols</li>
<li><a
href="26c0bb8b73"><code>26c0bb8</code></a>
chore(deps): update dependency <code>@​types/dockerode</code> to v4 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3092">#3092</a>)</li>
<li><a
href="fab18c8c3e"><code>fab18c8</code></a>
docs: add SECURITY.md</li>
<li><a
href="c26cb38ff1"><code>c26cb38</code></a>
chore(deps): update dependency tsdown to ^0.19.0 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3091">#3091</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/ohos-rs/ohos-rs/compare/ohrs@1.1.5...ohrs@1.1.6">compare
view</a></li>
</ul>
</details>
<br />

Updates `napi-derive-backend-ohos` from 1.1.5 to 1.1.6
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1357697530"><code>1357697</code></a>
Merge pull request <a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/181">#181</a>
from ohos-rs/feat-0119</li>
<li><a
href="25e8534b9a"><code>25e8534</code></a>
chore: bump version</li>
<li><a
href="1d85ef1318"><code>1d85ef1</code></a>
Sync 0119</li>
<li><a
href="4797037514"><code>4797037</code></a>
chore(deps): update release-plz/action action to v0.5.121 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3098">#3098</a>)</li>
<li><a
href="fc6119b0ff"><code>fc6119b</code></a>
chore(deps): update dependency vite-plugin-node-polyfills to ^0.25.0 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3095">#3095</a>)</li>
<li><a
href="e7c9e72c91"><code>e7c9e72</code></a>
build(deps): bump undici from 6.22.0 to 6.23.0 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3094">#3094</a>)</li>
<li><a
href="2b7de67ba4"><code>2b7de67</code></a>
fix(sys): remove default dyb-symbols</li>
<li><a
href="26c0bb8b73"><code>26c0bb8</code></a>
chore(deps): update dependency <code>@​types/dockerode</code> to v4 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3092">#3092</a>)</li>
<li><a
href="fab18c8c3e"><code>fab18c8</code></a>
docs: add SECURITY.md</li>
<li><a
href="c26cb38ff1"><code>c26cb38</code></a>
chore(deps): update dependency tsdown to ^0.19.0 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3091">#3091</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/ohos-rs/ohos-rs/compare/ohrs@1.1.5...ohrs@1.1.6">compare
view</a></li>
</ul>
</details>
<br />

Updates `napi-sys-ohos` from 1.1.5 to 1.1.6
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/ohos-rs/ohos-rs/releases">napi-sys-ohos's
releases</a>.</em></p>
<blockquote>
<h2>ohrs@1.1.6</h2>
<h2>What's Changed</h2>
<ul>
<li>feat: suppport workspace mode by <a
href="https://github.com/richerfu"><code>@​richerfu</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/173">ohos-rs/ohos-rs#173</a></li>
<li>fix(cli): respect bash env by <a
href="https://github.com/richerfu"><code>@​richerfu</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/174">ohos-rs/ohos-rs#174</a></li>
<li>fix: lint error by <a
href="https://github.com/richerfu"><code>@​richerfu</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/175">ohos-rs/ohos-rs#175</a></li>
<li>fix: cargo subcommand sysroot error by <a
href="https://github.com/richerfu"><code>@​richerfu</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/178">ohos-rs/ohos-rs#178</a></li>
<li>Sync by <a
href="https://github.com/richerfu"><code>@​richerfu</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/181">ohos-rs/ohos-rs#181</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/ohos-rs/ohos-rs/compare/ohrs@1.1.5...ohrs@1.1.6">https://github.com/ohos-rs/ohos-rs/compare/ohrs@1.1.5...ohrs@1.1.6</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1357697530"><code>1357697</code></a>
Merge pull request <a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/181">#181</a>
from ohos-rs/feat-0119</li>
<li><a
href="25e8534b9a"><code>25e8534</code></a>
chore: bump version</li>
<li><a
href="1d85ef1318"><code>1d85ef1</code></a>
Sync 0119</li>
<li><a
href="4797037514"><code>4797037</code></a>
chore(deps): update release-plz/action action to v0.5.121 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3098">#3098</a>)</li>
<li><a
href="fc6119b0ff"><code>fc6119b</code></a>
chore(deps): update dependency vite-plugin-node-polyfills to ^0.25.0 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3095">#3095</a>)</li>
<li><a
href="e7c9e72c91"><code>e7c9e72</code></a>
build(deps): bump undici from 6.22.0 to 6.23.0 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3094">#3094</a>)</li>
<li><a
href="2b7de67ba4"><code>2b7de67</code></a>
fix(sys): remove default dyb-symbols</li>
<li><a
href="26c0bb8b73"><code>26c0bb8</code></a>
chore(deps): update dependency <code>@​types/dockerode</code> to v4 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3092">#3092</a>)</li>
<li><a
href="fab18c8c3e"><code>fab18c8</code></a>
docs: add SECURITY.md</li>
<li><a
href="c26cb38ff1"><code>c26cb38</code></a>
chore(deps): update dependency tsdown to ^0.19.0 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3091">#3091</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/ohos-rs/ohos-rs/compare/ohrs@1.1.5...ohrs@1.1.6">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 <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-20 00:42:08 +00:00
shuppy
c2530a49ee Plumb accessibility tree updates from layout to embedder (#41924)
this patch adds some new methods and messages that allow layout to send
the embedder [accessibility tree
updates](https://docs.rs/accesskit/0.22.0/accesskit/struct.TreeUpdate.html):

- layout —[ ScriptThreadMessage::AccessibilityTreeUpdate ]→ script
- script —[ EmbedderMsg::AccessibilityTreeUpdate ]→ libservo
- libservo —[ WebViewDelegate::notify_accessibility_tree_update() ]→
servoshell
- servoshell —[ PlatformWindow::notify_accessibility_tree_update() ]→
servoshell
- servoshell —[ Gui::notify_accessibility_tree_update() ]→ servoshell

Testing: none yet, no functional change
Fixes: part of #4344

---------

Signed-off-by: delan azabani <dazabani@igalia.com>
Co-authored-by: Luke Warlow <lwarlow@igalia.com>
Co-authored-by: Alice Boxhall <alice@igalia.com>
2026-01-16 12:32:08 +00:00
dependabot[bot]
993667248d build: bump bpaf from 0.9.20 to 0.9.21 (#41939)
Bumps [bpaf](https://github.com/pacak/bpaf) from 0.9.20 to 0.9.21.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pacak/bpaf/blob/master/Changelog.md">bpaf's
changelog</a>.</em></p>
<blockquote>
<h2>bpaf [0.9.21], bpaf_derive [0.5.21] - 2026-01-15</h2>
<ul>
<li>Documentation fixes</li>
<li>minor derive macro improvements</li>
<li>MSRV is now 1.60</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="e47b375599"><code>e47b375</code></a>
Merge pull request <a
href="https://redirect.github.com/pacak/bpaf/issues/436">#436</a> from
pacak/rc-0.9.21</li>
<li><a
href="058e815f90"><code>058e815</code></a>
Release 0.9.21</li>
<li><a
href="53d1774de6"><code>53d1774</code></a>
Merge pull request <a
href="https://redirect.github.com/pacak/bpaf/issues/435">#435</a> from
unvalley/fix-quick-start-command</li>
<li><a
href="ab3a2431ae"><code>ab3a243</code></a>
chore: fix quick start cargo add command</li>
<li><a
href="5aef3d7def"><code>5aef3d7</code></a>
Merge pull request <a
href="https://redirect.github.com/pacak/bpaf/issues/433">#433</a> from
lu-zero/fix-warning</li>
<li><a
href="81ef625300"><code>81ef625</code></a>
Fix a remaining warning</li>
<li><a
href="26d34cfaaa"><code>26d34cf</code></a>
Merge pull request <a
href="https://redirect.github.com/pacak/bpaf/issues/432">#432</a> from
lu-zero/suppress-lint</li>
<li><a
href="b19d93183a"><code>b19d931</code></a>
Suppress enum_variant_names</li>
<li><a
href="3b0fba8ab6"><code>3b0fba8</code></a>
Merge pull request <a
href="https://redirect.github.com/pacak/bpaf/issues/431">#431</a> from
lu-zero/more-clippy-lints-addressed</li>
<li><a
href="f57a714f25"><code>f57a714</code></a>
Address more clippy lints</li>
<li>Additional commits viewable in <a
href="https://github.com/pacak/bpaf/compare/v0.9.20...v0.9.21">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=bpaf&package-manager=cargo&previous-version=0.9.20&new-version=0.9.21)](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>
2026-01-16 00:27:15 +00:00
Jonathan Schwender
66d8601c81 servoshell: ohos / android: Decouple initialization and window creation (#41532)
We can start initializing servo without needing to wait for the
creation of a window.
This allows us to perform initialization of servo itself,
concurrently to the app UI thread setting up the app UI.
Once the native window is ready, we can then let servo create
the first window and load the initial URL.
This is also interesting in the context of using servo as a
webview library, where loading the library / initialising the
webview and loading the first url are typically decoupled
steps.

Note: on the android port the Java code is not touched, which means that
we effectively still
perform the initialization at the same point in time on android. 
The change to call the base servo initialiation from the Java app, can
be done in a seperate PR, perhaps by someone more familiar with android
than me.

Follow-up PRs will add multi-window support, which means that some of
the multi-webview related code in this PR has open todos,
which will be addressed by follow-ups.



Testing: The ohos-port is tested in CI, the android port was manually
tested by me.

---------

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2026-01-14 16:21:18 +00:00
dependabot[bot]
3fc8ca66c9 build(deps): bump gilrs from 0.11.0 to 0.11.1 (#41900)
Bumps [gilrs](https://gitlab.com/gilrs-project/gilrs) from 0.11.0 to
0.11.1.
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://gitlab.com/gilrs-project/gilrs/commits/master">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=gilrs&package-manager=cargo&previous-version=0.11.0&new-version=0.11.1)](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>
2026-01-14 00:53:25 +00:00
Martin Robinson
bf452331b1 Remove the vello_cpu compilation option and enable it by default (#41820)
There is currently no way to disable canvas on the whole in Servo, so
one canvas backend must be enabled for the build to succeed. Currently,
the Vello GPU backend is much slower than the CPU backend, as it
downloads pixels to CPU memory before reuploading them and displaying
them. Fixing that requires allowing rendering Vello GPU contents to a
OpenGL texture or some kind of surface that can be represented by an
OpenGL texture during display.

Historically, the approach that other browsers have taken with regard to
GPU canvas is that CPU canvas is used as a fallback until the GPU
version can be counted on to be reliably faster. I think that Servo
should take the same approach. We should always expose a CPU version of
canvas and a GPU version. Embedders should not care about how these are
implemented, just that they work as expected and perform well.

Testing: This change just adjusts the build configuration option, so no
tests are necessary.
Fixes: #40779

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2026-01-12 22:42:14 +00:00
Euclid Ye
014fb968a8 webdriver: Consolidates synchronous and asynchrounous script execution (#41830)
Follow-up to #41823.
Now that we always execute JS with callback, we can safely remove the
obsolete sync script handler.

- Rename `ExecuteAsyncScript` to `ExecuteScriptWithCallback`
- Remove `ExecuteScript` related logic.
- Rewrite async callback wrapper to simplify things.

Testing: I expect no change in behaviour. See if WPT tests agree with
it.

---------

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2026-01-11 09:19:09 +00:00
Euclid Ye
6ed4beb51b ohos: Fix build with tracing feature (#41803)
Testing: Tested locally with the feature.
Fixes: the build part of #41802.

---------

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2026-01-09 14:48:20 +00:00
Martin Robinson
b89f47913c servoshell: Remove HeadedWindow-specific methods from PlatformWindow (#41773)
Instead of having `HeadedWindow`-specific methods here, just expose a
way to access the concrete type of a window. This is also exposed for
embedded ports and unused. They will use it in an upcoming change.

Testing: This shouldn't change behavior and is thus covered by existing
tests.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2026-01-08 15:36:43 +00:00
Asset Malik
82c45322c7 servoshell: Support tracing-rs events when using hitrace (#41708)
Small addition of "on_event" for HiTrace

When using the tracing-perfetto backend, servo did trace
LargestContentfullPaint, (LCP) but when using hitrace, the traces lacked
the LCP. This was due to the tracing subscriber implementation not
handling tracing-rs events.

More on `on_event` can be found here:
https://docs.rs/tracing-subscriber/latest/tracing_subscriber/layer/trait.Layer.html#method.on_event

Testing: manually tested by adding and removing
`--psn=--pref=largest_contentful_paint_enabled=true`

---------

Signed-off-by: jane <5373400+janeoa@users.noreply.github.com>
2026-01-07 13:40:58 +00:00
Narfinger
1b8d1bf63c libservo: Stop exporting ipc-channel for gamepad responders and use callbacks (#41412)
With this we stop exporting ipc-channel in libservo and switch to
GenericChannel/GenericCallback.

Testing: Generic Channels are tested all over the place.

---------

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2026-01-06 16:57:02 +00:00
Tim van der Lippe
3f37174b6d net: Remove NetworkError::Internal (#41693)
Rather than this catch-all (which I copy-pasted from a usage where I
should have introduced a specific enum value), we now should always use
one of the enum values. If one does not exist, then it should be added
as such.

Follow-up for #36434

Testing: it builds

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
2026-01-06 16:07:19 +00:00
Tim van der Lippe
2988ba5a08 script: Ship navigator.sendBeacon (#41694)
With keep-alive requests implemented, this feature is now fully working.
Some tests still fail on
header parsing, which is #36801

Fixes #38302

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
2026-01-05 20:17:50 +00:00
aquaThirsty
d808cc15d0 change #[allow]s to #[expect]s (#41635)
Changed most #[allow]s to #[expect]s, mainly for
clippy::too_many_arguments

Removed unfulfilled expectations

This is my first opensource contribution, so please let me know if
anything should
be done differently.

Testing: Refactor
Part of: #40838

---------

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
Signed-off-by: TimurBora <timurborisov5561@gmail.com>
Co-authored-by: Tim van der Lippe <TimvdLippe@users.noreply.github.com>
2026-01-03 10:54:27 +00:00
Wayne Van Son
5b9263690d Refactor allow to expect (#41586)
Replace `allow` with `expect` lints for `unused`, `unsafe_code`,
`dead_code`, and `non_upper_case_globals`.

Testing: So far just check it compiled on `x86_64-linux` on NixOS. Need
to use the module `system.fontconfig.enable = true;` I think in my NixOS
config.
Part of: #40383 

Searching `allow\(.*\)` for `.rs` files shows the following. for
(total_results:total_files) went from `707:386` to `675:368`, a
reduction of `32:18`.

How many files is too many files per PR? I feel like the 20-30 I have is
too big.

---------

Signed-off-by: Wayne Van Son <waynevanson@gmail.com>
2026-01-01 13:40:20 +00:00
Jonathan Schwender
0fa84df099 servoshell: Bump version number to 0.0.4 (#41589)
In preparation for the next release.

Testing: Not required

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2025-12-31 22:00:25 +00:00
dependabot[bot]
39a005af5e build(deps): bump the napi-ohos-related group with 5 updates (#41572)
Bumps the napi-ohos-related group with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [napi-derive-ohos](https://github.com/ohos-rs/ohos-rs) | `1.1.4` |
`1.1.5` |
| [napi-ohos](https://github.com/ohos-rs/ohos-rs) | `1.1.4` | `1.1.5` |
| [napi-build-ohos](https://github.com/ohos-rs/ohos-rs) | `1.1.4` |
`1.1.5` |
| [napi-derive-backend-ohos](https://github.com/ohos-rs/ohos-rs) |
`1.1.4` | `1.1.5` |
| [napi-sys-ohos](https://github.com/ohos-rs/ohos-rs) | `1.1.4` |
`1.1.5` |

Updates `napi-derive-ohos` from 1.1.4 to 1.1.5
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ec7a54f200"><code>ec7a54f</code></a>
Merge pull request <a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/171">#171</a>
from ohos-rs/dev-version-1</li>
<li><a
href="c0ba78dd66"><code>c0ba78d</code></a>
Merge pull request <a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/170">#170</a>
from ohos-rs/feat-1226</li>
<li><a
href="43ac44c729"><code>43ac44c</code></a>
fix code</li>
<li><a
href="9a443c4afc"><code>9a443c4</code></a>
fix exmaple build error</li>
<li><a
href="93eaad5e62"><code>93eaad5</code></a>
fix(build): Improve error message on absolute path conversion failure
(<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/168">#168</a>)</li>
<li><a
href="80dd22c760"><code>80dd22c</code></a>
Sync 1226</li>
<li><a
href="e78e4035f1"><code>e78e403</code></a>
chore(deps): update cross-platform-actions/action action to v0.32.0 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3068">#3068</a>)</li>
<li><a
href="7ad07187b4"><code>7ad0718</code></a>
fix(cli): load separatedConfig in config regardless of packageJson.napi
(<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3065">#3065</a>)</li>
<li><a
href="a6cdbf210a"><code>a6cdbf2</code></a>
chore: release (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3059">#3059</a>)</li>
<li><a
href="377a955ebd"><code>377a955</code></a>
fix(napi-derive): class setter param can't be optional (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3066">#3066</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/ohos-rs/ohos-rs/compare/ohrs@1.1.4...ohrs@1.1.5">compare
view</a></li>
</ul>
</details>
<br />

Updates `napi-ohos` from 1.1.4 to 1.1.5
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ec7a54f200"><code>ec7a54f</code></a>
Merge pull request <a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/171">#171</a>
from ohos-rs/dev-version-1</li>
<li><a
href="c0ba78dd66"><code>c0ba78d</code></a>
Merge pull request <a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/170">#170</a>
from ohos-rs/feat-1226</li>
<li><a
href="43ac44c729"><code>43ac44c</code></a>
fix code</li>
<li><a
href="9a443c4afc"><code>9a443c4</code></a>
fix exmaple build error</li>
<li><a
href="93eaad5e62"><code>93eaad5</code></a>
fix(build): Improve error message on absolute path conversion failure
(<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/168">#168</a>)</li>
<li><a
href="80dd22c760"><code>80dd22c</code></a>
Sync 1226</li>
<li><a
href="e78e4035f1"><code>e78e403</code></a>
chore(deps): update cross-platform-actions/action action to v0.32.0 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3068">#3068</a>)</li>
<li><a
href="7ad07187b4"><code>7ad0718</code></a>
fix(cli): load separatedConfig in config regardless of packageJson.napi
(<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3065">#3065</a>)</li>
<li><a
href="a6cdbf210a"><code>a6cdbf2</code></a>
chore: release (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3059">#3059</a>)</li>
<li><a
href="377a955ebd"><code>377a955</code></a>
fix(napi-derive): class setter param can't be optional (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3066">#3066</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/ohos-rs/ohos-rs/compare/ohrs@1.1.4...ohrs@1.1.5">compare
view</a></li>
</ul>
</details>
<br />

Updates `napi-build-ohos` from 1.1.4 to 1.1.5
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/ohos-rs/ohos-rs/releases">napi-build-ohos's
releases</a>.</em></p>
<blockquote>
<h2>ohrs@1.1.5</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: disable node_version_detect feature by <a
href="https://github.com/richerfu"><code>@​richerfu</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/160">ohos-rs/ohos-rs#160</a></li>
<li>feat(cli): add bisheng support by <a
href="https://github.com/richerfu"><code>@​richerfu</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/163">ohos-rs/ohos-rs#163</a></li>
<li>feat(cli): support loongarch64 by <a
href="https://github.com/richerfu"><code>@​richerfu</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/164">ohos-rs/ohos-rs#164</a></li>
<li>fix(build): Improve error message on absolute path conversion
failure by <a
href="https://github.com/winslow213"><code>@​winslow213</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/168">ohos-rs/ohos-rs#168</a></li>
<li>Sync by <a
href="https://github.com/richerfu"><code>@​richerfu</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/170">ohos-rs/ohos-rs#170</a></li>
<li>chore: Bump version by <a
href="https://github.com/richerfu"><code>@​richerfu</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/171">ohos-rs/ohos-rs#171</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/winslow213"><code>@​winslow213</code></a> made
their first contribution in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/168">ohos-rs/ohos-rs#168</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/ohos-rs/ohos-rs/compare/ohrs@1.1.4...ohrs@1.1.5">https://github.com/ohos-rs/ohos-rs/compare/ohrs@1.1.4...ohrs@1.1.5</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ec7a54f200"><code>ec7a54f</code></a>
Merge pull request <a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/171">#171</a>
from ohos-rs/dev-version-1</li>
<li><a
href="c0ba78dd66"><code>c0ba78d</code></a>
Merge pull request <a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/170">#170</a>
from ohos-rs/feat-1226</li>
<li><a
href="43ac44c729"><code>43ac44c</code></a>
fix code</li>
<li><a
href="9a443c4afc"><code>9a443c4</code></a>
fix exmaple build error</li>
<li><a
href="93eaad5e62"><code>93eaad5</code></a>
fix(build): Improve error message on absolute path conversion failure
(<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/168">#168</a>)</li>
<li><a
href="80dd22c760"><code>80dd22c</code></a>
Sync 1226</li>
<li><a
href="e78e4035f1"><code>e78e403</code></a>
chore(deps): update cross-platform-actions/action action to v0.32.0 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3068">#3068</a>)</li>
<li><a
href="7ad07187b4"><code>7ad0718</code></a>
fix(cli): load separatedConfig in config regardless of packageJson.napi
(<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3065">#3065</a>)</li>
<li><a
href="a6cdbf210a"><code>a6cdbf2</code></a>
chore: release (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3059">#3059</a>)</li>
<li><a
href="377a955ebd"><code>377a955</code></a>
fix(napi-derive): class setter param can't be optional (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3066">#3066</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/ohos-rs/ohos-rs/compare/ohrs@1.1.4...ohrs@1.1.5">compare
view</a></li>
</ul>
</details>
<br />

Updates `napi-derive-backend-ohos` from 1.1.4 to 1.1.5
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ec7a54f200"><code>ec7a54f</code></a>
Merge pull request <a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/171">#171</a>
from ohos-rs/dev-version-1</li>
<li><a
href="c0ba78dd66"><code>c0ba78d</code></a>
Merge pull request <a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/170">#170</a>
from ohos-rs/feat-1226</li>
<li><a
href="43ac44c729"><code>43ac44c</code></a>
fix code</li>
<li><a
href="9a443c4afc"><code>9a443c4</code></a>
fix exmaple build error</li>
<li><a
href="93eaad5e62"><code>93eaad5</code></a>
fix(build): Improve error message on absolute path conversion failure
(<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/168">#168</a>)</li>
<li><a
href="80dd22c760"><code>80dd22c</code></a>
Sync 1226</li>
<li><a
href="e78e4035f1"><code>e78e403</code></a>
chore(deps): update cross-platform-actions/action action to v0.32.0 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3068">#3068</a>)</li>
<li><a
href="7ad07187b4"><code>7ad0718</code></a>
fix(cli): load separatedConfig in config regardless of packageJson.napi
(<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3065">#3065</a>)</li>
<li><a
href="a6cdbf210a"><code>a6cdbf2</code></a>
chore: release (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3059">#3059</a>)</li>
<li><a
href="377a955ebd"><code>377a955</code></a>
fix(napi-derive): class setter param can't be optional (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3066">#3066</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/ohos-rs/ohos-rs/compare/ohrs@1.1.4...ohrs@1.1.5">compare
view</a></li>
</ul>
</details>
<br />

Updates `napi-sys-ohos` from 1.1.4 to 1.1.5
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/ohos-rs/ohos-rs/releases">napi-sys-ohos's
releases</a>.</em></p>
<blockquote>
<h2>ohrs@1.1.5</h2>
<h2>What's Changed</h2>
<ul>
<li>fix: disable node_version_detect feature by <a
href="https://github.com/richerfu"><code>@​richerfu</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/160">ohos-rs/ohos-rs#160</a></li>
<li>feat(cli): add bisheng support by <a
href="https://github.com/richerfu"><code>@​richerfu</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/163">ohos-rs/ohos-rs#163</a></li>
<li>feat(cli): support loongarch64 by <a
href="https://github.com/richerfu"><code>@​richerfu</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/164">ohos-rs/ohos-rs#164</a></li>
<li>fix(build): Improve error message on absolute path conversion
failure by <a
href="https://github.com/winslow213"><code>@​winslow213</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/168">ohos-rs/ohos-rs#168</a></li>
<li>Sync by <a
href="https://github.com/richerfu"><code>@​richerfu</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/170">ohos-rs/ohos-rs#170</a></li>
<li>chore: Bump version by <a
href="https://github.com/richerfu"><code>@​richerfu</code></a> in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/171">ohos-rs/ohos-rs#171</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/winslow213"><code>@​winslow213</code></a> made
their first contribution in <a
href="https://redirect.github.com/ohos-rs/ohos-rs/pull/168">ohos-rs/ohos-rs#168</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/ohos-rs/ohos-rs/compare/ohrs@1.1.4...ohrs@1.1.5">https://github.com/ohos-rs/ohos-rs/compare/ohrs@1.1.4...ohrs@1.1.5</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="ec7a54f200"><code>ec7a54f</code></a>
Merge pull request <a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/171">#171</a>
from ohos-rs/dev-version-1</li>
<li><a
href="c0ba78dd66"><code>c0ba78d</code></a>
Merge pull request <a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/170">#170</a>
from ohos-rs/feat-1226</li>
<li><a
href="43ac44c729"><code>43ac44c</code></a>
fix code</li>
<li><a
href="9a443c4afc"><code>9a443c4</code></a>
fix exmaple build error</li>
<li><a
href="93eaad5e62"><code>93eaad5</code></a>
fix(build): Improve error message on absolute path conversion failure
(<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/168">#168</a>)</li>
<li><a
href="80dd22c760"><code>80dd22c</code></a>
Sync 1226</li>
<li><a
href="e78e4035f1"><code>e78e403</code></a>
chore(deps): update cross-platform-actions/action action to v0.32.0 (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3068">#3068</a>)</li>
<li><a
href="7ad07187b4"><code>7ad0718</code></a>
fix(cli): load separatedConfig in config regardless of packageJson.napi
(<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3065">#3065</a>)</li>
<li><a
href="a6cdbf210a"><code>a6cdbf2</code></a>
chore: release (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3059">#3059</a>)</li>
<li><a
href="377a955ebd"><code>377a955</code></a>
fix(napi-derive): class setter param can't be optional (<a
href="https://redirect.github.com/ohos-rs/ohos-rs/issues/3066">#3066</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/ohos-rs/ohos-rs/compare/ohrs@1.1.4...ohrs@1.1.5">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 <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-30 00:13:55 +00:00
Jonathan Schwender
3a1fa84f3f servoshell: ohos: Fix crash when hiding IME (#41570)
Bump ohos-ime, which fixes a crash due to a segfault when hiding the
IME.
The actual code changes can be found in the [upstream
PR](https://github.com/openharmony-rs/ohos-ime/pull/11)

Testing: Manually tested the fix with the issue reproducer.
Fixes: #41535

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2025-12-29 21:35:29 +00:00
dependabot[bot]
0975659d80 build(deps): bump ohos-ime from 0.4.0 to 0.4.1 (#41553)
Bumps [ohos-ime](https://github.com/openharmony-rs/ohos-ime) from 0.4.0
to 0.4.1.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/openharmony-rs/ohos-ime/releases">ohos-ime's
releases</a>.</em></p>
<blockquote>
<h2>v0.4.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Fix warning in get_left_text_of_cursor by <a
href="https://github.com/jschwe"><code>@​jschwe</code></a> in <a
href="https://redirect.github.com/openharmony-rs/ohos-ime/pull/8">openharmony-rs/ohos-ime#8</a></li>
<li>Add support for keyboard status change by <a
href="https://github.com/jschwe"><code>@​jschwe</code></a> in <a
href="https://redirect.github.com/openharmony-rs/ohos-ime/pull/9">openharmony-rs/ohos-ime#9</a></li>
<li>dispatcher: Remove duplicated code by <a
href="https://github.com/jschwe"><code>@​jschwe</code></a> in <a
href="https://redirect.github.com/openharmony-rs/ohos-ime/pull/10">openharmony-rs/ohos-ime#10</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/openharmony-rs/ohos-ime/compare/v0.4.0...v0.4.1">https://github.com/openharmony-rs/ohos-ime/compare/v0.4.0...v0.4.1</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/openharmony-rs/ohos-ime/blob/main/CHANGELOG.md">ohos-ime's
changelog</a>.</em></p>
<blockquote>
<h2>v0.4.1</h2>
<ul>
<li>Update <code>Ime</code> trait with
<code>keyboard_status_changed()</code>, which is called when the
keyboard status changes.
A default implementation is provided, so this is not a breaking
change.</li>
<li>Fix a warning in get_left_text_of_cursor().</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="9dda33323b"><code>9dda333</code></a>
Bump version to 0.4.1</li>
<li><a
href="0c19a0bf7f"><code>0c19a0b</code></a>
Minor dispatcher refactor</li>
<li><a
href="4e1c13fda1"><code>4e1c13f</code></a>
Add support for keyboard status change</li>
<li><a
href="38dca19577"><code>38dca19</code></a>
Fix warning in get_left_text_of_cursor</li>
<li>See full diff in <a
href="https://github.com/openharmony-rs/ohos-ime/compare/v0.4.0...v0.4.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=ohos-ime&package-manager=cargo&previous-version=0.4.0&new-version=0.4.1)](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>
2025-12-29 00:22:02 +00:00
Jonathan Schwender
133c9b4266 servoshell: ohos: Move main thread code into function (#41540)
Refactor the code out of the lambda and move it into a dedicated
function. This is a first step towards untangling initialization and
window creation (see #41532 )

Testing: No functionality change, covered by existing tests

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2025-12-27 17:47:51 +00:00
Jonathan Schwender
f2028d61c3 servoshell: Reduce allocations during cmdline parsing (#41522)
- The helper method now accepts args without the binary name. This
allows us to remove the injection of servo / servoshell in the tests and
on android / ohos.
- Allow parsing str slices, instead of requiring Vec<String>. This
allows removing unnecessary conversions / allocations.

Testing: Covered by existing unit, integration and wpt tests, which pass
commandline arguments.

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2025-12-25 14:28:47 +00:00
Mukilan Thiyagarajan
2ccd9f54ad libservo: Let UserContentManager be per WebView and add basic support for mutations. (#41352)
This change moves the `UserContentManager` abstraction from the
`ServoBuilder` to `WebViewBuilder` so that embedders can inject content
for each `WebView` independently. It also adds basic support for runtime
mutations to the `UserContentManager` API. Only adding new scripts is
currently supported, but future changes will add support for both other
mutations such as removal of scripts and addition & removal of
stylesheets. Future changes could also optimize the way mutations are
propagated to `ScriptThread`s by sending just the "delta" rather than
the whole `UserContents` structure for each mutation.

The `UserContentManager` now becomes just a convenient handle for the
embedders to invoke the mutation API while the actual management of the
manager's content is handled by the Constellation. The mutations are
relayed to the constellation via messages. The change also separates the
serialized version containg the user contents into a new `UserContent`
structure so that the API cannot be misused.

Testing: New unit tests have been added for the different scenarios
involving UserContentManager.

---------

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2025-12-23 06:15:01 +00:00
WaterWhisperer
6623cc1dbb feat: gamepad feature flag (#41451)
Put the Gamepad API and its supporting infrastructure behind a `gamepad`
feature flag. This allows embedders to opt-out of gamepad support at
compile time to save on binary size and reduce dependencies.

Testing:
1. `./mach build -d` (Gamepad enabled by default)
2. `cargo build -p servoshell --no-default-features --features
"libservo/clipboard,js_jit,max_log_level,webgpu"` (Gamepad Disabled)
3. `cargo build -p servoshell --features "gamepad,webxr,..."` (Gamepad &
WebXR Enabled)

Fixes: #40897

Signed-off-by: WaterWhisperer <waterwhisperer24@qq.com>
2025-12-21 13:18:06 +00:00
Euclid Ye
f106f1f0d0 servoshell: Properly handle WindowEvent::Focused (#41401)
There are two bugs listed below. Basically, we never ever set
1b0bd11e11/ports/servoshell/running_app_state.rs (L253-L255)
except by WebDriver command, so it's always been `None`.

This PR lets `WindowEvent::Focused` determine `focused_window` for
`HeadedWindow`.
For those without `winit::Window`, such as
Android/OHOS/`HeadlessWindow`, the newly created window is automatically
focused.

Fixes: #41398
Fixes: #41399

---------

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2025-12-20 06:44:42 +00:00
Martin Robinson
03aec7cf8e servoshell: Rename desktop Window structs to HeadedWindow and HeadlessWindow (#41406)
It's pretty confusing that these two struct implementations of
`PlatformWindow` are named the same thing. This PR renames them to more
accurately reflect what they are.

Testing: This PR just does a simple rename so existing tests should
suffice.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-12-19 10:22:37 +00:00
Narfinger
1b0bd11e11 Use GenericSender and GenericReceiver for WebDriver (#40987)
- Use the generic channel for webdriver.
- Implement try_receive_timeout for GenericReceiver.

Testing: WPT should still work.

---------

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
2025-12-19 03:22:02 +00:00
atbrakhi
ba1122b4f5 Add ServoDelegate and WebViewDelegate methods for Console API (#41351)
Route console messages through the embedding API instead of printing
directly, giving embedders control over console output handling.

Testing: Should be covered by exsisting tests
Fixes: #41145

Signed-off-by: atbrakhi <atbrakhi@igalia.com>
2025-12-17 19:06:27 +00:00
Martin Robinson
575b7ab87b libservo: Make UserInterfaceCommand consistent and always forward mouse events to open egui dialogs (#41347)
This change addresses some inconsistencies in the way that events are
handled for `egui`. It moves event and `UserInterfaceCommand` handling
to
`ServoShellWindow` which allows sharing the implementation with the
embedded ports. In addition, moving event handling there makes it
simpler to always forward mouse events to egui dialogs when they are
open.

Fixes: #41339.
Testing: There is no real testing of this layer of servoshell, which is
why this regressed in the first place.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-12-17 12:11:11 +00:00