From d8e5d89fc36bc991f4c0bf4da1ac8d4493e76b90 Mon Sep 17 00:00:00 2001 From: webbeef Date: Fri, 19 Jun 2026 20:45:56 -0700 Subject: [PATCH] chore: update to Servo 12d384266f3112285c7107c077179d973f0e130b Signed-off-by: webbeef --- Cargo.lock | 267 ++++++++++++++---- Cargo.toml | 16 +- forkme.lock | 2 +- patches/Cargo.lock.patch | 96 +++---- patches/components/script/dom/dbus.rs.patch | 2 +- .../document/document_event_handler.rs.patch | 40 +-- .../script/dom/document/focus.rs.patch | 2 +- .../components/script/dom/embedder.rs.patch | 10 +- .../script/dom/globalscope.rs.patch | 10 +- .../dom/html/htmlembeddedwebview.rs.patch | 2 +- .../dom/html/htmliframeelement.rs.patch | 5 +- .../dom/html/input_element/mod.rs.patch | 2 +- .../dom/{ => navigator}/navigator.rs.patch | 2 +- patches/components/script/dom/window.rs.patch | 12 +- .../components/script/script_thread.rs.patch | 12 +- .../codegen/Bindings.conf.patch | 18 +- 16 files changed, 330 insertions(+), 168 deletions(-) rename patches/components/script/dom/{ => navigator}/navigator.rs.patch (99%) diff --git a/Cargo.lock b/Cargo.lock index 0fa25b6..ad8f159 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -604,16 +604,16 @@ dependencies = [ "base64 0.22.1", "chrono", "data-encoding", - "ecdsa", + "ecdsa 0.16.9", "ed25519-dalek 2.2.0", - "elliptic-curve", + "elliptic-curve 0.13.8", "hickory-resolver 0.25.2", "idna", "k256", "lru 0.16.4", "multibase", - "p256", - "p384", + "p256 0.13.2", + "p384 0.13.1", "rand 0.10.1", "reqwest 0.12.28", "serde", @@ -1212,9 +1212,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.64" +version = "1.2.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dad887fd958be91b5098c0248def011f4523ab786cd411be668777e55063501f" +checksum = "e228eec9be7c17ccb640b59b36a5cd805ea2a564a4c5e162c2f659fea30d3b96" dependencies = [ "find-msvc-tools", "jobserver", @@ -1829,9 +1829,12 @@ checksum = "97bb4a855e3b10f84c4e7e895a7de01db7f9a7b7eb7f73ed9773fd52ac686451" dependencies = [ "cpubits", "ctutils", + "getrandom 0.4.3", + "hybrid-array", "num-traits", "rand_core 0.10.1", "serdect 0.4.3", + "subtle", "zeroize", ] @@ -1926,6 +1929,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d5515a3834141de9eafb9717ad39eea8247b5674e6066c404e8c4b365d2a29e" dependencies = [ "cmov", + "subtle", ] [[package]] @@ -1952,9 +1956,9 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "5.0.0-rc.0" +version = "5.0.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f359e08ca85e7bd759e1fd933ff2bccd81864c60a8fba0e259c7f822b0924bf" +checksum = "c906a87e53a36ff795d72e06e8162a83c5436e3ea89e942a9cb9fc083f0a384f" dependencies = [ "cfg-if", "cpufeatures 0.3.0", @@ -2375,12 +2379,27 @@ checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" dependencies = [ "der 0.7.10", "digest 0.10.7", - "elliptic-curve", - "rfc6979", + "elliptic-curve 0.13.8", + "rfc6979 0.4.0", "signature 2.2.0", "spki 0.7.3", ] +[[package]] +name = "ecdsa" +version = "0.17.0-rc.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f7195c1205cec99025b3004e8034e1ddc12746333aa0a3945df7f9b80882ca2" +dependencies = [ + "der 0.8.0", + "digest 0.11.3", + "elliptic-curve 0.14.0-rc.35", + "rfc6979 0.6.0-pre.0", + "signature 3.0.0", + "spki 0.8.0", + "zeroize", +] + [[package]] name = "ed25519" version = "2.2.3" @@ -2423,7 +2442,7 @@ version = "3.0.0-rc.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b011170fe4f04665565b4110afef66774fe9ffff278f3eb5b81cc73d26e27d60" dependencies = [ - "curve25519-dalek 5.0.0-rc.0", + "curve25519-dalek 5.0.0-rc.1", "ed25519 3.0.0", "rand_core 0.10.1", "serde", @@ -2449,20 +2468,42 @@ dependencies = [ "base64ct", "crypto-bigint 0.5.5", "digest 0.10.7", - "ff", + "ff 0.13.1", "generic-array", - "group", + "group 0.13.0", "hkdf 0.12.4", "pem-rfc7468 0.7.0", "pkcs8 0.10.2", "rand_core 0.6.4", - "sec1", + "sec1 0.7.3", "serde_json", "serdect 0.2.0", "subtle", "zeroize", ] +[[package]] +name = "elliptic-curve" +version = "0.14.0-rc.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51c58d86e2f3cebbf2dfd94c4bf049585c7def71058ba506bfdafcb57652a34b" +dependencies = [ + "base16ct 1.0.0", + "crypto-bigint 0.7.4", + "crypto-common 0.2.2", + "digest 0.11.3", + "ff 0.14.0", + "group 0.14.0", + "hkdf 0.13.0", + "hybrid-array", + "pem-rfc7468 1.0.0", + "pkcs8 0.11.0", + "rand_core 0.10.1", + "sec1 0.8.1", + "subtle", + "zeroize", +] + [[package]] name = "embedded-io" version = "0.4.0" @@ -2687,6 +2728,16 @@ dependencies = [ "subtle", ] +[[package]] +name = "ff" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1f686ab92a9fb0eaf188f6c6c87b89490baa6fdb0db4544ba4dc47f7942489f" +dependencies = [ + "rand_core 0.10.1", + "subtle", +] + [[package]] name = "fiat-crypto" version = "0.2.9" @@ -3518,11 +3569,22 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ - "ff", + "ff 0.13.1", "rand_core 0.6.4", "subtle", ] +[[package]] +name = "group" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fd1a1c7a5206c5b7a3f5a0d7ccd3ff85d0c8f5133d62a02680255b0004af5f4" +dependencies = [ + "ff 0.14.0", + "rand_core 0.10.1", + "subtle", +] + [[package]] name = "gstreamer" version = "0.25.2" @@ -4374,6 +4436,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9155a582abd142abc056962c29e3ce5ff2ad5469f4246b537ed42c5deba857da" dependencies = [ "ctutils", + "subtle", "typenum", "zeroize", ] @@ -5277,10 +5340,9 @@ dependencies = [ [[package]] name = "iroh-base" version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9c95e4459d9bb828a77084277abd308aa2b58a096652b079bddfd6ef2361f53" +source = "git+https://github.com/webbeef/iroh.git?branch=update-curve25519-dalek#582b9b0caeafc0f891a35db049b412031116bc1a" dependencies = [ - "curve25519-dalek 5.0.0-rc.0", + "curve25519-dalek 5.0.0-rc.1", "data-encoding", "data-encoding-macro", "derive_more", @@ -5478,6 +5540,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b4baf93f58d4425749ca49a51c50ebab072c5df6994d08fed93541c331481dc" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.18" @@ -5635,8 +5706,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" dependencies = [ "cfg-if", - "ecdsa", - "elliptic-curve", + "ecdsa 0.16.9", + "elliptic-curve 0.13.8", "once_cell", "sha2 0.10.9", "signature 2.2.0", @@ -7372,24 +7443,51 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" dependencies = [ - "ecdsa", - "elliptic-curve", - "primeorder", + "ecdsa 0.16.9", + "elliptic-curve 0.13.8", + "primeorder 0.13.6", "sha2 0.10.9", ] +[[package]] +name = "p256" +version = "0.14.0-rc.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7d8ed70255af8fecea30f284e523066cb19918cb2b4c17f41f78cda3291d64" +dependencies = [ + "ecdsa 0.17.0-rc.20", + "elliptic-curve 0.14.0-rc.35", + "primefield", + "primeorder 0.14.0-rc.12", + "sha2 0.11.0", +] + [[package]] name = "p384" version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe42f1670a52a47d448f14b6a5c61dd78fce51856e68edaa38f7ae3a46b8d6b6" dependencies = [ - "ecdsa", - "elliptic-curve", - "primeorder", + "ecdsa 0.16.9", + "elliptic-curve 0.13.8", + "primeorder 0.13.6", "sha2 0.10.9", ] +[[package]] +name = "p384" +version = "0.14.0-rc.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "563b53b275b129c6f070e538bf0845f8e6abd0b5ffeb3f53f1d6ea5f8dbb3b2c" +dependencies = [ + "ecdsa 0.17.0-rc.20", + "elliptic-curve 0.14.0-rc.35", + "fiat-crypto 0.3.0", + "primefield", + "primeorder 0.14.0-rc.12", + "sha2 0.11.0", +] + [[package]] name = "p521" version = "0.13.3" @@ -7397,13 +7495,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fc9e2161f1f215afdfce23677034ae137bbd45016a880c2eb3ba8eb95f085b2" dependencies = [ "base16ct 0.2.0", - "ecdsa", - "elliptic-curve", - "primeorder", + "ecdsa 0.16.9", + "elliptic-curve 0.13.8", + "primeorder 0.13.6", "rand_core 0.6.4", "sha2 0.10.9", ] +[[package]] +name = "p521" +version = "0.14.0-rc.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71bed4316a8e79ff1f728527a4334da0c57256ed7ca8b34c2297d9cc34e70511" +dependencies = [ + "base16ct 1.0.0", + "ecdsa 0.17.0-rc.20", + "elliptic-curve 0.14.0-rc.35", + "primefield", + "primeorder 0.14.0-rc.12", + "sha2 0.11.0", +] + [[package]] name = "pango" version = "0.18.3" @@ -8015,13 +8127,39 @@ dependencies = [ "syn 2.0.118", ] +[[package]] +name = "primefield" +version = "0.14.0-rc.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8675564771a62f69a0af716b03e89b917b963c7b173b5855575e84fd4f605ca0" +dependencies = [ + "crypto-bigint 0.7.4", + "crypto-common 0.2.2", + "ff 0.14.0", + "rand_core 0.10.1", + "subtle", + "zeroize", +] + [[package]] name = "primeorder" version = "0.13.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" dependencies = [ - "elliptic-curve", + "elliptic-curve 0.13.8", +] + +[[package]] +name = "primeorder" +version = "0.14.0-rc.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44545bd63647ac77eaed1589000a031632b0f7175e2c1cc48778787e9783baaf" +dependencies = [ + "elliptic-curve 0.14.0-rc.35", + "once_cell", + "primefield", + "serdect 0.4.3", ] [[package]] @@ -8644,6 +8782,16 @@ dependencies = [ "subtle", ] +[[package]] +name = "rfc6979" +version = "0.6.0-pre.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9935425142ac6e252364413291d96c8bc9898d0876a801824c7af4eae397b689" +dependencies = [ + "ctutils", + "hmac 0.13.0", +] + [[package]] name = "rgb" version = "0.8.53" @@ -9038,6 +9186,20 @@ dependencies = [ "zeroize", ] +[[package]] +name = "sec1" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d56d437c2f19203ce5f7122e507831de96f3d2d4d3be5af44a0b0a09d8a80e4d" +dependencies = [ + "base16ct 1.0.0", + "ctutils", + "der 0.8.0", + "hybrid-array", + "subtle", + "zeroize", +] + [[package]] name = "security-framework" version = "3.7.0" @@ -9255,7 +9417,7 @@ dependencies = [ "hyper 1.10.1", "image", "ipc-channel", - "itertools 0.14.0", + "itertools 0.15.0", "keyboard-types 0.8.3", "log", "mozangle", @@ -9690,7 +9852,7 @@ dependencies = [ "harfbuzz-sys", "icu_locid", "icu_properties 1.5.1", - "itertools 0.14.0", + "itertools 0.15.0", "libc", "log", "malloc_size_of_derive", @@ -9806,7 +9968,7 @@ dependencies = [ "icu_locid", "icu_properties 1.5.1", "icu_segmenter 1.5.0", - "itertools 0.14.0", + "itertools 0.15.0", "kurbo", "log", "malloc_size_of_derive", @@ -10166,7 +10328,7 @@ dependencies = [ "hyper-util", "imsz", "ipc-channel", - "itertools 0.14.0", + "itertools 0.15.0", "log", "malloc_size_of_derive", "mime", @@ -10415,8 +10577,8 @@ dependencies = [ "ctr 0.10.1", "data-url", "digest 0.11.3", - "ecdsa", - "elliptic-curve", + "ecdsa 0.17.0-rc.20", + "elliptic-curve 0.14.0-rc.35", "encoding_rs", "euclid", "flate2", @@ -10429,7 +10591,7 @@ dependencies = [ "icu_locid", "indexmap", "ipc-channel", - "itertools 0.14.0", + "itertools 0.15.0", "k12", "keyboard-types 0.8.3", "libc", @@ -10446,9 +10608,9 @@ dependencies = [ "num-traits", "num_cpus", "ocb3", - "p256", - "p384", - "p521", + "p256 0.14.0-rc.12", + "p384 0.14.0-rc.12", + "p521 0.14.0-rc.12", "parking_lot", "percent-encoding", "phf", @@ -10458,7 +10620,6 @@ dependencies = [ "regex", "rsa 0.10.0-rc.18", "rustc-hash 2.1.2", - "sec1", "selectors", "seq-macro", "serde", @@ -10693,7 +10854,7 @@ dependencies = [ "euclid", "glow", "half", - "itertools 0.14.0", + "itertools 0.15.0", "log", "num-traits", "parking_lot", @@ -11193,12 +11354,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b86f5297f0f04d08cabaa0f6bff7cb6aec4d9c3b49d87990d63da9d9156a8c3" dependencies = [ "ed25519-dalek 2.2.0", - "p256", - "p384", - "p521", + "p256 0.13.2", + "p384 0.13.1", + "p521 0.13.3", "rand_core 0.6.4", "rsa 0.9.10", - "sec1", + "sec1 0.7.3", "sha2 0.10.9", "signature 2.2.0", "ssh-cipher", @@ -12907,9 +13068,9 @@ dependencies = [ [[package]] name = "wayland-protocols" -version = "0.32.12" +version = "0.32.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "563a85523cade2429938e790815fd7319062103b9f4a2dc806e9b53b95982d8f" +checksum = "23d0c813de3daa2ed6520af85a3bd49b0e722a3078506899aa9686fea58dc4b6" dependencies = [ "bitflags 2.13.0", "wayland-backend", @@ -13981,13 +14142,13 @@ checksum = "ea6fc2961e4ef194dcbfe56bb845534d0dc8098940c7e5c012a258bfec6701bd" [[package]] name = "x25519-dalek" -version = "2.0.1" +version = "3.0.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" +checksum = "eee64e8620caa64914d669b1f68f858aaff54e2d0f9ad3b30a613b58a1baa83e" dependencies = [ - "curve25519-dalek 4.1.3", - "rand_core 0.6.4", - "serde", + "curve25519-dalek 5.0.0-rc.1", + "getrandom 0.4.3", + "rand_core 0.10.1", "zeroize", ] diff --git a/Cargo.toml b/Cargo.toml index 9ad53d5..94dfd8a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -70,8 +70,8 @@ digest = "0.11" dom_struct = { package = "servo-dom-struct", version = "0.1.0", path = "source/components/dom_struct" } dpi = "0.1" dwrote = "0.11.5" -ecdsa = "0.16" -elliptic-curve = "0.13" +ecdsa = "=0.17.0-rc.20" +elliptic-curve = { version = "=0.14.0-rc.35", features = ["pkcs8"] } embedder_traits = { package = "servo-embedder-traits", path = "source/components/shared/embedder" } encoding_rs = { version = "0.8", features = ["serde"] } env_logger = "0.11" @@ -130,7 +130,7 @@ ipc-channel = "0.22" iroh = { version = "1.0", default-features = false, features = ["tls-aws-lc-rs"] } iroh-mdns-address-lookup = "0.4" iroh-persist = { git = "https://github.com/webbeef/iroh-persist.git", branch = "iroh-1.0" } -itertools = "0.14" +itertools = "0.15" js = { package = "mozjs", version = "=0.16.4", default-features = false, features = ["libz-sys", "intl"] } jstraceable_derive = { package = "servo-jstraceable-derive", version = "0.1.0", path = "source/components/jstraceable_derive" } keyboard-types = { version = "0.8.3", features = ["serde", "webdriver"] } @@ -179,9 +179,9 @@ paint = { package = "servo-paint", version = "0.1.0", path = "source/components/ paint_api = { package = "servo-paint-api", path = "source/components/shared/paint" } petgraph = "0.4.12" petname = "3.0" -p256 = { version = "0.13", features = ["ecdh"] } -p384 = { version = "0.13", features = ["ecdh"] } -p521 = { version = "0.13", features = ["ecdh"] } +p256 = { version = "=0.14.0-rc.12", features = ["ecdh"] } +p384 = { version = "=0.14.0-rc.12", features = ["ecdh"] } +p521 = { version = "=0.14.0-rc.12", features = ["ecdh"] } parking_lot = { version = "0.12", features = ["serde"] } peniko = "0.6" percent-encoding = "2.3" @@ -218,7 +218,6 @@ script_bindings = { package = "servo-script-bindings", version = "0.1.0", path = script_traits = { package = "servo-script-traits", path = "source/components/shared/script" } sea-query = { version = "1.0.0-rc.30", default-features = false, features = ["backend-sqlite", "derive"] } sea-query-rusqlite = { version = "0.8.0-rc.15" } -sec1 = "0.7" selectors = { git = "https://github.com/servo/stylo", rev = "49e912cf401a7f867d33d61baa2389bb3d6f73e0" } seq-macro = "0.3.6" serde = "1.0.228" @@ -326,7 +325,7 @@ windows-sys = "0.61" winit = "0.30.12" wio = "0.2" wr_malloc_size_of = "0.2.2" -x25519-dalek = { version = "2.0.1", features = ["static_secrets"] } +x25519-dalek = { version = "=3.0.0-rc.1", features = ["getrandom", "static_secrets", "zeroize"] } xi-unicode = "0.3.0" xml = "1.1" xml5ever = "0.39" @@ -370,3 +369,4 @@ url = { path = "crates/rust-url/url" } form_urlencoded = { path = "crates/rust-url/form_urlencoded" } percent-encoding = { path = "crates/rust-url/percent_encoding" } idna = { path = "crates/rust-url/idna" } +iroh-base = { git = "https://github.com/webbeef/iroh.git", branch = "update-curve25519-dalek" } diff --git a/forkme.lock b/forkme.lock index 9331a8a..65a3a11 100644 --- a/forkme.lock +++ b/forkme.lock @@ -1 +1 @@ -b739b53546e9e5f47684708792b119c5623d1b9c +12d384266f3112285c7107c077179d973f0e130b diff --git a/patches/Cargo.lock.patch b/patches/Cargo.lock.patch index eec73a0..ef72ba4 100644 --- a/patches/Cargo.lock.patch +++ b/patches/Cargo.lock.patch @@ -45,9 +45,9 @@ + +[[package]] name = "base16ct" - version = "0.2.0" + version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -1181,6 +1214,15 @@ +@@ -1175,6 +1208,15 @@ ] [[package]] @@ -63,7 +63,7 @@ name = "cc" version = "1.2.62" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -1317,6 +1359,20 @@ +@@ -1311,6 +1353,20 @@ ] [[package]] @@ -84,7 +84,7 @@ name = "cipher" version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -1583,11 +1639,20 @@ +@@ -1571,11 +1627,20 @@ dependencies = [ "core-foundation 0.9.4", "core-graphics", @@ -106,7 +106,7 @@ name = "core_maths" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -1665,6 +1730,12 @@ +@@ -1653,6 +1718,12 @@ ] [[package]] @@ -119,7 +119,7 @@ name = "crossbeam-channel" version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -1907,6 +1978,26 @@ +@@ -1887,6 +1958,26 @@ checksum = "a4ae5f15dda3c708c0ade84bfee31ccab44a3da4f88015ed22f63732abe300c8" [[package]] @@ -146,16 +146,16 @@ name = "data-url" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -2293,6 +2384,8 @@ - "pkcs8 0.10.2", - "rand_core 0.6.4", +@@ -2262,6 +2353,8 @@ + "pkcs8", + "rand_core 0.10.1", "sec1", + "serde_json", + "serdect", "subtle", "zeroize", ] -@@ -2353,6 +2446,18 @@ +@@ -2322,6 +2415,18 @@ checksum = "66b7e2430c6dff6a955451e2cfc438f09cea1965a9d6f87f7e3b90decc014099" [[package]] @@ -174,7 +174,7 @@ name = "enumflags2" version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -2722,12 +2827,21 @@ +@@ -2691,12 +2796,21 @@ [[package]] name = "foreign-types" @@ -197,7 +197,7 @@ ] [[package]] -@@ -2743,6 +2857,12 @@ +@@ -2712,6 +2826,12 @@ [[package]] name = "foreign-types-shared" @@ -210,7 +210,7 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" -@@ -2939,6 +3059,7 @@ +@@ -2907,6 +3027,7 @@ checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" dependencies = [ "cfg-if", @@ -218,7 +218,7 @@ "libc", "wasi", ] -@@ -2950,9 +3071,11 @@ +@@ -2918,9 +3039,11 @@ checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", @@ -230,7 +230,7 @@ ] [[package]] -@@ -3601,7 +3724,7 @@ +@@ -3569,7 +3692,7 @@ "cc", "core-graphics", "core-text", @@ -239,7 +239,7 @@ "freetype-sys", "pkg-config", "winapi", -@@ -3714,6 +3837,52 @@ +@@ -3682,6 +3805,52 @@ checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" [[package]] @@ -292,7 +292,7 @@ name = "hilog" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -3903,6 +4072,22 @@ +@@ -3854,6 +4023,22 @@ ] [[package]] @@ -315,7 +315,7 @@ name = "hyper-util" version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -3923,6 +4108,7 @@ +@@ -3874,6 +4059,7 @@ "tokio", "tower-service", "tracing", @@ -323,7 +323,7 @@ ] [[package]] -@@ -4539,6 +4725,29 @@ +@@ -4490,6 +4676,29 @@ ] [[package]] @@ -353,7 +353,7 @@ name = "ipnet" version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -4545,6 +4754,27 @@ +@@ -4496,6 +4705,27 @@ checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" [[package]] @@ -381,7 +381,7 @@ name = "is_terminal_polyfill" version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -5014,6 +5244,17 @@ +@@ -4974,6 +5204,17 @@ ] [[package]] @@ -399,7 +399,7 @@ name = "matchers" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -5207,6 +5448,29 @@ +@@ -5167,6 +5408,29 @@ checksum = "956787520e75e9bd233246045d19f42fb73242759cc57fba9611d940ae96d4b0" [[package]] @@ -429,7 +429,7 @@ name = "naga" version = "29.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -5290,6 +5554,23 @@ +@@ -5250,6 +5514,23 @@ ] [[package]] @@ -453,7 +453,7 @@ name = "ndk" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -6014,6 +6295,10 @@ +@@ -5974,6 +6255,10 @@ version = "1.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" @@ -464,7 +464,7 @@ [[package]] name = "once_cell_polyfill" -@@ -6034,6 +6319,18 @@ +@@ -5994,6 +6279,18 @@ checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" [[package]] @@ -483,7 +483,7 @@ name = "openxr" version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -6723,6 +7020,61 @@ +@@ -6684,6 +6981,61 @@ ] [[package]] @@ -545,7 +545,7 @@ name = "quote" version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -7010,6 +7362,56 @@ +@@ -6971,6 +7323,56 @@ checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832" [[package]] @@ -602,7 +602,7 @@ name = "resvg" version = "0.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -7182,6 +7584,7 @@ +@@ -7143,6 +7545,7 @@ "aws-lc-rs", "log", "once_cell", @@ -610,7 +610,7 @@ "rustls-pki-types", "rustls-webpki", "subtle", -@@ -7206,6 +7609,7 @@ +@@ -7167,6 +7570,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30a7197ae7eb376e574fe940d068c30fe0462554a3ddbe4eca7838e049c937a9" dependencies = [ @@ -618,7 +618,7 @@ "zeroize", ] -@@ -7496,6 +7900,18 @@ +@@ -7457,6 +7861,18 @@ ] [[package]] @@ -637,7 +637,7 @@ name = "serde_json" version = "1.0.150" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -7835,6 +8251,7 @@ +@@ -7796,6 +8212,7 @@ "rand 0.10.1", "rustc-hash 2.1.2", "serde", @@ -645,7 +645,7 @@ "servo-background-hang-monitor", "servo-background-hang-monitor-api", "servo-base", -@@ -7861,6 +8278,8 @@ +@@ -7822,6 +8239,8 @@ "servo-webxr-api", "stylo", "stylo_traits", @@ -654,7 +654,7 @@ "tracing", ] -@@ -8490,9 +8909,11 @@ +@@ -8451,9 +8870,11 @@ name = "servo-net" version = "0.3.0" dependencies = [ @@ -666,7 +666,7 @@ "base64", "bytes", "chrono", -@@ -8522,6 +8943,7 @@ +@@ -8483,6 +8904,7 @@ "parking_lot", "quick_cache", "regex", @@ -674,7 +674,7 @@ "resvg", "rustc-hash 2.1.2", "rustls", -@@ -8528,9 +8950,11 @@ +@@ -8489,9 +8911,11 @@ "rustls-pki-types", "rustls-platform-verifier", "serde", @@ -686,7 +686,7 @@ "servo-devtools-traits", "servo-embedder-traits", "servo-hyper-serde", -@@ -8581,6 +9005,7 @@ +@@ -8542,6 +8966,7 @@ "rustc-hash 2.1.2", "rustls-pki-types", "serde", @@ -694,7 +694,7 @@ "servo-base", "servo-config", "servo-default-resources", -@@ -8592,8 +9017,10 @@ +@@ -8553,8 +8978,10 @@ "servo-profile-traits", "servo-url", "servo_arc", @@ -705,7 +705,7 @@ "url", "uuid", "webrender_api", -@@ -9173,6 +9600,7 @@ +@@ -9133,6 +9560,7 @@ "bpaf", "cc", "cfg-if", @@ -713,7 +713,7 @@ "crossbeam-channel", "dirs", "dpi", -@@ -9187,6 +9615,7 @@ +@@ -9147,6 +9575,7 @@ "headers", "hilog", "hitrace", @@ -721,7 +721,7 @@ "image", "ipc-channel", "jni 0.22.4", -@@ -9207,6 +9636,7 @@ +@@ -9167,6 +9596,7 @@ "ohos-window-manager-sys", "raw-window-handle", "rustls", @@ -729,7 +729,7 @@ "serde_json", "servo", "servo-allocator", -@@ -9213,6 +9643,7 @@ +@@ -9173,6 +9603,7 @@ "servo-base", "servo-webdriver-server", "signal-hook-registry", @@ -737,7 +737,7 @@ "surfman", "tokio", "tracing", -@@ -9851,6 +10282,9 @@ +@@ -9791,6 +10222,9 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" @@ -747,7 +747,7 @@ [[package]] name = "synstructure" -@@ -9885,6 +10319,27 @@ +@@ -9825,6 +10259,27 @@ ] [[package]] @@ -775,7 +775,7 @@ name = "system-deps" version = "7.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -9910,6 +10365,12 @@ +@@ -9850,6 +10305,12 @@ ] [[package]] @@ -788,7 +788,7 @@ name = "tar" version = "0.4.46" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -10228,6 +10689,16 @@ +@@ -10168,6 +10629,16 @@ ] [[package]] @@ -805,7 +805,7 @@ name = "tokio-rustls" version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -10329,6 +10800,25 @@ +@@ -10269,6 +10740,25 @@ "futures-util", "pin-project-lite", "sync_wrapper", @@ -831,7 +831,7 @@ "tower-layer", "tower-service", ] -@@ -10648,6 +11138,12 @@ +@@ -10588,6 +11078,12 @@ ] [[package]] @@ -844,7 +844,7 @@ name = "urlpattern" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -11633,6 +12129,17 @@ +@@ -11573,6 +12069,17 @@ ] [[package]] diff --git a/patches/components/script/dom/dbus.rs.patch b/patches/components/script/dom/dbus.rs.patch index 5b77e4c..296e87f 100644 --- a/patches/components/script/dom/dbus.rs.patch +++ b/patches/components/script/dom/dbus.rs.patch @@ -233,7 +233,7 @@ + ); + } + -+ let custom_event = CustomEvent::new_uninitialized(&self.global(), CanGc::from_cx(cx)); ++ let custom_event = CustomEvent::new_uninitialized(cx, &self.global()); + custom_event.InitCustomEvent( + cx.into(), + DOMString::from(&*event.signal), diff --git a/patches/components/script/dom/document/document_event_handler.rs.patch b/patches/components/script/dom/document/document_event_handler.rs.patch index 8f3c9c0..f8e4459 100644 --- a/patches/components/script/dom/document/document_event_handler.rs.patch +++ b/patches/components/script/dom/document/document_event_handler.rs.patch @@ -16,7 +16,7 @@ }; #[cfg(feature = "gamepad")] use embedder_traits::{ -@@ -43,8 +44,11 @@ +@@ -42,8 +43,11 @@ use script_bindings::str::DOMString; use script_traits::ConstellationInputEvent; use servo_base::generic_channel::GenericCallback; @@ -29,7 +29,7 @@ use style::Atom; use style_traits::CSSPixel; use webrender_api::ExternalScrollId; -@@ -56,8 +60,8 @@ +@@ -55,8 +59,8 @@ use crate::dom::bindings::root::MutNullableDom; use crate::dom::bindings::trace::NoTrace; use crate::dom::clipboardevent::ClipboardEventType; @@ -39,7 +39,7 @@ use crate::dom::event::{EventBubbles, EventCancelable, EventComposed, EventFlags}; #[cfg(feature = "gamepad")] use crate::dom::gamepad::gamepad::{Gamepad, contains_user_gesture}; -@@ -71,12 +75,13 @@ +@@ -70,12 +74,13 @@ use crate::dom::pointerevent::{PointerEvent, PointerId}; use crate::dom::scrolling_box::{ScrollAxisState, ScrollRequirement, ScrollingBoxAxis}; use crate::dom::types::{ @@ -55,7 +55,7 @@ /// A data structure used for tracking the current click count. This can be /// reset to 0 if a mouse button event happens at a sufficient distance or time -@@ -140,6 +145,56 @@ +@@ -139,6 +144,56 @@ } } @@ -112,7 +112,7 @@ /// The [`DocumentEventHandler`] is a structure responsible for handling input events for /// the [`crate::Document`] and storing data related to event handling. It exists to /// decrease the size of the [`crate::Document`] structure. -@@ -207,6 +262,20 @@ +@@ -206,6 +261,20 @@ /// Map from pointer ID to the actual/current pointer capture target. /// Updated during process_pending_pointer_capture when events are dispatched. pointer_capture_target: DomRefCell>>, @@ -133,7 +133,7 @@ } impl DocumentEventHandler { -@@ -233,6 +302,9 @@ +@@ -232,6 +301,9 @@ access_key_handlers: Default::default(), pending_pointer_capture: Default::default(), pointer_capture_target: Default::default(), @@ -143,7 +143,7 @@ } } -@@ -569,6 +641,216 @@ +@@ -568,6 +640,216 @@ } } @@ -360,7 +360,7 @@ /// fn handle_native_mouse_move_event( &self, -@@ -596,6 +878,57 @@ +@@ -595,6 +877,57 @@ return; } @@ -418,7 +418,7 @@ // Update the cursor when the mouse moves, if it has changed. self.set_cursor(Some(hit_test_result.cursor)); -@@ -865,6 +1198,12 @@ +@@ -864,6 +1197,12 @@ return; }; @@ -431,7 +431,7 @@ debug!( "{:?}: at {:?}", event.action, hit_test_result.point_in_frame -@@ -1005,7 +1344,12 @@ +@@ -1004,7 +1343,12 @@ // Step 9. If mbutton is the secondary mouse button, then // Maybe show context menu with native, target. if let MouseButton::Right = event.button { @@ -445,7 +445,7 @@ } }, // https://w3c.github.io/pointerevents/#dfn-handle-native-mouse-up -@@ -1159,8 +1503,29 @@ +@@ -1158,8 +1502,29 @@ cx: &mut js::context::JSContext, target: &EventTarget, hit_test_result: &HitTestResult, @@ -476,7 +476,7 @@ // let menu_event = PointerEvent::new( cx, -@@ -1175,25 +1540,25 @@ +@@ -1174,25 +1539,25 @@ hit_test_result .point_relative_to_initial_containing_block .to_i32(), @@ -521,7 +521,7 @@ ); menu_event.upcast::().set_composed(true); -@@ -1209,6 +1574,89 @@ +@@ -1208,6 +1573,89 @@ }; } @@ -611,7 +611,7 @@ fn handle_touch_event( &self, cx: &mut JSContext, -@@ -1215,6 +1663,29 @@ +@@ -1214,6 +1662,29 @@ event: EmbedderTouchEvent, input_event: &ConstellationInputEvent, ) -> InputEventResult { @@ -641,7 +641,7 @@ // Ignore all incoming events without a hit test. let Some(hit_test_result) = self.window.hit_test_from_input_event(input_event) else { self.update_active_touch_points_when_early_return(event); -@@ -1221,6 +1692,16 @@ +@@ -1220,6 +1691,16 @@ return Default::default(); }; @@ -658,7 +658,7 @@ let TouchId(identifier) = event.touch_id; let Some(element) = hit_test_result -@@ -1392,6 +1873,10 @@ +@@ -1391,6 +1872,10 @@ .borrow_mut() .push(Dom::from_ref(&*pointer_touch)); self.set_active_element(&element); @@ -669,7 +669,7 @@ (current_target, pointer_touch) }, _ => { -@@ -1424,15 +1909,47 @@ +@@ -1423,15 +1908,47 @@ page_y, ); @@ -718,7 +718,7 @@ }, TouchEventType::Down => unreachable!("Should have been handled above"), } -@@ -1480,6 +1997,19 @@ +@@ -1479,6 +1996,19 @@ ); let event = touch_event.upcast::(); event.fire(cx, &touch_dispatch_target); @@ -738,7 +738,7 @@ event.flags().into() } -@@ -1614,6 +2144,16 @@ +@@ -1613,6 +2143,16 @@ return Default::default(); }; @@ -755,7 +755,7 @@ let Some(el) = hit_test_result .node .inclusive_ancestors(ShadowIncluding::Yes) -@@ -2173,6 +2713,26 @@ +@@ -2172,6 +2712,26 @@ return; } diff --git a/patches/components/script/dom/document/focus.rs.patch b/patches/components/script/dom/document/focus.rs.patch index 8142a2a..e6cba73 100644 --- a/patches/components/script/dom/document/focus.rs.patch +++ b/patches/components/script/dom/document/focus.rs.patch @@ -1,6 +1,6 @@ --- original +++ modified -@@ -312,6 +312,11 @@ +@@ -311,6 +311,11 @@ mut old_focus_chain: Vec, new_focus_target: &FocusableArea, ) { diff --git a/patches/components/script/dom/embedder.rs.patch b/patches/components/script/dom/embedder.rs.patch index 60d5332..3a48522 100644 --- a/patches/components/script/dom/embedder.rs.patch +++ b/patches/components/script/dom/embedder.rs.patch @@ -126,7 +126,7 @@ + } + + let global = self.global(); -+ let custom_event = CustomEvent::new_uninitialized(&global, CanGc::from_cx(cx)); ++ let custom_event = CustomEvent::new_uninitialized(cx, &global); + custom_event.InitCustomEvent( + cx.into(), + DOMString::from("servoerror"), @@ -195,7 +195,7 @@ + } + + let global = self.global(); -+ let custom_event = CustomEvent::new_uninitialized(&global, CanGc::from_cx(cx)); ++ let custom_event = CustomEvent::new_uninitialized(cx, &global); + custom_event.InitCustomEvent( + cx.into(), + DOMString::from("preferencechanged"), @@ -270,7 +270,7 @@ + } + + let global = self.global(); -+ let custom_event = CustomEvent::new_uninitialized(&global, CanGc::from_cx(cx)); ++ let custom_event = CustomEvent::new_uninitialized(cx, &global); + custom_event.InitCustomEvent( + cx.into(), + DOMString::from("taskrequest"), @@ -332,7 +332,7 @@ + } + + let global = self.global(); -+ let custom_event = CustomEvent::new_uninitialized(&global, CanGc::from_cx(cx)); ++ let custom_event = CustomEvent::new_uninitialized(cx, &global); + custom_event.InitCustomEvent( + cx.into(), + DOMString::from("opentaskprovider"), @@ -384,7 +384,7 @@ + } + + let global = self.global(); -+ let custom_event = CustomEvent::new_uninitialized(&global, CanGc::from_cx(cx)); ++ let custom_event = CustomEvent::new_uninitialized(cx, &global); + custom_event.InitCustomEvent( + cx.into(), + DOMString::from("taskprovidersupdate"), diff --git a/patches/components/script/dom/globalscope.rs.patch b/patches/components/script/dom/globalscope.rs.patch index 552128d..f530303 100644 --- a/patches/components/script/dom/globalscope.rs.patch +++ b/patches/components/script/dom/globalscope.rs.patch @@ -1,6 +1,6 @@ --- original +++ modified -@@ -369,6 +369,16 @@ +@@ -372,6 +372,16 @@ /// Is considered in a secure context inherited_secure_context: Option, @@ -17,7 +17,7 @@ /// Directory to store unminified scripts for this window if unminify-js /// opt is enabled. unminified_js_dir: Option, -@@ -799,6 +809,8 @@ +@@ -802,6 +812,8 @@ #[cfg(feature = "webgpu")] gpu_id_hub: Arc, inherited_secure_context: Option, unminify_js: bool, @@ -26,7 +26,7 @@ font_context: Option>, ) -> Self { Self { -@@ -841,6 +853,8 @@ +@@ -844,6 +856,8 @@ console_group_stack: DomRefCell::new(Vec::new()), console_count_map: Default::default(), inherited_secure_context, @@ -35,7 +35,7 @@ unminified_js_dir: unminify_js.then(|| unminified_path("unminified-js")), byte_length_queuing_strategy_size_function: OnceCell::new(), count_queuing_strategy_size_function: OnceCell::new(), -@@ -1170,6 +1184,25 @@ +@@ -1173,6 +1187,25 @@ .send(ScriptToConstellationMessage::EntanglePorts(port1, port2)); } @@ -61,7 +61,7 @@ /// Handle the transfer of a port in the current task. pub(crate) fn mark_port_as_transferred(&self, port_id: &MessagePortId) -> MessagePortImpl { if let MessagePortState::Managed(_id, message_ports) = -@@ -3176,6 +3209,16 @@ +@@ -3174,6 +3207,16 @@ self.inherited_secure_context } diff --git a/patches/components/script/dom/html/htmlembeddedwebview.rs.patch b/patches/components/script/dom/html/htmlembeddedwebview.rs.patch index 1397acc..adead82 100644 --- a/patches/components/script/dom/html/htmlembeddedwebview.rs.patch +++ b/patches/components/script/dom/html/htmlembeddedwebview.rs.patch @@ -516,7 +516,7 @@ + } + + let global = self.owner_global(); -+ let custom_event = CustomEvent::new_uninitialized(&global, CanGc::from_cx(cx)); ++ let custom_event = CustomEvent::new_uninitialized(cx, &global); + custom_event.InitCustomEvent( + cx.into(), + DOMString::from(event_type.as_ref()), diff --git a/patches/components/script/dom/html/htmliframeelement.rs.patch b/patches/components/script/dom/html/htmliframeelement.rs.patch index 74892fd..dde6787 100644 --- a/patches/components/script/dom/html/htmliframeelement.rs.patch +++ b/patches/components/script/dom/html/htmliframeelement.rs.patch @@ -8,7 +8,7 @@ use js::context::JSContext; use js::rust::HandleObject; use net_traits::ReferrerPolicy; -@@ -18,37 +19,43 @@ +@@ -18,29 +19,34 @@ use profile_traits::ipc as ProfiledIpc; use script_bindings::cell::DomRefCell; use script_traits::{NewPipelineInfo, UpdatePipelineIdReason}; @@ -46,11 +46,12 @@ use crate::dom::eventtarget::EventTarget; use crate::dom::globalscope::GlobalScope; use crate::dom::html::htmlelement::HTMLElement; +@@ -47,8 +53,9 @@ + use crate::dom::node::virtualmethods::VirtualMethods; use crate::dom::node::{BindContext, Node, NodeDamage, NodeTraits, UnbindContext}; use crate::dom::performance::performanceresourcetiming::InitiatorType; +use crate::dom::promise::Promise; use crate::dom::trustedtypes::trustedhtml::TrustedHTML; - use crate::dom::virtualmethods::VirtualMethods; -use crate::dom::windowproxy::WindowProxy; +use crate::dom::windowproxy::{CreatorBrowsingContextInfo, WindowProxy}; use crate::navigation::{ diff --git a/patches/components/script/dom/html/input_element/mod.rs.patch b/patches/components/script/dom/html/input_element/mod.rs.patch index 6b36592..e7deffa 100644 --- a/patches/components/script/dom/html/input_element/mod.rs.patch +++ b/patches/components/script/dom/html/input_element/mod.rs.patch @@ -11,7 +11,7 @@ use encoding_rs::Encoding; use fonts::{ByteIndex, TextByteRange}; use html5ever::{LocalName, Prefix, local_name}; -@@ -1988,10 +1990,25 @@ +@@ -1989,10 +1991,25 @@ .hide_embedder_control(self.upcast()); } else if *event_type == *"focus" { let input_type = &*self.input_type(); diff --git a/patches/components/script/dom/navigator.rs.patch b/patches/components/script/dom/navigator/navigator.rs.patch similarity index 99% rename from patches/components/script/dom/navigator.rs.patch rename to patches/components/script/dom/navigator/navigator.rs.patch index c0baf75..0cea441 100644 --- a/patches/components/script/dom/navigator.rs.patch +++ b/patches/components/script/dom/navigator/navigator.rs.patch @@ -69,7 +69,7 @@ +use crate::routed_promise::{RoutedPromiseListener, callback_promise}; use crate::script_runtime::CanGc; - pub(super) fn hardware_concurrency() -> u64 { + pub(crate) fn hardware_concurrency() -> u64 { @@ -140,6 +151,9 @@ servo_internals: MutNullableDom, user_activation: MutNullableDom, diff --git a/patches/components/script/dom/window.rs.patch b/patches/components/script/dom/window.rs.patch index d9b3034..536cb39 100644 --- a/patches/components/script/dom/window.rs.patch +++ b/patches/components/script/dom/window.rs.patch @@ -102,7 +102,7 @@ // Step 6: Let userPromptHandler be WebDriver BiDi user prompt opened with this, // "prompt", and message. // TODO: Add support for WebDriver BiDi. -@@ -1720,6 +1751,26 @@ +@@ -1719,6 +1750,26 @@ // https://html.spec.whatwg.org/multipage/#windoweventhandlers window_event_handlers!(); @@ -129,7 +129,7 @@ /// fn Screen(&self, can_gc: CanGc) -> DomRoot { self.screen.or_init(|| Screen::new(self, can_gc)) -@@ -3104,9 +3155,33 @@ +@@ -3103,9 +3154,33 @@ &self, input_event: &ConstellationInputEvent, ) -> Option { @@ -166,7 +166,7 @@ } #[expect(unsafe_code)] -@@ -3125,8 +3200,34 @@ +@@ -3124,8 +3199,34 @@ // SAFETY: This is safe because `Window::query_elements_from_point` has ensured that // layout has run and any OpaqueNodes that no longer refer to real nodes are gone. let address = UntrustedNodeAddress(result.node.0 as *const c_void); @@ -202,7 +202,7 @@ cursor: result.cursor, point_in_node: result.point_in_target, point_in_frame, -@@ -3688,6 +3789,8 @@ +@@ -3687,6 +3788,8 @@ player_context: WindowGLContext, #[cfg(feature = "webgpu")] gpu_id_hub: Arc, inherited_secure_context: Option, @@ -211,7 +211,7 @@ theme: Theme, weak_script_thread: Weak, ) -> DomRoot { -@@ -3714,6 +3817,8 @@ +@@ -3713,6 +3816,8 @@ gpu_id_hub, inherited_secure_context, unminify_js, @@ -220,7 +220,7 @@ Some(font_context), ), ongoing_navigation: Default::default(), -@@ -3975,3 +4080,114 @@ +@@ -3974,3 +4079,114 @@ Self::create_named_properties_object(cx, proto, object) } } diff --git a/patches/components/script/script_thread.rs.patch b/patches/components/script/script_thread.rs.patch index 32d7ea4..ab923a7 100644 --- a/patches/components/script/script_thread.rs.patch +++ b/patches/components/script/script_thread.rs.patch @@ -172,7 +172,7 @@ ); } -@@ -3373,6 +3456,170 @@ +@@ -3374,6 +3457,170 @@ } } @@ -343,7 +343,7 @@ fn ask_constellation_for_top_level_info( &self, sender_webview_id: WebViewId, -@@ -3481,7 +3728,13 @@ +@@ -3482,7 +3729,13 @@ self.senders.pipeline_to_embedder_sender.clone(), self.senders.constellation_sender.clone(), incomplete.pipeline_id, @@ -358,7 +358,7 @@ incomplete.viewport_details, origin.clone(), final_url.clone(), -@@ -3503,6 +3756,8 @@ +@@ -3504,6 +3757,8 @@ #[cfg(feature = "webgpu")] self.gpu_id_hub.clone(), incomplete.load_data.inherited_secure_context, @@ -367,7 +367,7 @@ incomplete.theme, self.this.clone(), ); -@@ -3528,6 +3783,7 @@ +@@ -3529,6 +3784,7 @@ incomplete.webview_id, incomplete.parent_info, incomplete.opener, @@ -375,7 +375,7 @@ ); if window_proxy.parent().is_some() { // https://html.spec.whatwg.org/multipage/#navigating-across-documents:delaying-load-events-mode-2 -@@ -4361,10 +4617,84 @@ +@@ -4362,10 +4618,84 @@ document.event_handler().handle_refresh_cursor(); } @@ -460,7 +460,7 @@ fn handle_request_screenshot_readiness( &self, webview_id: WebViewId, -@@ -4405,7 +4735,7 @@ +@@ -4406,7 +4736,7 @@ can_gc: CanGc, ) { let Some(window) = self.documents.borrow().find_window(pipeline_id) else { diff --git a/patches/components/script_bindings/codegen/Bindings.conf.patch b/patches/components/script_bindings/codegen/Bindings.conf.patch index fad6ddb..278af42 100644 --- a/patches/components/script_bindings/codegen/Bindings.conf.patch +++ b/patches/components/script_bindings/codegen/Bindings.conf.patch @@ -1,6 +1,6 @@ --- original +++ modified -@@ -40,6 +40,10 @@ +@@ -44,6 +44,10 @@ 'cx': ['Constructor'] }, @@ -11,7 +11,7 @@ 'Attr': { 'implicitCxSetters': True, }, -@@ -157,6 +161,14 @@ +@@ -181,6 +185,14 @@ 'cx': ['Constructor'], }, @@ -26,7 +26,7 @@ 'CookieStore': { 'cx': ['Set', 'Set_', 'Get', 'Get_', 'GetAll', 'GetAll_', 'Delete', 'Delete_'], }, -@@ -497,6 +509,11 @@ +@@ -525,6 +537,11 @@ 'cx': ['CheckValidity', 'GetValidity', 'ReportValidity', 'SetValidity'], }, @@ -35,10 +35,10 @@ + 'canGc': ['Pairing', 'ContentBlocker', 'Dbus'], +}, + - 'EventSource': { - 'weakReferenceable': True, + 'ErrorEvent': { + 'cx': ['Constructor'] }, -@@ -1010,7 +1027,7 @@ +@@ -1071,7 +1088,7 @@ 'Navigator': { 'inRealms': ['GetVRDisplays'], @@ -47,7 +47,7 @@ }, 'CredentialsContainer': { -@@ -1062,6 +1079,10 @@ +@@ -1127,6 +1144,10 @@ 'cx': ['RegisterPaint'], }, @@ -58,11 +58,11 @@ 'PannerNode': { 'cx': ['Constructor'], }, -@@ -1289,6 +1310,7 @@ +@@ -1395,6 +1416,7 @@ 'additionalTraits': ['crate::interfaces::WindowHelpers'], 'realm': ['CreateImageBitmap', 'CreateImageBitmap_', 'WebdriverCallback', 'GetOpener', 'Fetch'], 'cx': [ + 'AcceptTask', + 'Close', 'CustomElements', 'Focus', - 'FetchLater', -- 2.51.2