From 4d4ee3ca7df3889515fe6dec6c222ec66ba2c1ac Mon Sep 17 00:00:00 2001 From: webbeef Date: Mon, 22 Jun 2026 22:53:26 -0700 Subject: [PATCH] chore: update Servo to 742167a4a53a5d5f2bf1fd9b6d83db34eae36eb5 Signed-off-by: webbeef --- Cargo.lock | 86 ++++++++++--------- Cargo.toml | 2 + forkme.lock | 2 +- patches/Cargo.lock.patch | 82 +++++++++--------- .../components/script/dom/atproto.rs.patch | 26 +++--- .../script/dom/contentblocker.rs.patch | 4 +- patches/components/script/dom/dbus.rs.patch | 6 +- .../script/dom/document/document.rs.patch | 40 ++++----- .../{ => globalscope}/globalscope.rs.patch | 10 +-- .../dom/html/htmlembeddedwebview.rs.patch | 2 +- .../dom/html/htmliframeelement.rs.patch | 14 +-- patches/components/script/dom/mod.rs.patch | 18 ++-- .../script/dom/navigator/navigator.rs.patch | 6 +- .../components/script/dom/pairing.rs.patch | 10 +-- .../dom/{ => permission}/permissions.rs.patch | 4 +- .../script/dom/window/window.rs.patch | 4 +- .../script/dom/window/windowproxy.rs.patch | 16 ++-- .../components/script/script_thread.rs.patch | 22 ++--- .../script/script_window_proxies.rs.patch | 3 +- patches/components/script/timers.rs.patch | 4 +- .../codegen/Bindings.conf.patch | 12 +-- 21 files changed, 187 insertions(+), 186 deletions(-) rename patches/components/script/dom/{ => globalscope}/globalscope.rs.patch (96%) rename patches/components/script/dom/{ => permission}/permissions.rs.patch (96%) diff --git a/Cargo.lock b/Cargo.lock index b68a34b..03bc7fd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1836,9 +1836,9 @@ dependencies = [ [[package]] name = "crypto-bigint" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97bb4a855e3b10f84c4e7e895a7de01db7f9a7b7eb7f73ed9773fd52ac686451" +checksum = "1a52aa3fcda4e6302a9f48734f234d35d4721b96f8fe07d073f07ce9df4f0271" dependencies = [ "cpubits", "ctutils", @@ -1878,7 +1878,7 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3633a51a39c69ebbaa4feaa694bd83d241e4093901c84a0963b19d9bb3f0cf8f" dependencies = [ - "crypto-bigint 0.7.4", + "crypto-bigint 0.7.5", "rand_core 0.10.1", ] @@ -2068,7 +2068,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccc2776f0c61eca1ca32528f85548abd1a4be8fb53d1b21c013e4f18da1e7090" dependencies = [ "data-encoding", - "syn 2.0.118", + "syn 1.0.109", ] [[package]] @@ -2483,9 +2483,9 @@ dependencies = [ [[package]] name = "ed25519-dalek" -version = "3.0.0-rc.0" +version = "3.0.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b011170fe4f04665565b4110afef66774fe9ffff278f3eb5b81cc73d26e27d60" +checksum = "1685663e23882cd8517dcbcb1c23a6ebff4433c22dfb681d760219b62cd1b849" dependencies = [ "curve25519-dalek 5.0.0-rc.1", "ed25519 3.0.0", @@ -2534,7 +2534,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "51c58d86e2f3cebbf2dfd94c4bf049585c7def71058ba506bfdafcb57652a34b" dependencies = [ "base16ct 1.0.0", - "crypto-bigint 0.7.4", + "crypto-bigint 0.7.5", "crypto-common 0.2.2", "digest 0.11.3", "ff 0.14.0", @@ -5345,8 +5345,7 @@ dependencies = [ [[package]] name = "iroh" version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6435544bb3a5c4e6ff7affaa0c0aa0d1bca45bd700226329d5059d3eb54f9dff" +source = "git+https://github.com/webbeef/iroh.git?branch=update-curve25519-dalek#a3f7af7328db6588ec11c9633cfd8498683e2960" dependencies = [ "backon", "blake3", @@ -5355,7 +5354,7 @@ dependencies = [ "ctutils", "data-encoding", "derive_more", - "ed25519-dalek 3.0.0-rc.0", + "ed25519-dalek 3.0.0-rc.1", "futures-util", "getrandom 0.4.3", "hickory-resolver 0.26.1", @@ -5396,13 +5395,13 @@ dependencies = [ [[package]] name = "iroh-base" version = "1.0.0" -source = "git+https://github.com/webbeef/iroh.git?branch=update-curve25519-dalek#582b9b0caeafc0f891a35db049b412031116bc1a" +source = "git+https://github.com/webbeef/iroh.git?branch=update-curve25519-dalek#a3f7af7328db6588ec11c9633cfd8498683e2960" dependencies = [ "curve25519-dalek 5.0.0-rc.1", "data-encoding", "data-encoding-macro", "derive_more", - "ed25519-dalek 3.0.0-rc.0", + "ed25519-dalek 3.0.0-rc.1", "getrandom 0.4.3", "n0-error", "rand 0.10.1", @@ -5414,8 +5413,7 @@ dependencies = [ [[package]] name = "iroh-dns" version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "754f7e0c1f67938e1d671007264ffef158f14a9f795a7cc219ea68ea09a9d4c9" +source = "git+https://github.com/webbeef/iroh.git?branch=update-curve25519-dalek#a3f7af7328db6588ec11c9633cfd8498683e2960" dependencies = [ "arc-swap", "cfg_aliases", @@ -5500,8 +5498,7 @@ dependencies = [ [[package]] name = "iroh-relay" version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c12e48fef252fd04f8e6b6a8802b377baf72548d62ae4838816624cd0e06b79" +source = "git+https://github.com/webbeef/iroh.git?branch=update-curve25519-dalek#a3f7af7328db6588ec11c9633cfd8498683e2960" dependencies = [ "blake3", "bytes", @@ -6200,9 +6197,9 @@ checksum = "88904434abc2901f197fe8cc55f0445e7ded921dba5911dad2e2b39b48e663c4" [[package]] name = "memmap2" -version = "0.9.10" +version = "0.9.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "714098028fe011992e1c3962653c96b2d578c4b4bce9036e15ff220319b1e0e3" +checksum = "d1219ed1b7f229ee7104d281dd01d6802fe28bb6e95d292942c4daacdeb798c0" dependencies = [ "libc", ] @@ -8191,7 +8188,7 @@ 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-bigint 0.7.5", "crypto-common 0.2.2", "ff 0.14.0", "rand_core 0.10.1", @@ -8348,9 +8345,9 @@ dependencies = [ [[package]] name = "psl" -version = "2.1.213" +version = "2.1.214" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04e78830163eebdf905adb55ba26ba9b3ba554b08bd84c2fbe3b643c8addf22c" +checksum = "9124f6ba3f3aea75e4918fc86c76adfba8c9d289ab36f926f0b6ce4987a9e6a9" dependencies = [ "psl-types", ] @@ -8406,9 +8403,9 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.9" +version = "0.11.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" +checksum = "0c1a41e437b6bbd489372cd4971de128e85c855f56c57f283d20ff016cf7c0a8" dependencies = [ "bytes", "cfg_aliases", @@ -8426,9 +8423,9 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.14" +version = "0.11.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098" +checksum = "4fcb935c5bec503c2f0e306bdd3e58bb9029dcb14fa8d9ac76e3a5256ac0763e" dependencies = [ "bytes", "getrandom 0.3.4", @@ -8461,9 +8458,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.45" +version = "1.0.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" +checksum = "dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368" dependencies = [ "proc-macro2", ] @@ -8897,9 +8894,9 @@ dependencies = [ [[package]] name = "ron" -version = "0.12.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4147b952f3f819eca0e99527022f7d6a8d05f111aeb0a62960c74eb283bec8fc" +checksum = "81116b9531d61eabc41aeb228e4b6b2435bcca3233b98cf3b3077d4e6e9debb3" dependencies = [ "bitflags 2.13.0", "once_cell", @@ -8952,7 +8949,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30b2aa4ba0d89f73d1e332df05be0eeab8840351c36ca5654341dfdb57bb3caf" dependencies = [ "const-oid 0.10.2", - "crypto-bigint 0.7.4", + "crypto-bigint 0.7.5", "crypto-primes", "digest 0.11.3", "pkcs1 0.8.0-rc.4", @@ -9043,9 +9040,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.40" +version = "0.23.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef86cd5876211988985292b91c96a8f2d298df24e75989a43a3c73f2d4d8168b" +checksum = "6b92b125634d9b795e7beca796cc790df15a7fb38323bf3196fda83292d06b1f" dependencies = [ "aws-lc-rs", "log", @@ -10183,6 +10180,7 @@ dependencies = [ name = "servo-media" version = "0.1.0" dependencies = [ + "servo-base", "servo-media-audio", "servo-media-player", "servo-media-streams", @@ -10202,6 +10200,7 @@ dependencies = [ "num-traits", "petgraph", "serde", + "servo-base", "servo-malloc-size-of", "servo-media-derive", "servo-media-player", @@ -10224,7 +10223,7 @@ dependencies = [ name = "servo-media-dummy" version = "0.1.0" dependencies = [ - "ipc-channel", + "servo-base", "servo-media", "servo-media-audio", "servo-media-player", @@ -10249,9 +10248,9 @@ dependencies = [ "gstreamer-sys", "gstreamer-video", "gstreamer-webrtc", - "ipc-channel", "log", "mime", + "servo-base", "servo-media", "servo-media-audio", "servo-media-gstreamer-render", @@ -10305,7 +10304,6 @@ name = "servo-media-ohos" version = "0.1.0" dependencies = [ "crossbeam-channel", - "ipc-channel", "libc", "log", "mime", @@ -10313,6 +10311,7 @@ dependencies = [ "ohos-sys-opaque-types", "ohos-window-sys", "serde_json", + "servo-base", "servo-media", "servo-media-audio", "servo-media-player", @@ -10326,9 +10325,9 @@ dependencies = [ name = "servo-media-player" version = "0.1.0" dependencies = [ - "ipc-channel", "malloc_size_of_derive", "serde", + "servo-base", "servo-malloc-size-of", "servo-media-streams", "servo-media-traits", @@ -10353,6 +10352,7 @@ dependencies = [ "malloc_size_of_derive", "rustc-hash 2.1.2", "serde", + "servo-base", "servo-config", "servo-malloc-size-of", "servo-media", @@ -10667,12 +10667,13 @@ dependencies = [ "content-security-policy", "cookie 0.18.1", "crossbeam-channel", - "crypto-bigint 0.7.4", + "crypto-bigint 0.7.5", "cshake", "cssparser", "ctr 0.10.1", "data-url", "ecdsa 0.17.0-rc.20", + "ed25519-dalek 3.0.0-rc.1", "elliptic-curve 0.14.0-rc.35", "encoding_rs", "euclid", @@ -11816,6 +11817,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ "proc-macro2", + "quote", "unicode-ident", ] @@ -11954,7 +11956,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [ "fastrand", - "getrandom 0.4.3", + "getrandom 0.3.4", "once_cell", "rustix 1.1.4", "windows-sys 0.61.2", @@ -12113,9 +12115,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.49" +version = "0.3.51" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711a53c2d47bbd818258c498c8dbfe186a2526c631495cfe7e078567f86b8469" +checksum = "85c17d80feb7334b40c484e45ed1a5273dfd8bfda537c3be2e74a06a6686f327" dependencies = [ "deranged", "js-sys", @@ -12136,9 +12138,9 @@ checksum = "9e1c906769ad99c88eaa54e728060edef082f8e358ff32030cb7c7d315e81109" [[package]] name = "time-macros" -version = "0.2.29" +version = "0.2.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71c652a3727a9cbb9a02f707f530b618ce00d0ccd762009c8c23bd191df3c17d" +checksum = "dcef1a61bdb119096e153208ec5cbec23944ce8bca13be5c7f60c634f7403935" dependencies = [ "num-conv", "time-core", diff --git a/Cargo.toml b/Cargo.toml index bc5be2b..166a2cd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -70,6 +70,7 @@ dom_struct = { package = "servo-dom-struct", version = "0.1.0", path = "source/c dpi = "0.1" dwrote = "0.11.5" ecdsa = "=0.17.0-rc.20" +ed25519-dalek = { version = "=3.0.0-rc.1", features = ["alloc", "pkcs8", "rand_core", "zeroize"] } 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"] } @@ -373,4 +374,5 @@ 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 = { git = "https://github.com/webbeef/iroh.git", branch = "update-curve25519-dalek" } iroh-base = { git = "https://github.com/webbeef/iroh.git", branch = "update-curve25519-dalek" } diff --git a/forkme.lock b/forkme.lock index 7e6e350..1da9f5d 100644 --- a/forkme.lock +++ b/forkme.lock @@ -1 +1 @@ -f8eb3c4d98f0bb7d0dfb5ed2ed184614cc850b40 +742167a4a53a5d5f2bf1fd9b6d83db34eae36eb5 diff --git a/patches/Cargo.lock.patch b/patches/Cargo.lock.patch index a80351c..a2a245b 100644 --- a/patches/Cargo.lock.patch +++ b/patches/Cargo.lock.patch @@ -119,7 +119,7 @@ name = "crossbeam-channel" version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -1887,6 +1958,26 @@ +@@ -1888,6 +1959,26 @@ checksum = "a4ae5f15dda3c708c0ade84bfee31ccab44a3da4f88015ed22f63732abe300c8" [[package]] @@ -146,7 +146,7 @@ name = "data-url" version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -2262,6 +2353,8 @@ +@@ -2321,6 +2412,8 @@ "pkcs8", "rand_core 0.10.1", "sec1", @@ -155,7 +155,7 @@ "subtle", "zeroize", ] -@@ -2322,6 +2415,18 @@ +@@ -2381,6 +2474,18 @@ checksum = "66b7e2430c6dff6a955451e2cfc438f09cea1965a9d6f87f7e3b90decc014099" [[package]] @@ -174,7 +174,7 @@ name = "enumflags2" version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -2691,12 +2796,21 @@ +@@ -2750,12 +2855,21 @@ [[package]] name = "foreign-types" @@ -197,7 +197,7 @@ ] [[package]] -@@ -2712,6 +2826,12 @@ +@@ -2771,6 +2885,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" -@@ -2907,6 +3027,7 @@ +@@ -2966,6 +3086,7 @@ checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" dependencies = [ "cfg-if", @@ -218,7 +218,7 @@ "libc", "wasi", ] -@@ -2918,9 +3039,11 @@ +@@ -2977,9 +3098,11 @@ checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", @@ -230,7 +230,7 @@ ] [[package]] -@@ -3569,7 +3692,7 @@ +@@ -3628,7 +3751,7 @@ "cc", "core-graphics", "core-text", @@ -239,7 +239,7 @@ "freetype-sys", "pkg-config", "winapi", -@@ -3682,6 +3805,52 @@ +@@ -3741,6 +3864,52 @@ checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df" [[package]] @@ -292,7 +292,7 @@ name = "hilog" version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -3854,6 +4023,22 @@ +@@ -3913,6 +4082,22 @@ ] [[package]] @@ -315,7 +315,7 @@ name = "hyper-util" version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -3874,6 +4059,7 @@ +@@ -3933,6 +4118,7 @@ "tokio", "tower-service", "tracing", @@ -323,7 +323,7 @@ ] [[package]] -@@ -4490,6 +4676,29 @@ +@@ -4549,6 +4735,29 @@ ] [[package]] @@ -353,7 +353,7 @@ name = "ipnet" version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -4496,6 +4705,27 @@ +@@ -4555,6 +4764,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" -@@ -4974,6 +5204,17 @@ +@@ -5034,6 +5264,17 @@ ] [[package]] @@ -399,7 +399,7 @@ name = "matchers" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -5167,6 +5408,29 @@ +@@ -5227,6 +5468,29 @@ checksum = "956787520e75e9bd233246045d19f42fb73242759cc57fba9611d940ae96d4b0" [[package]] @@ -429,7 +429,7 @@ name = "naga" version = "29.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -5250,6 +5514,23 @@ +@@ -5310,6 +5574,23 @@ ] [[package]] @@ -453,7 +453,7 @@ name = "ndk" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -5974,6 +6255,10 @@ +@@ -6034,6 +6315,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" -@@ -5994,6 +6279,18 @@ +@@ -6054,6 +6339,18 @@ checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" [[package]] @@ -483,7 +483,7 @@ name = "openxr" version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -6684,6 +6981,61 @@ +@@ -6766,6 +7063,61 @@ ] [[package]] @@ -545,7 +545,7 @@ name = "quote" version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -6971,6 +7323,56 @@ +@@ -7053,6 +7405,56 @@ checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832" [[package]] @@ -602,7 +602,7 @@ name = "resvg" version = "0.47.0" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -7143,6 +7545,7 @@ +@@ -7225,6 +7627,7 @@ "aws-lc-rs", "log", "once_cell", @@ -610,7 +610,7 @@ "rustls-pki-types", "rustls-webpki", "subtle", -@@ -7167,6 +7570,7 @@ +@@ -7249,6 +7652,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30a7197ae7eb376e574fe940d068c30fe0462554a3ddbe4eca7838e049c937a9" dependencies = [ @@ -618,7 +618,7 @@ "zeroize", ] -@@ -7457,6 +7861,18 @@ +@@ -7539,6 +7943,18 @@ ] [[package]] @@ -637,7 +637,7 @@ name = "serde_json" version = "1.0.150" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -7796,6 +8212,7 @@ +@@ -7878,6 +8294,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", -@@ -7822,6 +8239,8 @@ +@@ -7904,6 +8321,8 @@ "servo-webxr-api", "stylo", "stylo_traits", @@ -654,7 +654,7 @@ "tracing", ] -@@ -8451,9 +8870,11 @@ +@@ -8536,9 +8955,11 @@ name = "servo-net" version = "0.3.0" dependencies = [ @@ -666,7 +666,7 @@ "base64", "bytes", "chrono", -@@ -8483,6 +8904,7 @@ +@@ -8568,6 +8989,7 @@ "parking_lot", "quick_cache", "regex", @@ -674,7 +674,7 @@ "resvg", "rustc-hash 2.1.2", "rustls", -@@ -8489,9 +8911,11 @@ +@@ -8574,9 +8996,11 @@ "rustls-pki-types", "rustls-platform-verifier", "serde", @@ -686,7 +686,7 @@ "servo-devtools-traits", "servo-embedder-traits", "servo-hyper-serde", -@@ -8542,6 +8966,7 @@ +@@ -8627,6 +9051,7 @@ "rustc-hash 2.1.2", "rustls-pki-types", "serde", @@ -694,7 +694,7 @@ "servo-base", "servo-config", "servo-default-resources", -@@ -8553,8 +8978,10 @@ +@@ -8638,8 +9063,10 @@ "servo-profile-traits", "servo-url", "servo_arc", @@ -705,7 +705,7 @@ "url", "uuid", "webrender_api", -@@ -9132,6 +9559,7 @@ +@@ -9218,6 +9645,7 @@ "bpaf", "cc", "cfg-if", @@ -713,7 +713,7 @@ "crossbeam-channel", "dirs", "dpi", -@@ -9146,6 +9574,7 @@ +@@ -9232,6 +9660,7 @@ "headers", "hilog", "hitrace", @@ -721,7 +721,7 @@ "image", "ipc-channel", "jni 0.22.4", -@@ -9166,6 +9595,7 @@ +@@ -9252,6 +9681,7 @@ "ohos-window-manager-sys", "raw-window-handle", "rustls", @@ -729,7 +729,7 @@ "serde_json", "servo", "servo-allocator", -@@ -9172,6 +9602,7 @@ +@@ -9258,6 +9688,7 @@ "servo-base", "servo-webdriver-server", "signal-hook-registry", @@ -737,7 +737,7 @@ "surfman", "tokio", "tracing", -@@ -9790,6 +10221,9 @@ +@@ -9876,6 +10307,9 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" @@ -747,7 +747,7 @@ [[package]] name = "synstructure" -@@ -9824,6 +10258,27 @@ +@@ -9910,6 +10344,27 @@ ] [[package]] @@ -775,7 +775,7 @@ name = "system-deps" version = "7.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -9849,6 +10304,12 @@ +@@ -9935,6 +10390,12 @@ ] [[package]] @@ -788,7 +788,7 @@ name = "tar" version = "0.4.46" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -10167,6 +10628,16 @@ +@@ -10253,6 +10714,16 @@ ] [[package]] @@ -805,7 +805,7 @@ name = "tokio-rustls" version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -10268,6 +10739,25 @@ +@@ -10354,6 +10825,25 @@ "futures-util", "pin-project-lite", "sync_wrapper", @@ -831,7 +831,7 @@ "tower-layer", "tower-service", ] -@@ -10587,6 +11077,12 @@ +@@ -10673,6 +11163,12 @@ ] [[package]] @@ -844,7 +844,7 @@ name = "urlpattern" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -11572,6 +12068,17 @@ +@@ -11658,6 +12154,17 @@ ] [[package]] diff --git a/patches/components/script/dom/atproto.rs.patch b/patches/components/script/dom/atproto.rs.patch index 0c9d025..401b4c3 100644 --- a/patches/components/script/dom/atproto.rs.patch +++ b/patches/components/script/dom/atproto.rs.patch @@ -1,6 +1,6 @@ --- original +++ modified -@@ -0,0 +1,220 @@ +@@ -0,0 +1,216 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +use std::rc::Rc; @@ -131,7 +131,7 @@ + did: session.did.into(), + handle: session.handle.into(), + }; -+ promise.resolve_native(&dom_session, CanGc::from_cx(cx)); ++ promise.resolve_native(cx, &dom_session); + }, + AtProtoResult::CurrentSession(session) => { + println!("Current session is {session:?}"); @@ -139,15 +139,13 @@ + did: session.did.into(), + handle: session.handle.into(), + }; -+ promise.resolve_native(&dom_session, CanGc::from_cx(cx)); -+ }, -+ AtProtoResult::Logout => promise.resolve_native(&UndefinedValue(), CanGc::from_cx(cx)), -+ AtProtoResult::OriginUpdated => { -+ promise.resolve_native(&UndefinedValue(), CanGc::from_cx(cx)) ++ promise.resolve_native(cx, &dom_session); + }, ++ AtProtoResult::Logout => promise.resolve_native(cx, &UndefinedValue()), ++ AtProtoResult::OriginUpdated => promise.resolve_native(cx, &UndefinedValue()), + AtProtoResult::AuthorizedOrigins(origins) => { + let origins: Vec = origins.into_iter().map(DOMString::from).collect(); -+ promise.resolve_native(&origins, CanGc::from_cx(cx)); ++ promise.resolve_native(cx, &origins); + }, + AtProtoResult::RepoSynced { + did, @@ -163,7 +161,7 @@ + updated: updated as u32, + removed: removed as u32, + }; -+ promise.resolve_native(&result, CanGc::from_cx(cx)); ++ promise.resolve_native(cx, &result); + }, + AtProtoResult::RepoStatus { + did, @@ -175,11 +173,9 @@ + rev: rev.map(USVString::from), + recordCount: record_count, + }; -+ promise.resolve_native(&status, CanGc::from_cx(cx)); -+ }, -+ AtProtoResult::RepoCleared { .. } => { -+ promise.resolve_native(&UndefinedValue(), CanGc::from_cx(cx)) ++ promise.resolve_native(cx, &status); + }, ++ AtProtoResult::RepoCleared { .. } => promise.resolve_native(cx, &UndefinedValue()), + AtProtoResult::TextResults(refs) => { + let refs: Vec = refs + .into_iter() @@ -189,7 +185,7 @@ + rkey: rkey.into(), + }) + .collect(); -+ promise.resolve_native(&refs, CanGc::from_cx(cx)); ++ promise.resolve_native(cx, &refs); + }, + AtProtoResult::UrlResults(urls) => { + let urls: Vec = urls @@ -201,7 +197,7 @@ + rkey: rkey.into(), + }) + .collect(); -+ promise.resolve_native(&urls, CanGc::from_cx(cx)); ++ promise.resolve_native(cx, &urls); + }, + AtProtoResult::RepoBusy => promise.reject_error( + cx, diff --git a/patches/components/script/dom/contentblocker.rs.patch b/patches/components/script/dom/contentblocker.rs.patch index e213b3f..7e9f30e 100644 --- a/patches/components/script/dom/contentblocker.rs.patch +++ b/patches/components/script/dom/contentblocker.rs.patch @@ -116,7 +116,7 @@ + blockedCount: state.blocked_count, + allowedCount: state.allowed_count, + }; -+ promise.resolve_native(&dict, CanGc::from_cx(cx)); ++ promise.resolve_native(cx, &dict); + }, + Err(msg) => { + promise.reject_error(cx, Error::Operation(Some(msg))); @@ -133,7 +133,7 @@ + promise: &Rc, + ) { + match response { -+ Ok(()) => promise.resolve_native(&(), CanGc::from_cx(cx)), ++ Ok(()) => promise.resolve_native(cx, &()), + Err(msg) => promise.reject_error(cx, Error::Operation(Some(msg))), + } + } diff --git a/patches/components/script/dom/dbus.rs.patch b/patches/components/script/dom/dbus.rs.patch index 7e4a500..4668991 100644 --- a/patches/components/script/dom/dbus.rs.patch +++ b/patches/components/script/dom/dbus.rs.patch @@ -258,7 +258,7 @@ + Ok(value) => { + // TODO: turn into a JS Object instead. + // let value = serde_json::to_string(&value).unwrap_or("{}".into()); -+ promise.resolve_native(&value, CanGc::from_cx(cx)) ++ promise.resolve_native(cx, &value) + }, + Err(msg) => promise.reject_error(cx, Error::Operation(Some(msg))), + } @@ -273,7 +273,7 @@ + promise: &Rc, + ) { + match response { -+ Ok(()) => promise.resolve_native(&(), CanGc::from_cx(cx)), ++ Ok(()) => promise.resolve_native(cx, &()), + Err(msg) => promise.reject_error(cx, Error::Operation(Some(msg))), + } + } @@ -287,7 +287,7 @@ + promise: &Rc, + ) { + match response { -+ Ok(id) => promise.resolve_native(&id, CanGc::from_cx(cx)), ++ Ok(id) => promise.resolve_native(cx, &id), + Err(msg) => promise.reject_error(cx, Error::Operation(Some(msg))), + } + } diff --git a/patches/components/script/dom/document/document.rs.patch b/patches/components/script/dom/document/document.rs.patch index 03cf55b..f239cc3 100644 --- a/patches/components/script/dom/document/document.rs.patch +++ b/patches/components/script/dom/document/document.rs.patch @@ -34,10 +34,10 @@ /// All websockets created that are associated with this document. websockets: DOMTracker, -@@ -664,6 +670,11 @@ - - /// Data necessary for maintaining the accessibility tree. - accessibility_data: DomRefCell, +@@ -669,6 +675,11 @@ + iframe_load_in_progress: Cell, + /// + mute_iframe_load: Cell, + + /// Whether spatial navigation is enabled for this document. + /// When enabled, arrow keys move focus to the nearest focusable element @@ -46,7 +46,7 @@ } impl Document { -@@ -889,6 +900,12 @@ +@@ -894,6 +905,12 @@ // Set the document's activity level, reflow if necessary, and suspend or resume timers. self.activity.set(activity); @@ -59,15 +59,15 @@ let media = ServoMedia::get(); let pipeline_id = self.window().pipeline_id(); let client_context_id = -@@ -902,6 +919,7 @@ +@@ -907,6 +924,7 @@ self.title_changed(); self.notify_embedder_favicon(); + self.notify_embedder_theme_color(); self.dirty_all_nodes(); - self.window().resume(CanGc::from_cx(cx)); + self.window().resume(cx); media.resume(&client_context_id); -@@ -1285,6 +1303,9 @@ +@@ -1290,6 +1308,9 @@ LoadStatus::Started, )); self.send_to_embedder(EmbedderMsg::Status(self.webview_id(), None)); @@ -77,7 +77,7 @@ } }, DocumentReadyState::Complete => { -@@ -1293,6 +1314,9 @@ +@@ -1298,6 +1319,9 @@ self.webview_id(), LoadStatus::Complete, )); @@ -87,7 +87,7 @@ } update_with_current_instant(&self.navigation_timing.dom_complete); }, -@@ -1373,7 +1397,13 @@ +@@ -1378,7 +1402,13 @@ let window = self.window(); if window.is_top_level() { let title = self.title().map(String::from); @@ -102,7 +102,7 @@ } } -@@ -1382,6 +1412,18 @@ +@@ -1387,6 +1417,18 @@ window.send_to_embedder(msg); } @@ -121,7 +121,7 @@ pub(crate) fn dirty_all_nodes(&self) { let root = match self.GetDocumentElement() { Some(root) => root, -@@ -2954,9 +2996,59 @@ +@@ -2959,9 +3001,59 @@ current_rendering_epoch, ); @@ -181,7 +181,7 @@ pub(crate) fn handle_no_longer_waiting_on_asynchronous_image_updates(&self) { self.waiting_on_canvas_image_updates.set(false); } -@@ -3667,6 +3759,7 @@ +@@ -3672,6 +3764,7 @@ active_sandboxing_flag_set: Cell::new(creation_sandboxing_flag_set), creation_sandboxing_flag_set: Cell::new(creation_sandboxing_flag_set), favicon: RefCell::new(None), @@ -189,15 +189,15 @@ websockets: DOMTracker::new(), details_name_groups: Default::default(), protocol_handler_automation_mode: Default::default(), -@@ -3676,6 +3769,7 @@ - default_single_line_container_name: Default::default(), - css_styling_flag: Default::default(), +@@ -3683,6 +3776,7 @@ accessibility_data: Default::default(), + iframe_load_in_progress: Default::default(), + mute_iframe_load: Default::default(), + spatial_navigation_enabled: Cell::new(false), } } -@@ -4715,6 +4809,36 @@ +@@ -4722,6 +4816,36 @@ pub(crate) fn notify_embedder_favicon(&self) { if let Some(ref image) = *self.favicon.borrow() { @@ -234,9 +234,9 @@ self.send_to_embedder(EmbedderMsg::NewFavicon(self.webview_id(), image.clone())); } } -@@ -4785,6 +4909,30 @@ - pub(crate) fn set_css_styling_flag(&self, value: bool) { - self.css_styling_flag.set(value) +@@ -4800,6 +4924,30 @@ + pub(crate) fn set_iframe_load_in_progress(&self, value: bool) { + self.iframe_load_in_progress.set(value) } + + /// Whether spatial navigation is enabled for this document. diff --git a/patches/components/script/dom/globalscope.rs.patch b/patches/components/script/dom/globalscope/globalscope.rs.patch similarity index 96% rename from patches/components/script/dom/globalscope.rs.patch rename to patches/components/script/dom/globalscope/globalscope.rs.patch index 89212f7..be3e92b 100644 --- a/patches/components/script/dom/globalscope.rs.patch +++ b/patches/components/script/dom/globalscope/globalscope.rs.patch @@ -1,6 +1,6 @@ --- original +++ modified -@@ -372,6 +372,16 @@ +@@ -371,6 +371,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, -@@ -805,6 +815,8 @@ +@@ -804,6 +814,8 @@ #[cfg(feature = "webgpu")] gpu_id_hub: Arc, inherited_secure_context: Option, unminify_js: bool, @@ -26,7 +26,7 @@ font_context: Option>, ) -> Self { Self { -@@ -847,6 +859,8 @@ +@@ -846,6 +858,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(), -@@ -1176,6 +1190,25 @@ +@@ -1175,6 +1189,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) = -@@ -3180,6 +3213,16 @@ +@@ -3179,6 +3212,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 b8a0696..f8663af 100644 --- a/patches/components/script/dom/html/htmlembeddedwebview.rs.patch +++ b/patches/components/script/dom/html/htmlembeddedwebview.rs.patch @@ -1103,7 +1103,7 @@ + let global = self.owner_global(); + let blob_impl = BlobImpl::new_from_bytes(result.bytes, result.mime_type); + let blob = Blob::new(cx, &global, blob_impl); -+ promise.resolve_native(&blob, CanGc::from_cx(cx)); ++ promise.resolve_native(cx, &blob); + }, + Err(error) => { + let error_msg = match error { diff --git a/patches/components/script/dom/html/htmliframeelement.rs.patch b/patches/components/script/dom/html/htmliframeelement.rs.patch index 675c037..88551fe 100644 --- a/patches/components/script/dom/html/htmliframeelement.rs.patch +++ b/patches/components/script/dom/html/htmliframeelement.rs.patch @@ -429,7 +429,7 @@ #[inline] pub(crate) fn sandboxing_flag_set(&self) -> SandboxingFlagSet { self.sandboxing_flag_set -@@ -1086,6 +1423,101 @@ +@@ -1102,6 +1439,101 @@ // https://html.spec.whatwg.org/multipage/#dom-iframe-longdesc make_url_setter!(cx, SetLongDesc, "longdesc"); @@ -531,7 +531,7 @@ } impl VirtualMethods for HTMLIFrameElement { -@@ -1141,9 +1573,54 @@ +@@ -1157,9 +1589,54 @@ // may be in a different script thread. Instead, we check to see if the parent // is in a document tree and has a browsing context, which is what causes // the child browsing context to be created. @@ -588,7 +588,7 @@ } }, local_name!("loading") => { -@@ -1208,6 +1685,23 @@ +@@ -1224,6 +1701,23 @@ debug!("