Commit graph

50576 commits

Author SHA1 Message Date
Oriol Brufau
ebb19bcd60
layout: Change the IndefiniteContainingBlock sizes to Option<Au> (#35653)
Thus avoiding the need to convert to/from `AuOrAuto`.

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
2025-02-25 14:24:29 +00:00
Yerkebulan Tulibergenov
31b2f81bc6
refactor: add CanGc as argument to exception_to_promise (#35647)
Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
2025-02-25 13:21:59 +00:00
Simon Wülker
754b117011
Allow the <details> element to be opened and closed (#35261)
* Implement the <summary> element

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

* Implement UA shadow root for <details>

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

* Invalidate style when display is opened or closed

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

* Fix /_mozilla/mozilla/duplicated_scroll_ids.html

This test previously assumed that <details> elements would
not be rendered.

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

* Implement implicit summary elements

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

* Update WPT expectations

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

* Remove test for duplicated scroll IDs

See https://github.com/servo/servo/pull/35261#discussion_r1969328725 for
reasoning.

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

* Use Iterator::find to find implicit summary element

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

---------

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-02-25 11:56:36 +00:00
Mukilan Thiyagarajan
cceff77928
Bump channel in shell.nix to support rustc 1.85. (#35643)
PR #35628 bumped the rustc version to 1.85, but this broke nix-based
systems as these also require bumping the channel for the 'rust-overlay'
module to a commit that includes support for that version of rustc.

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2025-02-25 11:49:31 +00:00
Yerkebulan Tulibergenov
38b71087bd
refactor: add CanGc as argument to Promise::reject_error (#35646)
Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
2025-02-25 10:12:58 +00:00
Martin Robinson
c844ed232a
servoshell: Fall back to PNG format when outputting an image (#35648)
A recent change, #35538 added the ability to dump different output image
formats. Unfortunately, this necessitated adding a file extension to the
output image for WPT tests. This had two problems:

1. The original change never landed properly in WPT for unknown reasons.
2. It interfered with the way that temporary files were cleaned up
   during WPT runs.

This change modifies the image dumping code to fall back to PNG format
when there is no valid file extension on the output image and reverts
the change made to the WPT runner.

Fixes #35635.

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-02-25 08:38:28 +00:00
Oriol Brufau
864a5edb0b
layout: Let automatic_min_size() take a flex-relative cb size (#35642)
This method was taking an `IndefiniteContainingBlock` parameter, and
then it would first take the size corresponding to the main axis, and
then the one for the cross axis.

But it's simpler to just let it take a `FlexRelativeVec2<AuOrAuto>`
parameter.

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
2025-02-25 08:37:42 +00:00
DK Liao
3f6b21d8e1
feat: support IME cursor area (#35623)
* feat: support IME cursor area

Signed-off-by: DK Liao <dklassic@gmail.com>

* use winit::dpi  for LogicalPosition instead

Signed-off-by: DK Liao <dklassic@gmail.com>

* perform ./mach fmt

Signed-off-by: DK Liao <dklassic@gmail.com>

---------

Signed-off-by: DK Liao <dklassic@gmail.com>
2025-02-25 08:19:00 +00:00
Bi Fuguo
f3a8bf8ca2
Touch handler: Fix race condition and rate-limit move events (#35537)
* TouchSequenceInfo is added to store information about a touch sequence.
  For details about TouchSequenceInfo, see the code comments.
The handling_touch_move attribute is added to the TouchHandler, indicating that the script is processing the touch move event.
  When handling_touch_move is set to true, the touch move event does not need to be sent to the script thread.

Signed-off-by: kongbai1996 <1782765876@qq.com>

* move touch state, active_touch_point and handling_touch_move to TouchSequenceInfo form TouchHandler.
remove TouchSequenceInfo end_sequence property, add Finished state mark sequence end.
if preventDefault on touchup, do not prevent Fling.

Signed-off-by: kongbai1996 <1782765876@qq.com>

* Refactor Touchhandler

- Add a newtype wrapper for the TouchSequenceId
- Move more state back into the TouchSequenceState
- Rename TouchAction to TouchMoveAction,
  since it only covers immediate actions now.
  Everything else is handled via state, since
  it needs to wait on the handler.

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>

* Fix test-tidy

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>

* Fix clippy missing-default lint

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>

* Fix remaining clippy lints

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>

* Remove accidental committed test file

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>

* Remove wrong todo comment

(move events that are sent to script are just raw  touchpoints,
 no merging needed)

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>

* Fix preventdefault after long touch_down handler

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>

---------

Signed-off-by: kongbai1996 <1782765876@qq.com>
Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
Co-authored-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2025-02-25 07:13:16 +00:00
dependabot[bot]
374bfc6983
build(deps): bump inout from 0.1.3 to 0.1.4 (#35583)
Bumps [inout](https://github.com/RustCrypto/utils) from 0.1.3 to 0.1.4.
- [Commits](https://github.com/RustCrypto/utils/compare/inout-v0.1.3...inout-v0.1.4)

---
updated-dependencies:
- dependency-name: inout
  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-25 04:29:22 +00:00
Yerkebulan Tulibergenov
31199076ec
refactor: add CanGc as argument to Promise::reject_native (#35640)
Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
2025-02-25 03:58:36 +00:00
Samson
3c3b6cfdc4
chore: Update wgpu (#35639)
* Update wgpu

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

* Update expectations

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

---------

Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2025-02-24 20:27:36 +00:00
Simon Wülker
cdc33b398c
Don't tell stylo about stylesheets that are not in a browsing context (#35606)
* Don't register stylesheets outside of a browsing context with stylo

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

* Update WPT expectations

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

---------

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-02-24 20:04:18 +00:00
Simon Wülker
be6765447d
Update to rust 1.85 (#35628)
* Update to rust 1.85

This is needed for cargo-deny

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

* Upgrade crown

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

* Clippy fixes

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

* Re-upgrade cargo-deny to 0.18

Keeping it locked to 0.18 just in case they
update their required rustc version again

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

---------

Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
2025-02-24 17:44:35 +00:00
Samson
d78f7b2d78
ci: Always install crown, even on self-hosted (#35637)
Signed-off-by: Samson <16504129+sagudev@users.noreply.github.com>
2025-02-24 17:15:46 +00:00
Kingsley Yung
fc14b10099
Support for the isolation CSS property (#35552)
* Support for the isolation CSS property

Signed-off-by: Kingsley Yung <kingsley@kkoyung.dev>

* Temporarily bump stylo to refs/pull/125/head for testing

Signed-off-by: Kingsley Yung <kingsley@kkoyung.dev>

* Remove FAIL expectation of CSS isolation tests

Signed-off-by: Kingsley Yung <kingsley@kkoyung.dev>

* Add behavior test

Signed-off-by: Oriol Brufau <obrufau@igalia.com>

* Revert temporary changes in Cargo.toml

Signed-off-by: Kingsley Yung <kingsley@kkoyung.dev>

---------

Signed-off-by: Kingsley Yung <kingsley@kkoyung.dev>
Signed-off-by: Oriol Brufau <obrufau@igalia.com>
Co-authored-by: Oriol Brufau <obrufau@igalia.com>
2025-02-24 16:25:34 +00:00
Euclid Ye
d42146ce91
script: Fix typo in ScriptThread::process_pending_input_events (#35627)
Also remove an unused import.

Signed-off-by: Euclid Ye <yezhizhenjiakang@gmail.com>
2025-02-24 15:58:05 +00:00
Delan Azabani
fe509bb82f
libservo: Refactor ipc-channel default response logic (#35624)
Signed-off-by: Delan Azabani <dazabani@igalia.com>
2025-02-24 15:40:09 +00:00
Samson
e887e621f8
Do not assume OffscreenCanvasContext to be 2d (#35629)
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2025-02-24 14:06:08 +00:00
Martin Robinson
6062995636
libservo: Move WebDriver messages to the embedder crate (#35602)
This is the first step toward moving the WebDriver implementation to
servoshell. This move will make it possible to start testing the
embedding API with WebDriver. See [this zulip thread][a] for more details.

While WebDriver will be able to use a lot of API commands to do what it
is doing now, there will still need to be some "cheat codes" for more
gnarly access to `ScriptThread` details. That's why we likely won't be
able to remove all WebDriver-specific messages from the API -- but maybe
they will be useful for embedders somehow.

A couple messages have to change as they depended on `script_traits`
types, particularly those that used `WindowSizeData` and `LoadData`. I
think this helps to encapsulate the WebDriver commands a bit more
though.

[a]: https://servo.zulipchat.com/#narrow/channel/437943-embedding/topic/webdriver.20as.20embedding.20api.20playgound

Signed-off-by: Martin Robinson <mrobinson@igalia.com>
2025-02-24 13:57:28 +00:00
Oriol Brufau
41c2422a66
layout: Ignore indefinite stretch on min and max sizing properties (#35630)
We were always treating an indefinite `stretch` as the automatic size.
This instead treats it as `0px` on min sizing properties, and as `none`
on max sizing properties, aligning with Blink and this recent CSSWG
resolution: https://github.com/w3c/csswg-drafts/issues/11006

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
2025-02-24 13:51:08 +00:00
Oriol Brufau
e74bb8de15
Prevent lint job from trying to use incompatible cargo-deny version (#35632)
Lint jobs were failing because they would try to install the latest
version of cargo-deny (0.18.0), which requries rustc 1.85.0 or newer,
while the currently active rustc version is 1.83.0.

Therefore this makes it install version 0.17 instead.

Signed-off-by: Oriol Brufau <obrufau@igalia.com>
2025-02-24 12:47:51 +00:00
Samson
9efe7ad45d
Remove get_ipc_sender from OffscreenCanvasRenderingContext2D (#35625)
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2025-02-24 08:23:13 +00:00
Yerkebulan Tulibergenov
47f6c50dd9
refactor: add CanGc as argument to Promise::reject (#35622)
Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
2025-02-23 22:32:13 +00:00
webbeef
678f0c9fdc
Improve scheduling of the memory profiler. (#35618)
Switch the delay to be used between the end of a previous run and the next, instead of the start
of consecutive runs. That ensure that we don't enqueue messages when processing is slower than
the delay.

Signed-off-by: webbeef <me@webbeef.org>
2025-02-23 20:04:57 +00:00
Auguste Baum
d446b63cfd
Propagate more CanGc (#35604)
Signed-off-by: Auguste Baum <auguste.apple@gmail.com>
2025-02-23 17:28:17 +00:00
Samson
1d7bb1337d
Unify (Offscreen)CanvasRenderingContext2d and make PaintRenderingContext2D standalone (#35619)
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2025-02-23 16:31:06 +00:00
Yerkebulan Tulibergenov
6199099d12
refactor RTCError::new_inherited (#35617)
Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
2025-02-23 14:26:19 +00:00
Josh Matthews
381e168877
Move more bindings types to script_bindings (#35620)
* Move weak references implementation to script_bindings.

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

* Move maplike/setlike definitions to script_bindings.

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

* Move base error types to script_bindings.

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

* Formatting.

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

---------

Signed-off-by: Josh Matthews <josh@joshmatthews.net>
2025-02-23 14:25:46 +00:00
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