Commit graph

50547 commits

Author SHA1 Message Date
Yerkebulan Tulibergenov
0383ba9a5b
refactor: add CanGc as argument to Promise::resolve (#35616)
Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
2025-02-23 12:12:21 +00:00
Gae24
adb831eefe
script: add CanGc argument to Promise::new_resolved and Promise::new_rejected (#35605)
* add CanGc to new_resolved and use it where possible

Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>

* add CanGc to new_rejected

Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>

---------

Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
2025-02-23 04:45:47 +00:00
Yerkebulan Tulibergenov
dd13342f18
refactor: add CanGc as argument to DataBlock::view (#35610)
Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
2025-02-23 00:35:44 +00:00
Auguste Baum
b0b0289014
refactor: propagate CanGc arguments through callers (#35591)
Signed-off-by: Auguste Baum <auguste.apple@gmail.com>
2025-02-23 00:34:51 +00:00
Yerkebulan Tulibergenov
02199520f2
refactor: add CanGc as argument to WindowProxy::set_window (#35609)
Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
2025-02-23 00:34:31 +00:00
Yerkebulan Tulibergenov
4d1e9f19b5
chore: silence unused import warning in app_state.rs (#35612)
Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
2025-02-23 00:33:29 +00:00
webbeef
b45f05c705
Remove the traversal for DomRoot values when collection memory usage (#35607)
Signed-off-by: webbeef <me@webbeef.org>
2025-02-22 20:54:57 +00:00
Narfinger
5aa662437b
Use counter instead of time for HTMLFormElement. (#35555)
* Use counter instead of time for HTMLFormElement.
Fixes #25455

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

* Update components/script/dom/htmlformelement.rs to include suggestions

Co-authored-by: Martin Robinson <mrobinson@igalia.com>
Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>

---------

Signed-off-by: Narfinger <Narfinger@users.noreply.github.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2025-02-22 09:42:16 +00:00
Yerkebulan Tulibergenov
4ab4e5dd47
refactor: add CanGc as argument to SubtleCrypto::import_key_{pbkdf2, aes, hkdf, hmac} (#35601)
* refactor: add CanGc as argument to SubtleCrypto::import_key_pbkdf2

Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>

* refactor: add CanGc as argument to SubtleCrypto::{import_key_aes, import_key_hkdf, import_key_hmac}

Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>

---------

Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
2025-02-22 08:17:22 +00:00
Yerkebulan Tulibergenov
89d7f874b2
refactor: add CanGc as argument to create_buffer_source_with_length (#35596)
Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
Co-authored-by: Josh Matthews <josh@joshmatthews.net>
2025-02-22 06:17:24 +00:00
Yerkebulan Tulibergenov
d72c9f3501
refactor: add CanGc as argument to CountQueuingStrategy::GetSize (#35595)
Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
2025-02-22 06:16:50 +00:00
Yerkebulan Tulibergenov
a741c48dc2
refactor: add CanGc as argument to ByteLengthQueuingStrategy::GetSize (#35594)
Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
2025-02-22 06:16:37 +00:00
Yerkebulan Tulibergenov
245a39c07e
refactor: add CanGc as argument to create_buffer_source (#35597)
Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
2025-02-22 05:42:55 +00:00
Josh Matthews
35f21e426b
Move more bindings code to script_bindings (#35578)
* Move JSContext wrapper to script_bindings.

Signed-off-by: Josh Matthews <josh@joshmatthews.net>

* Move webidl constant bindings to script_bindings.

Signed-off-by: Josh Matthews <josh@joshmatthews.net>

* Move CanGc to script_bindings.

Signed-off-by: Josh Matthews <josh@joshmatthews.net>

* Move Dom<T> and Root<T> types to script_bindings.

Signed-off-by: Josh Matthews <josh@joshmatthews.net>

* Formatting.

Signed-off-by: Josh Matthews <josh@joshmatthews.net>

* Extra docs for new traits.

Signed-off-by: Josh Matthews <josh@joshmatthews.net>

* Fix clippy warnings.

Signed-off-by: Josh Matthews <josh@joshmatthews.net>

---------

Signed-off-by: Josh Matthews <josh@joshmatthews.net>
2025-02-22 04:46:56 +00:00
Yerkebulan Tulibergenov
54286229ea
refactor: add CanGc as argument to extract_size_algorithm (#35593)
Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
2025-02-22 02:25:59 +00:00
webbeef
f7c1cd4635
dom: Move child_list to rare data (#35592)
This is only created when calling the ChildNodes method. Gecko also stores it in their similar
data structure at https://searchfox.org/mozilla-central/rev/155d514d72473453492a822e97dc1c68cf49d110/dom/base/nsINode.h#1464

Signed-off-by: webbeef <me@webbeef.org>
2025-02-22 01:32:37 +00:00
webbeef
6a182c345c
build winit_minimal with bluetooth disabled (#35590)
Signed-off-by: webbeef <me@webbeef.org>
2025-02-21 23:26:46 +00:00
Samson
a6f19c0092
script: Add CanvasContext trait (#35448)
* trait `CanvasContext`

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>

* fixup most stuff

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>

* explain and limit crown `allow(crown::unrooted_must_root)`

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>

---------

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2025-02-21 20:26:27 +00:00
webbeef
084006abb6
Add get_url() to GlobalScopeHelper (#35589)
This is needed to build with the tracing feature

Signed-off-by: webbeef <me@webbeef.org>
2025-02-21 19:52:31 +00:00
webbeef
e883eaa322
dom: move node ranges to raredata (#35554)
Signed-off-by: webbeef <me@webbeef.org>
2025-02-21 18:41:25 +00:00
dependabot[bot]
57ed444498
build(deps): bump cc from 1.2.14 to 1.2.15 (#35586)
Bumps [cc](https://github.com/rust-lang/cc-rs) from 1.2.14 to 1.2.15.
- [Release notes](https://github.com/rust-lang/cc-rs/releases)
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.14...cc-v1.2.15)

---
updated-dependencies:
- dependency-name: cc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-21 17:59:39 +00:00
dependabot[bot]
b4f71e4580
build(deps): bump ring from 0.17.9 to 0.17.10 (#35585)
Bumps [ring](https://github.com/briansmith/ring) from 0.17.9 to 0.17.10.
- [Commits](https://github.com/briansmith/ring/commits)

---
updated-dependencies:
- dependency-name: ring
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-21 17:56:21 +00:00
dependabot[bot]
98c818e121
build(deps): bump log from 0.4.25 to 0.4.26 (#35584)
Bumps [log](https://github.com/rust-lang/log) from 0.4.25 to 0.4.26.
- [Release notes](https://github.com/rust-lang/log/releases)
- [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/log/compare/0.4.25...0.4.26)

---
updated-dependencies:
- dependency-name: log
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-21 17:54:06 +00:00
dependabot[bot]
eb5918d670
build(deps): bump aws-lc-rs from 1.12.2 to 1.12.4 (#35582)
Bumps [aws-lc-rs](https://github.com/aws/aws-lc-rs) from 1.12.2 to 1.12.4.
- [Release notes](https://github.com/aws/aws-lc-rs/releases)
- [Commits](https://github.com/aws/aws-lc-rs/compare/v1.12.2...v1.12.4)

---
updated-dependencies:
- dependency-name: aws-lc-rs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-21 17:40:21 +00:00
Auguste Baum
ca1f0486ba
refactor: propagate CanGc arguments through callers (#35565)
Signed-off-by: Auguste Baum <auguste.apple@gmail.com>
2025-02-21 17:35:17 +00:00
Simon Wülker
085cd981aa
Support the <meter> element (#35524)
* Allow attaching UA shadow roots to any element

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>

* Implement a UA shadow tree for the <meter> element

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>

* Add UA styles for the meter element

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>

* Include spec text when computing meter state

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>

---------

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-02-21 16:28:12 +00:00
Simon Wülker
6ccdf7d19f
Allow resetting multiple flags at once in Element::set_state (#35580)
Previously, the code would incorrectly return without updating
the flags if the caller tried to reset multiple flags at once
and the not all of them were true.

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-02-21 14:42:28 +00:00
Martin Robinson
cf2b93f18a
libservo: Convert intercept_web_resource_load into load_web_resource (#35564)
Rework the `WebViewDelegate::intercept_web_resource_load` into
`WebViewDelegate::load_web_resource` and clean up internal messaging.
The main thing here is adding objects which manage the response to these
delegate methods. Now we have `WebResourceLoad` and
`InterceptedWebResourceLoad` which make it much harder to misuse the
API.

In addition, the internal messaging for this is cleaned up. Canceling
and finishing the load are unrelated to the HTTP body so they are no
longer subtypes of an HttpBodyData message. Processing of messages is
made a bit more efficient by collecting all body chunks in a vector and
only flattening the chunks at the end.

Finally, "interceptor" is a much more common spelling than "intercepter"
so I've gone ahead and made this change everywhere.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-02-21 14:36:42 +00:00
chickenleaf
f6e2e3d418
servoshell: Port Permission dialog code to use egui instead of tinyfiledialogs (#35577)
Signed-off-by: L Ashwin B <lashwinib@gmail.com>
2025-02-21 14:28:55 +00:00
Josh Matthews
a433b20259
script: Make callbacks generic over DOM interfaces. (#35459)
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
2025-02-21 12:17:11 +00:00
Xiaocheng Hu
2b0d2ecc73
Rebase and squash (#35567)
Signed-off-by: Xiaocheng Hu <xiaochengh.work@gmail.com>
2025-02-21 11:54:25 +00:00
Josh Matthews
1192ae32b0
script: Refer to DOM interfaces with generic types in generated bindings. (#35457)
Signed-off-by: Josh Matthews <josh@joshmatthews.net>
2025-02-21 11:10:00 +00:00
Delan Azabani
14db055d46
Fix mach argument quoting on NixOS (#35573)
This patch makes mach shell-quote its arguments when rerunning itself
with `nix-shell`, so that spaces and other special characters are
handled correctly.

Signed-off-by: Delan Azabani <dazabani@igalia.com>
2025-02-21 08:21:50 +00:00
Jason Tsai
9c8a47e993
fix(servoshell): blank view when close non focused tab (#35569)
Signed-off-by: Jason Tsai <git@pews.dev>
2025-02-21 06:10:13 +00:00
Bi Fuguo
d4a8b3b38e
fix touch event wrong coordinates. pageX, pageY, clientX, clientY etc. (#35550)
Signed-off-by: kongbai1996 <1782765876@qq.com>
2025-02-21 06:01:02 +00:00
Josh Matthews
c6cb50c956
Revert "build(deps): bump aws-lc-rs from 1.12.2 to 1.12.3 (#35561)" (#35566)
This reverts commit 7d33e72bfc.
2025-02-21 04:20:10 +00:00
Martin Robinson
54b5c7b632
compositing: Move image output and shutdown management out of the compositor (#35538)
This is a step toward the renderer-per-WebView goal. It moves various
details out of `IOCompositor`.

- Image output: This is moved to servoshell as now applications can
  access the image contents of a `WebView` via
  `RenderingContext::read_to_image`. Most options for this are moved to
  `ServoShellPreferences` apart from `wait_for_stable_image` as this
  requires a specific kind of coordination in the `ScriptThread` that is
  also very expensive. Instead, paint is now simply delayed until a
  stable image is reached and `WebView::paint()` returns a boolean.
  Maybe this can be revisited in the future.
- Shutdown: Shutdown is now managed by libservo itself. Shutdown state
  is shared between the compositor and `Servo` instance. In the future,
  this sharing might be unecessary.
- `CompositeTarget` has been removed entirely. This no longer needs to
   be passed when creating a Servo instance.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Ngo Iok Ui (Wu Yu Wei) <yuweiwu@pm.me>
2025-02-20 18:27:49 +00:00
dependabot[bot]
7d33e72bfc
build(deps): bump aws-lc-rs from 1.12.2 to 1.12.3 (#35561)
Bumps [aws-lc-rs](https://github.com/aws/aws-lc-rs) from 1.12.2 to 1.12.3.
- [Release notes](https://github.com/aws/aws-lc-rs/releases)
- [Commits](https://github.com/aws/aws-lc-rs/compare/v1.12.2...v1.12.3)

---
updated-dependencies:
- dependency-name: aws-lc-rs
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-20 17:43:41 +00:00
dependabot[bot]
f739091c0f
build(deps): bump taffy from 0.7.5 to 0.7.6 (#35562)
Bumps [taffy](https://github.com/DioxusLabs/taffy) from 0.7.5 to 0.7.6.
- [Release notes](https://github.com/DioxusLabs/taffy/releases)
- [Changelog](https://github.com/DioxusLabs/taffy/blob/v0.7.6/CHANGELOG.md)
- [Commits](https://github.com/DioxusLabs/taffy/compare/v0.7.5...v0.7.6)

---
updated-dependencies:
- dependency-name: taffy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-20 17:43:34 +00:00
dependabot[bot]
8e72f0acbb
build(deps): bump serde_json from 1.0.138 to 1.0.139 (#35563)
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.138 to 1.0.139.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.138...v1.0.139)

---
updated-dependencies:
- dependency-name: serde_json
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-20 17:43:32 +00:00
dependabot[bot]
61f1ff038a
build(deps): bump string_cache_codegen from 0.5.3 to 0.5.4 (#35560)
Bumps [string_cache_codegen](https://github.com/servo/string-cache) from 0.5.3 to 0.5.4.
- [Release notes](https://github.com/servo/string-cache/releases)
- [Commits](https://github.com/servo/string-cache/commits/codegen-v0.5.4)

---
updated-dependencies:
- dependency-name: string_cache_codegen
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-20 17:28:17 +00:00
dependabot[bot]
87d43dc23c
build(deps): bump serde from 1.0.217 to 1.0.218 (#35559)
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.217 to 1.0.218.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.217...v1.0.218)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-20 17:26:28 +00:00
dependabot[bot]
5990530413
build(deps): bump anyhow from 1.0.95 to 1.0.96 (#35558)
Bumps [anyhow](https://github.com/dtolnay/anyhow) from 1.0.95 to 1.0.96.
- [Release notes](https://github.com/dtolnay/anyhow/releases)
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.95...1.0.96)

---
updated-dependencies:
- dependency-name: anyhow
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-20 17:25:19 +00:00
dependabot[bot]
29e8707d94
build(deps): bump app_units from 0.7.6 to 0.7.7 (#35557)
Bumps [app_units](https://github.com/servo/app_units) from 0.7.6 to 0.7.7.
- [Release notes](https://github.com/servo/app_units/releases)
- [Commits](https://github.com/servo/app_units/commits/v0.7.7)

---
updated-dependencies:
- dependency-name: app_units
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-20 17:21:12 +00:00
dependabot[bot]
f994acc649
build(deps): bump winnow from 0.7.2 to 0.7.3 (#35556)
Bumps [winnow](https://github.com/winnow-rs/winnow) from 0.7.2 to 0.7.3.
- [Changelog](https://github.com/winnow-rs/winnow/blob/main/CHANGELOG.md)
- [Commits](https://github.com/winnow-rs/winnow/compare/v0.7.2...v0.7.3)

---
updated-dependencies:
- dependency-name: winnow
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-20 17:19:37 +00:00
Auguste Baum
863d2ce871
Propagate CanGc arguments through callers in constructors (#35541)
Signed-off-by: Auguste Baum <auguste.apple@gmail.com>
2025-02-20 16:17:45 +00:00
Martin Robinson
5465bfc2af
libservo: Move GL acclerated media setup out of RenderingContext and simplify it (#35553)
This moves the GL accelerated media setup out of `RenderingContext`
which prevents making libservo dependo on the Wayland and X11 versions
of surfman explicitly. This support is experimental and (honestly) a bit
broken. I've confirmed that this works as well as it did before the
change.

The main thing here is that the configuration, which currently needs
surfman types, moves to servoshell. In addition:

1. Instead of passing the information to the Constellation, the setup is
   stored statically. This is necessary to avoid introducing a
   dependency on `media` in `webrender_traits`. It's quite likely that
   `media` types should move to the internal embedding API to avoid
   this. This is preserved for a followup change.
2. The whole system of wrapping the media channels in an abstract type
   is removed. They could be either mpsc channels or IPC channels. This
   was never going to work because mpsc channels cannot be serialized
   and deserialized with serde. Instead this just uses IPC channels. We
   also have other ways of doing this kind of abstraction in Servo so we
   do not need another. The `mpsc` version was hard-coded to be
   disabled.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-02-20 13:52:18 +00:00
Delan Azabani
9887ad369d
libservo: Clean up destroyed webview handles (#35547)
When the embedder drops the last WebView handle, the webview is
destroyed, but the weak handle in libservo never gets cleaned up.

This patch adds a step to `spin_event_loop` that cleans up any weak
handles that have been destroyed. In theory, checking the strong count
should be more efficient than trying to upgrade each handle (only to
throw away the strong handle).

Signed-off-by: Delan Azabani <dazabani@igalia.com>
2025-02-20 08:31:44 +00:00
DK Liao
7831bced76
chore: cleanup IME code for Servoshell (#35546)
Signed-off-by: DK Liao <dklassic@gmail.com>
2025-02-20 05:33:50 +00:00
dependabot[bot]
5ff588429f
build(deps): bump unicode-ident from 1.0.16 to 1.0.17 (#35545)
Bumps [unicode-ident](https://github.com/dtolnay/unicode-ident) from 1.0.16 to 1.0.17.
- [Release notes](https://github.com/dtolnay/unicode-ident/releases)
- [Commits](https://github.com/dtolnay/unicode-ident/compare/1.0.16...1.0.17)

---
updated-dependencies:
- dependency-name: unicode-ident
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-19 17:50:33 +00:00