diff --git a/Cargo.lock b/Cargo.lock index 433a3be..1d3181d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -276,7 +276,7 @@ dependencies = [ "ndk-context", "ndk-sys", "num_enum", - "thiserror 2.0.18", + "thiserror 2.0.19", ] [[package]] @@ -352,9 +352,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.103" +version = "1.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a4385e2e34eb35d6b3efe798b9eb88096925d87726c0798709bf56d9ed84af3" +checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" [[package]] name = "app_units" @@ -488,13 +488,13 @@ dependencies = [ [[package]] name = "async-trait" -version = "0.1.89" +version = "0.1.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" +checksum = "ae36dc4177970ef04fde5178d3e2429882def40e57a451f919c098f72baa6cec" dependencies = [ "proc-macro2", "quote", - "syn 2.0.119", + "syn 3.0.0", ] [[package]] @@ -586,7 +586,7 @@ dependencies = [ "serde_bytes", "sha2 0.11.0", "tempfile", - "thiserror 2.0.18", + "thiserror 2.0.19", "tokio", "tracing", "url", @@ -619,7 +619,7 @@ dependencies = [ "serde", "serde_json", "sha2 0.11.0", - "thiserror 2.0.18", + "thiserror 2.0.19", "tokio", "tracing", "url", @@ -658,7 +658,7 @@ dependencies = [ "num-traits", "pastey 0.1.1", "rayon", - "thiserror 2.0.18", + "thiserror 2.0.19", "v_frame", "y4m", ] @@ -803,7 +803,7 @@ dependencies = [ "postcard", "rand 0.9.5", "serde", - "thiserror 2.0.18", + "thiserror 2.0.19", "tokio", ] @@ -1008,7 +1008,7 @@ dependencies = [ "log", "serde", "serde-xml-rs", - "thiserror 2.0.18", + "thiserror 2.0.19", "tokio", "uuid", ] @@ -1071,7 +1071,7 @@ dependencies = [ "objc2-foundation 0.2.2", "once_cell", "static_assertions", - "thiserror 2.0.18", + "thiserror 2.0.19", "tokio", "tokio-stream", "uuid", @@ -1239,9 +1239,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.67" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17dd265a7d0f31ef544e1b20e03add05d3b45b491b633b10d67145d2acc1a38" +checksum = "c89588d05638b5b4594a3348a2d6c20277e43a7f5c5202b05cc56888475a47b8" dependencies = [ "find-msvc-tools", "jobserver", @@ -1508,7 +1508,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fa961b519f0b462e3a3b4a34b64d119eeaca1d59af726fe450bbba07a9fc0a1" dependencies = [ - "thiserror 2.0.18", + "thiserror 2.0.19", ] [[package]] @@ -2163,7 +2163,7 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "10d60334b3b2e7c9d91ef8150abfb6fa4c1c39ebbcf4a81c2e346aad939fee3e" dependencies = [ - "thiserror 2.0.18", + "thiserror 2.0.19", ] [[package]] @@ -2790,9 +2790,9 @@ checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" [[package]] name = "fastrand" -version = "2.4.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" +checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223" [[package]] name = "fax" @@ -3057,9 +3057,9 @@ checksum = "7ab85b9b05e3978cc9a9cf8fea7f01b494e1a09ed3037e16ba39edc7a29eb61a" [[package]] name = "futures" -version = "0.3.32" +version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d" +checksum = "a88cf1f829d945f548cf8fec32c61b1f202b6d93b45848602fc02af4b12ad218" dependencies = [ "futures-channel", "futures-core", @@ -3085,9 +3085,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.32" +version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" +checksum = "262590f4fe6afeb0bc83be1daa64e52657fe185690a958af7f3ad0e92085c5ae" dependencies = [ "futures-core", "futures-sink", @@ -3095,15 +3095,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.32" +version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" +checksum = "2cd50c473c80f6d7c3670a752354b8e569b1a7cbfdc0419ec88e5edad85e0dc7" [[package]] name = "futures-executor" -version = "0.3.32" +version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" +checksum = "6754879cc9f2c66f88c6e5c35344bb0bdb0708b0352b1201815667c7eabc7458" dependencies = [ "futures-core", "futures-task", @@ -3123,9 +3123,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.32" +version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" +checksum = "4577ecaa3c4f96589d473f679a71b596316f6641bc350038b962a5daf0085d7a" [[package]] name = "futures-lite" @@ -3142,9 +3142,9 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.32" +version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" +checksum = "2d6d3cde68c518367be28956066ddfef33813991b77a55005a69dae04bf3b10b" dependencies = [ "proc-macro2", "quote", @@ -3153,21 +3153,21 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.32" +version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" +checksum = "e34418ac499d6305c2fb5ad0ed2f6ac998c5f8ca209b4510f7f94242c647e307" [[package]] name = "futures-task" -version = "0.3.32" +version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" +checksum = "b231ed28831efb4a61a08580c4bc233ec56bc009f4cd8f52da2c3cb97df0c109" [[package]] name = "futures-util" -version = "0.3.32" +version = "0.3.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" +checksum = "a77a90a256fce34da66415271e30f94ee91c57b04b8a2c042d9cf3220179deaa" dependencies = [ "futures-channel", "futures-core", @@ -3547,7 +3547,7 @@ dependencies = [ "objc2 0.6.4", "objc2-app-kit 0.3.2", "once_cell", - "thiserror 2.0.18", + "thiserror 2.0.19", "windows-sys 0.59.0", "x11rb", "xkeysym", @@ -3627,7 +3627,7 @@ dependencies = [ "hashbrown 0.16.1", "log", "presser", - "thiserror 2.0.18", + "thiserror 2.0.19", "windows 0.62.2", ] @@ -3701,7 +3701,7 @@ dependencies = [ "pastey 0.2.3", "pin-project-lite", "smallvec", - "thiserror 2.0.18", + "thiserror 2.0.19", ] [[package]] @@ -3968,7 +3968,7 @@ dependencies = [ "gstreamer-base", "gstreamer-video-sys", "libc", - "thiserror 2.0.18", + "thiserror 2.0.19", ] [[package]] @@ -4317,7 +4317,7 @@ dependencies = [ "jni 0.22.4", "rand 0.10.2", "rustls", - "thiserror 2.0.18", + "thiserror 2.0.19", "tinyvec", "tokio", "tokio-rustls", @@ -4343,7 +4343,7 @@ dependencies = [ "once_cell", "rand 0.9.5", "ring", - "thiserror 2.0.18", + "thiserror 2.0.19", "tinyvec", "tokio", "tracing", @@ -4364,7 +4364,7 @@ dependencies = [ "prefix-trie", "rand 0.10.2", "ring", - "thiserror 2.0.18", + "thiserror 2.0.19", "tinyvec", "tracing", "url", @@ -4386,7 +4386,7 @@ dependencies = [ "rand 0.9.5", "resolv-conf", "smallvec", - "thiserror 2.0.18", + "thiserror 2.0.19", "tokio", "tracing", ] @@ -4413,7 +4413,7 @@ dependencies = [ "rustls", "smallvec", "system-configuration", - "thiserror 2.0.18", + "thiserror 2.0.19", "tokio", "tokio-rustls", "tracing", @@ -5364,7 +5364,7 @@ dependencies = [ "rustc-hash 2.1.3", "serde_core", "tempfile", - "thiserror 2.0.18", + "thiserror 2.0.19", "uuid", "windows 0.61.3", ] @@ -5670,11 +5670,12 @@ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "jiff" -version = "0.2.32" +version = "0.2.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "961d16382652bfdd8c6f68b223b26a8c93e0d475c672f414411db31c6c5c900e" +checksum = "dc43d6fb25860892c78ef7ce2ffed572087a6853ecb60f587f499329717ed7da" dependencies = [ "defmt", + "jiff-core", "jiff-static", "log", "portable-atomic", @@ -5682,12 +5683,22 @@ dependencies = [ "serde_core", ] +[[package]] +name = "jiff-core" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7feca88439efe53da3754500c1851dedf3cb36c524dd5cf8225cc0794de95d09" +dependencies = [ + "defmt", +] + [[package]] name = "jiff-static" -version = "0.2.32" +version = "0.2.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0879bd39df99c4c5e2c6615ccc026391a423dde10532c573e6086eb94a802cc" +checksum = "96fb828bff41eeb269a9665f950cb359e8018f7288b8f34db24937ff54ed8fc5" dependencies = [ + "jiff-core", "proc-macro2", "quote", "syn 2.0.119", @@ -5735,7 +5746,7 @@ dependencies = [ "jni-sys 0.4.1", "log", "simd_cesu8", - "thiserror 2.0.18", + "thiserror 2.0.19", "walkdir", "windows-link 0.2.1", ] @@ -6451,7 +6462,7 @@ dependencies = [ "objc2-foundation 0.3.2", "once_cell", "png 0.17.16", - "thiserror 2.0.18", + "thiserror 2.0.19", "windows-sys 0.60.2", ] @@ -6559,7 +6570,7 @@ dependencies = [ "once_cell", "rustc-hash 1.1.0", "spirv", - "thiserror 2.0.18", + "thiserror 2.0.19", "unicode-ident", ] @@ -6585,7 +6596,7 @@ dependencies = [ "once_cell", "rustc-hash 1.1.0", "spirv", - "thiserror 2.0.18", + "thiserror 2.0.19", "unicode-ident", ] @@ -6599,7 +6610,7 @@ dependencies = [ "indexmap", "rustc-hash 1.1.0", "serde", - "thiserror 2.0.18", + "thiserror 2.0.19", ] [[package]] @@ -6691,7 +6702,7 @@ dependencies = [ "log", "netlink-packet-core", "netlink-sys", - "thiserror 2.0.18", + "thiserror 2.0.19", ] [[package]] @@ -6808,7 +6819,7 @@ dependencies = [ "itertools 0.14.0", "nom 8.0.0", "nom-language", - "thiserror 2.0.18", + "thiserror 2.0.19", ] [[package]] @@ -6832,7 +6843,7 @@ dependencies = [ "rustc-hash 2.1.3", "rustls", "socket2 0.6.5", - "thiserror 2.0.18", + "thiserror 2.0.19", "tokio", "tokio-stream", "tracing", @@ -6861,7 +6872,7 @@ dependencies = [ "rustls-pki-types", "slab", "sorted-index-buffer", - "thiserror 2.0.18", + "thiserror 2.0.19", "tinyvec", "tracing", "web-time", @@ -8372,9 +8383,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.106" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" dependencies = [ "unicode-ident", ] @@ -8525,7 +8536,7 @@ dependencies = [ "rustc-hash 2.1.3", "rustls", "socket2 0.6.5", - "thiserror 2.0.18", + "thiserror 2.0.19", "tokio", "tracing", "web-time", @@ -8547,7 +8558,7 @@ dependencies = [ "rustls", "rustls-pki-types", "slab", - "thiserror 2.0.18", + "thiserror 2.0.19", "tinyvec", "tracing", "web-time", @@ -8569,9 +8580,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.46" +version = "1.0.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" dependencies = [ "proc-macro2", ] @@ -8709,7 +8720,7 @@ dependencies = [ "rand 0.9.5", "rand_chacha 0.9.0", "simd_helpers", - "thiserror 2.0.18", + "thiserror 2.0.19", "v_frame", "wasm-bindgen", ] @@ -8838,7 +8849,7 @@ checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" dependencies = [ "getrandom 0.2.17", "libredox", - "thiserror 2.0.18", + "thiserror 2.0.19", ] [[package]] @@ -9104,7 +9115,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c51c9ae4df8a7fba42103df5c621fa3c37eccf3a3c650879e90fc48b11cc192c" dependencies = [ "hashbrown 0.16.1", - "thiserror 2.0.18", + "thiserror 2.0.19", ] [[package]] @@ -9366,7 +9377,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.119", - "thiserror 2.0.18", + "thiserror 2.0.19", ] [[package]] @@ -9487,9 +9498,9 @@ checksum = "1bc711410fbe7399f390ca1c3b60ad0f53f80e95c5eb935e52268a0e2cd49acc" [[package]] name = "serde" -version = "1.0.228" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" dependencies = [ "serde_core", "serde_derive", @@ -9503,7 +9514,7 @@ checksum = "cc2215ce3e6a77550b80a1c37251b7d294febaf42e36e21b7b411e0bf54d540d" dependencies = [ "log", "serde", - "thiserror 2.0.18", + "thiserror 2.0.19", "xml", ] @@ -9519,22 +9530,22 @@ dependencies = [ [[package]] name = "serde_core" -version = "1.0.228" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.228" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" dependencies = [ "proc-macro2", "quote", - "syn 2.0.119", + "syn 3.0.0", ] [[package]] @@ -10815,6 +10826,7 @@ dependencies = [ "cshake", "cssparser", "ctr 0.10.1", + "ctutils", "data-url", "ecdsa 0.17.0", "ed25519-dalek 3.0.0", @@ -10886,7 +10898,6 @@ dependencies = [ "servo-media", "servo-media-thread", "servo-metrics", - "servo-net", "servo-net-traits", "servo-paint-api", "servo-pixels", @@ -10899,6 +10910,7 @@ dependencies = [ "servo-tracing", "servo-url", "servo-webgpu-traits", + "servo-webvtt", "servo-webxr-api", "servo-xpath", "servo_arc", @@ -11192,6 +11204,16 @@ dependencies = [ "wgpu-types 30.0.0", ] +[[package]] +name = "servo-webvtt" +version = "0.4.0" +dependencies = [ + "html5ever", + "markup5ever", + "regex", + "servo-webvtt", +] + [[package]] name = "servo-webxr" version = "0.4.0" @@ -11978,7 +12000,7 @@ dependencies = [ "hickory-proto 0.26.1", "rand 0.10.2", "socket2 0.6.5", - "thiserror 2.0.18", + "thiserror 2.0.19", "tokio", "tracing", ] @@ -12004,6 +12026,17 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2fac314a64dc9a36e61a9eb4261a5e9bbfbc922b27e518af97bc32b926cf967" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + [[package]] name = "sync_wrapper" version = "1.0.2" @@ -12202,11 +12235,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.18" +version = "2.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" +checksum = "09a43598840e33d5b0331f38c5e30d13bb11c11210a4b58f0d9b18a5a5eefcd9" dependencies = [ - "thiserror-impl 2.0.18", + "thiserror-impl 2.0.19", ] [[package]] @@ -12222,13 +12255,13 @@ dependencies = [ [[package]] name = "thiserror-impl" -version = "2.0.18" +version = "2.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" +checksum = "43cbfe0cf76104d42a574802844187e84a305e531ed54455f11fbde0f10541cd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.119", + "syn 3.0.0", ] [[package]] @@ -12774,7 +12807,7 @@ dependencies = [ "objc2-foundation 0.3.2", "once_cell", "png 0.18.1", - "thiserror 2.0.18", + "thiserror 2.0.19", "windows-sys 0.61.2", ] @@ -12808,7 +12841,7 @@ dependencies = [ "rustls", "rustls-pki-types", "sha1 0.10.7", - "thiserror 2.0.18", + "thiserror 2.0.19", ] [[package]] @@ -13065,7 +13098,7 @@ dependencies = [ "png 0.18.1", "skrifa 0.42.1", "static_assertions", - "thiserror 2.0.18", + "thiserror 2.0.19", "vello_encoding", "vello_shaders", "wgpu", @@ -13085,7 +13118,7 @@ dependencies = [ "peniko", "png 0.18.1", "smallvec", - "thiserror 2.0.18", + "thiserror 2.0.19", ] [[package]] @@ -13127,7 +13160,7 @@ dependencies = [ "bytemuck", "log", "naga 29.0.4", - "thiserror 2.0.18", + "thiserror 2.0.19", "vello_encoding", ] @@ -13510,18 +13543,18 @@ dependencies = [ [[package]] name = "webpki-root-certs" -version = "1.0.8" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d46a5a140e6f7afeccd8eae97eff335163939eac8b929834875168b29b3d267" +checksum = "b96554aa2acc8ccdb7e1c9a58a7a68dd5d13bccc69cd124cb09406db612a1c9b" dependencies = [ "rustls-pki-types", ] [[package]] name = "webpki-roots" -version = "1.0.8" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf85cb06032201fa7c6f829d7db5a7e5aa45bcc0655327713065f6f0576731bf" +checksum = "7dcd9d09a39985f5344844e66b0c530a33843579125f23e21e9f0f220850f22a" dependencies = [ "rustls-pki-types", ] @@ -13653,7 +13686,7 @@ dependencies = [ "raw-window-handle", "rustc-hash 1.1.0", "smallvec", - "thiserror 2.0.18", + "thiserror 2.0.19", "wgpu-core-deps-apple 29.0.4", "wgpu-core-deps-emscripten 29.0.4", "wgpu-core-deps-windows-linux-android 29.0.4", @@ -13688,7 +13721,7 @@ dependencies = [ "rustc-hash 1.1.0", "serde", "smallvec", - "thiserror 2.0.18", + "thiserror 2.0.19", "wgpu-core-deps-apple 30.0.0", "wgpu-core-deps-emscripten 30.0.0", "wgpu-core-deps-windows-linux-android 30.0.0", @@ -13794,7 +13827,7 @@ dependencies = [ "raw-window-metal", "renderdoc-sys", "smallvec", - "thiserror 2.0.18", + "thiserror 2.0.19", "wasm-bindgen", "wayland-sys", "web-sys", @@ -13847,7 +13880,7 @@ dependencies = [ "raw-window-metal", "smallvec", "static_assertions", - "thiserror 2.0.18", + "thiserror 2.0.19", "wasm-bindgen", "wayland-sys", "web-sys", @@ -14482,7 +14515,7 @@ dependencies = [ "futures", "log", "serde", - "thiserror 2.0.18", + "thiserror 2.0.19", "windows 0.62.2", "windows-core 0.62.2", ] @@ -14568,7 +14601,7 @@ dependencies = [ "pharos", "rustc_version", "send_wrapper", - "thiserror 2.0.18", + "thiserror 2.0.19", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", diff --git a/Cargo.toml b/Cargo.toml index 198fed5..1ee5319 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -57,10 +57,11 @@ content-security-policy = { version = "0.8.0", features = ["serde"] } cookie = { package = "cookie", version = "0.18" } criterion = "0.5" crossbeam-channel = "0.5" +crypto-bigint = "0.7" cssparser = { version = "0.37", features = ["serde"] } cshake = "0.2" ctr = { version = "0.10", features = ["zeroize"] } -crypto-bigint = "0.7" +ctutils = "0.4" data-url = "0.3" deny_public_fields = { package = "servo-deny-public-fields", version = "0.4.0", path = "source/components/deny_public_fields" } der = { version = "0.7", features = ["alloc", "derive"] } @@ -260,6 +261,7 @@ servo-media-streams = { version = "0.4.0", path = "source/components/media/strea servo-media-traits = { version = "0.4.0", path = "source/components/media/traits" } servo-media-webrtc = { version = "0.4.0", path = "source/components/media/webrtc" } servo-wakelock = { version = "0.4.0", path = "source/components/wakelock" } +servo-webvtt = { version = "0.4.0", path = "source/components/webvtt" } servo_allocator = { package = "servo-allocator", version = "0.4.0", path = "source/components/allocator" } servo-tracing = { path = "source/components/servo_tracing" } servo_arc = { git = "https://github.com/servo/stylo", rev = "d3de91cbac7bba38e159239b3c0a360783fce2ee" } diff --git a/forkme.lock b/forkme.lock index 2c0d9bf..5bf7c47 100644 --- a/forkme.lock +++ b/forkme.lock @@ -1 +1 @@ -9b3212e0a9edda00bccf5b6e0698e142d6137a72 +21528287db35548240866311bee6df9c253f33e6 diff --git a/patches/Cargo.lock.patch b/patches/Cargo.lock.patch index 4190ef2..b585749 100644 --- a/patches/Cargo.lock.patch +++ b/patches/Cargo.lock.patch @@ -696,7 +696,7 @@ "url", "uuid", "webrender_api", -@@ -9367,6 +9794,7 @@ +@@ -9378,6 +9805,7 @@ "bpaf", "cc", "cfg-if", @@ -704,7 +704,7 @@ "crossbeam-channel", "dirs", "dpi", -@@ -9381,6 +9809,7 @@ +@@ -9392,6 +9820,7 @@ "headers", "hilog", "hitrace", @@ -712,7 +712,7 @@ "image", "ipc-channel", "jni 0.22.4", -@@ -9401,6 +9830,7 @@ +@@ -9412,6 +9841,7 @@ "ohos-window-manager-sys", "raw-window-handle", "rustls", @@ -720,7 +720,7 @@ "serde_json", "servo", "servo-allocator", -@@ -9407,6 +9837,7 @@ +@@ -9418,6 +9848,7 @@ "servo-base", "servo-webdriver-server", "signal-hook-registry", @@ -728,7 +728,7 @@ "surfman", "tokio", "tracing", -@@ -10053,6 +10484,9 @@ +@@ -10064,6 +10495,9 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" @@ -738,7 +738,7 @@ [[package]] name = "synstructure" -@@ -10087,6 +10521,27 @@ +@@ -10098,6 +10532,27 @@ ] [[package]] @@ -766,7 +766,7 @@ name = "system-deps" version = "7.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -10112,6 +10567,12 @@ +@@ -10123,6 +10578,12 @@ ] [[package]] @@ -779,7 +779,7 @@ name = "tar" version = "0.4.46" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -10429,6 +10890,16 @@ +@@ -10440,6 +10901,16 @@ ] [[package]] @@ -796,7 +796,7 @@ name = "tokio-rustls" version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -10530,11 +11001,30 @@ +@@ -10541,11 +11012,30 @@ "futures-util", "pin-project-lite", "sync_wrapper", @@ -827,7 +827,7 @@ name = "tower-layer" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -10849,6 +11339,12 @@ +@@ -10860,6 +11350,12 @@ ] [[package]] @@ -840,7 +840,7 @@ name = "urlpattern" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -@@ -11971,6 +12467,17 @@ +@@ -11982,6 +12478,17 @@ ] [[package]] diff --git a/patches/components/layout/layout_impl.rs.patch b/patches/components/layout/layout_impl.rs.patch index 93b5119..491079e 100644 --- a/patches/components/layout/layout_impl.rs.patch +++ b/patches/components/layout/layout_impl.rs.patch @@ -42,7 +42,7 @@ } device.set_viewport_size(viewport_details.size); -@@ -826,6 +843,7 @@ +@@ -824,6 +841,7 @@ needs_accessibility_update: Cell::new(false), web_font_finished_loading_callback: Arc::new(web_font_finished_loading_callback) as StylesheetWebFontLoadFinishedCallback, diff --git a/patches/components/script/dom/document/document.rs.patch b/patches/components/script/dom/document/document.rs.patch index 874b05e..1a5d03e 100644 --- a/patches/components/script/dom/document/document.rs.patch +++ b/patches/components/script/dom/document/document.rs.patch @@ -138,7 +138,7 @@ pub(crate) fn dirty_all_nodes(&self, no_gc: &NoGC) { let root = match self.GetDocumentElement() { Some(root) => root, -@@ -2900,6 +2945,17 @@ +@@ -2899,6 +2944,17 @@ self.iframes.borrow_mut() } @@ -156,7 +156,7 @@ pub(crate) fn set_navigation_start(&self, navigation_start: CrossProcessInstant) { self.interactive_time .borrow_mut() -@@ -3752,6 +3808,7 @@ +@@ -3751,6 +3807,7 @@ anchors: Default::default(), applets: Default::default(), iframes: RefCell::new(IFrameCollection::new()), @@ -164,7 +164,7 @@ shared_style_locks, stylesheets: DomRefCell::new(DocumentStylesheetSet::new()), stylesheet_list: MutNullableDom::new(None), -@@ -3832,6 +3889,7 @@ +@@ -3831,6 +3888,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), @@ -172,7 +172,7 @@ websockets: DOMTracker::new(), details_name_groups: Default::default(), protocol_handler_automation_mode: Default::default(), -@@ -3852,6 +3910,7 @@ +@@ -3851,6 +3909,7 @@ )), image_cache, history: Default::default(), @@ -180,7 +180,7 @@ } } -@@ -4872,6 +4931,36 @@ +@@ -4875,6 +4934,36 @@ pub(crate) fn notify_embedder_favicon(&self) { if let Some(ref image) = *self.favicon.borrow() { @@ -217,7 +217,7 @@ self.send_to_embedder(EmbedderMsg::NewFavicon(self.webview_id(), image.clone())); } } -@@ -4950,6 +5039,30 @@ +@@ -4953,6 +5042,30 @@ pub(crate) fn set_iframe_load_in_progress(&self, value: bool) { self.iframe_load_in_progress.set(value) } diff --git a/patches/components/script/dom/document/document_embedder_controls.rs.patch b/patches/components/script/dom/document/document_embedder_controls.rs.patch index 8ae467c..1e54b07 100644 --- a/patches/components/script/dom/document/document_embedder_controls.rs.patch +++ b/patches/components/script/dom/document/document_embedder_controls.rs.patch @@ -38,15 +38,15 @@ }; use crate::messaging::MainThreadScriptMsg; use crate::navigation::navigate; -@@ -48,6 +51,7 @@ - FileInput(DomRoot), - Ime(DomRoot), +@@ -49,6 +52,7 @@ + FileInput(Dom), + Ime(Dom), ContextMenu(ContextMenuNodes), + PermissionPrompt(DomRoot), } impl ControlElement { -@@ -58,6 +62,7 @@ +@@ -59,6 +63,7 @@ ControlElement::FileInput(element) => element.upcast::(), ControlElement::Ime(element) => element.upcast::(), ControlElement::ContextMenu(context_menu_nodes) => &context_menu_nodes.node, @@ -54,7 +54,7 @@ } } } -@@ -130,36 +135,74 @@ +@@ -144,36 +149,74 @@ EmbedderControlRequest::SelectElement(..) | EmbedderControlRequest::ColorPicker(..) | EmbedderControlRequest::InputMethod(..) | @@ -156,8 +156,8 @@ + } }, } - -@@ -178,12 +221,67 @@ + } +@@ -190,12 +233,67 @@ pipeline_id: self.window.pipeline_id(), index: index.0, }; @@ -227,7 +227,7 @@ pub(crate) fn handle_embedder_control_response( &self, cx: &mut JSContext, -@@ -227,6 +325,10 @@ +@@ -241,6 +339,10 @@ ) => { context_menu_nodes.handle_context_menu_action(action, cx); }, @@ -238,7 +238,7 @@ (_, _) => unreachable!( "The response to a form control should always match it's originating type." ), -@@ -233,6 +335,36 @@ +@@ -247,6 +349,36 @@ } } @@ -275,7 +275,7 @@ pub(crate) fn show_context_menu(&self, hit_test_result: &HitTestResult) { { let mut visible_elements = self.visible_elements.borrow_mut(); -@@ -429,6 +561,7 @@ +@@ -442,6 +574,7 @@ cx, "_blank".into(), true, /* nooopener */ diff --git a/patches/components/script/dom/event/eventtarget.rs.patch b/patches/components/script/dom/event/eventtarget.rs.patch index f853a2a..b75214e 100644 --- a/patches/components/script/dom/event/eventtarget.rs.patch +++ b/patches/components/script/dom/event/eventtarget.rs.patch @@ -1,6 +1,6 @@ --- original +++ modified -@@ -31,6 +31,7 @@ +@@ -32,6 +32,7 @@ use crate::conversions::Convert; use crate::dom::abortsignal::{AbortAlgorithm, RemovableDomEventListener}; @@ -8,7 +8,7 @@ use crate::dom::beforeunloadevent::BeforeUnloadEvent; use crate::dom::bindings::callback::{CallbackContainer, CallbackFunction, ExceptionHandling}; use crate::dom::bindings::codegen::Bindings::BeforeUnloadEventBinding::BeforeUnloadEventMethods; -@@ -435,6 +436,13 @@ +@@ -436,6 +437,13 @@ if self.is::() && *ty == atom!("storage") { return Some(ConstellationInterest::StorageEvent); } diff --git a/patches/components/script/dom/globalscope/globalscope.rs.patch b/patches/components/script/dom/globalscope/globalscope.rs.patch index 5d7f4bf..33e8997 100644 --- a/patches/components/script/dom/globalscope/globalscope.rs.patch +++ b/patches/components/script/dom/globalscope/globalscope.rs.patch @@ -1,6 +1,6 @@ --- original +++ modified -@@ -357,6 +357,16 @@ +@@ -358,6 +358,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, -@@ -788,6 +798,8 @@ +@@ -789,6 +799,8 @@ #[cfg(feature = "webgpu")] gpu_id_hub: Arc, inherited_secure_context: Option, unminify_js: bool, @@ -26,7 +26,7 @@ font_context: Option>, ) -> Self { Self { -@@ -825,6 +837,8 @@ +@@ -826,6 +838,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(), -@@ -1167,6 +1181,25 @@ +@@ -1168,6 +1182,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) = -@@ -3178,6 +3211,16 @@ +@@ -3183,6 +3216,16 @@ self.inherited_secure_context } diff --git a/patches/components/script/dom/window/window.rs.patch b/patches/components/script/dom/window/window.rs.patch index 8fa3011..924d6a8 100644 --- a/patches/components/script/dom/window/window.rs.patch +++ b/patches/components/script/dom/window/window.rs.patch @@ -41,7 +41,7 @@ use crate::dom::location::Location; use crate::dom::medialist::MediaList; use crate::dom::mediaquerylist::{MediaQueryList, MediaQueryListMatchState}; -@@ -1192,12 +1197,22 @@ +@@ -1198,12 +1203,22 @@ let (sender, receiver) = ProfiledGenericChannel::channel(self.global().time_profiler_chan().clone()).unwrap(); @@ -65,7 +65,7 @@ receiver.recv().unwrap_or_else(|_| { // If the receiver is closed, we assume the dialog was cancelled. debug!("Alert dialog was cancelled or failed to show."); -@@ -1225,13 +1240,22 @@ +@@ -1231,13 +1246,22 @@ // the user to respond with a positive or negative response. let (sender, receiver) = ProfiledGenericChannel::channel(self.global().time_profiler_chan().clone()).unwrap(); @@ -89,7 +89,7 @@ // Step 5: Let userPromptHandler be WebDriver BiDi user prompt opened with this, // "confirm", and message. // -@@ -1276,6 +1300,7 @@ +@@ -1282,6 +1306,7 @@ // defaulted to the value given by default. let (sender, receiver) = ProfiledGenericChannel::channel(self.global().time_profiler_chan().clone()).unwrap(); @@ -97,7 +97,7 @@ let dialog = SimpleDialogRequest::Prompt { id: self.Document().embedder_controls().next_control_id(), message: String::from(message), -@@ -1282,8 +1307,16 @@ +@@ -1288,8 +1313,16 @@ default: String::from(default), response_sender: sender, }; @@ -115,7 +115,7 @@ // Step 6: Let userPromptHandler be WebDriver BiDi user prompt opened with this, // "prompt", and message. // TODO: Add support for WebDriver BiDi. -@@ -1773,6 +1806,27 @@ +@@ -1779,6 +1812,27 @@ // https://html.spec.whatwg.org/multipage/#windoweventhandlers window_event_handlers!(); @@ -143,7 +143,7 @@ /// fn Screen(&self, cx: &mut JSContext) -> DomRoot { self.screen.or_init(|| Screen::new(cx, self)) -@@ -3157,9 +3211,33 @@ +@@ -3212,9 +3266,33 @@ &self, input_event: &ConstellationInputEvent, ) -> Option { @@ -180,7 +180,7 @@ } #[expect(unsafe_code)] -@@ -3178,8 +3256,39 @@ +@@ -3233,8 +3311,39 @@ // 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); @@ -221,7 +221,7 @@ cursor: result.cursor, point_in_node: result.point_in_target, point_in_frame, -@@ -3552,17 +3661,19 @@ +@@ -3605,17 +3714,19 @@ } pub(crate) fn send_to_embedder(&self, msg: EmbedderMsg) { @@ -247,7 +247,7 @@ } #[cfg(feature = "webxr")] -@@ -3778,6 +3889,8 @@ +@@ -3835,6 +3946,8 @@ player_context: WindowGLContext, #[cfg(feature = "webgpu")] gpu_id_hub: Arc, inherited_secure_context: Option, @@ -256,7 +256,7 @@ theme: Theme, weak_script_thread: Weak, ) -> DomRoot { -@@ -3802,6 +3915,8 @@ +@@ -3859,6 +3972,8 @@ gpu_id_hub, inherited_secure_context, unminify_js, @@ -265,7 +265,7 @@ Some(font_context), ), ongoing_navigation: Default::default(), -@@ -4070,3 +4185,114 @@ +@@ -4128,3 +4243,114 @@ Window::origin(self) } } diff --git a/patches/components/script/script_thread.rs.patch b/patches/components/script/script_thread.rs.patch index f10d137..8f63786 100644 --- a/patches/components/script/script_thread.rs.patch +++ b/patches/components/script/script_thread.rs.patch @@ -8,7 +8,7 @@ + ServoErrorType, Theme, ViewportDetails, WebDriverScriptCommand, }; use encoding_rs::Encoding; - use fonts::{FontContext, SystemFontServiceProxy}; + use fonts::{FontContext, SystemFontServiceProxy, WebFontLoadEvent}; @@ -83,17 +83,19 @@ use servo_base::cross_process_instant::CrossProcessInstant; use servo_base::generic_channel::GenericSender; @@ -57,7 +57,7 @@ use crate::dom::servoparser::{ParserContext, ServoParser}; use crate::dom::types::DebuggerGlobalScope; #[cfg(feature = "webgpu")] -@@ -1984,12 +1992,47 @@ +@@ -1997,12 +2005,47 @@ self.handle_refresh_cursor(pipeline_id); }, ScriptThreadMessage::PreferencesUpdated(updates) => { @@ -109,7 +109,7 @@ ScriptThreadMessage::ForwardKeyboardScroll(pipeline_id, scroll) => { if let Some(document) = self.documents.borrow().find_document(pipeline_id) { document.event_handler().do_keyboard_scroll(cx, scroll); -@@ -2021,6 +2064,46 @@ +@@ -2034,6 +2077,46 @@ ScriptThreadMessage::TriggerGarbageCollection => unsafe { JS_GC(cx, GCReason::API); }, @@ -156,7 +156,7 @@ } } -@@ -3084,16 +3167,32 @@ +@@ -3097,16 +3180,32 @@ reason: UpdatePipelineIdReason, cx: &mut js::context::JSContext, ) { @@ -193,7 +193,7 @@ let Some(window) = self.documents.borrow().find_window(new_pipeline_id) else { return; -@@ -3112,6 +3211,7 @@ +@@ -3125,6 +3224,7 @@ // is no need to pass along existing opener information that // will be discarded. None, @@ -201,7 +201,7 @@ ); } -@@ -3398,6 +3498,186 @@ +@@ -3416,6 +3516,186 @@ } } @@ -388,7 +388,7 @@ fn ask_constellation_for_top_level_info( &self, sender_webview_id: WebViewId, -@@ -3510,7 +3790,13 @@ +@@ -3528,7 +3808,13 @@ self.senders.pipeline_to_embedder_sender.clone(), self.senders.constellation_sender.clone(), incomplete.pipeline_id, @@ -403,7 +403,7 @@ incomplete.viewport_details, origin.clone(), final_url.clone(), -@@ -3532,6 +3818,8 @@ +@@ -3550,6 +3836,8 @@ #[cfg(feature = "webgpu")] self.gpu_id_hub.clone(), incomplete.load_data.inherited_secure_context, @@ -412,7 +412,7 @@ incomplete.theme, self.this.clone(), ); -@@ -3637,6 +3925,8 @@ +@@ -3655,6 +3943,8 @@ ); } @@ -421,7 +421,7 @@ document.set_ready_state(cx, DocumentReadyState::Loading); self.documents -@@ -3643,8 +3933,6 @@ +@@ -3661,8 +3951,6 @@ .borrow_mut() .insert(incomplete.pipeline_id, &document); @@ -430,7 +430,7 @@ // Initialize the browsing context for the window. let window_proxy = self.window_proxies.local_window_proxy( cx, -@@ -3655,6 +3943,7 @@ +@@ -3673,6 +3961,7 @@ incomplete.webview_id, incomplete.parent_info, incomplete.opener, @@ -438,7 +438,7 @@ ); if window_proxy.parent().is_some() { // https://html.spec.whatwg.org/multipage/#navigating-across-documents:delaying-load-events-mode-2 -@@ -3827,11 +4116,11 @@ +@@ -3845,11 +4134,11 @@ target_snapshot_params: TargetSnapshotParams, cx: &mut js::context::JSContext, ) { @@ -453,7 +453,7 @@ iframe.navigate_or_reload_child_browsing_context( load_data, history_handling, -@@ -3839,7 +4128,17 @@ +@@ -3857,7 +4146,17 @@ target_snapshot_params, cx, ); @@ -471,7 +471,7 @@ } /// Turn javascript: URL into JS code to eval, according to the steps in -@@ -4392,10 +4691,88 @@ +@@ -4406,10 +4705,88 @@ document.event_handler().handle_refresh_cursor(); } @@ -560,7 +560,7 @@ fn handle_request_screenshot_readiness( &self, webview_id: WebViewId, -@@ -4436,7 +4813,7 @@ +@@ -4450,7 +4827,7 @@ pinch_zoom_infos: PinchZoomInfos, ) { let Some(window) = self.documents.borrow().find_window(pipeline_id) else { diff --git a/patches/components/script/timers.rs.patch b/patches/components/script/timers.rs.patch index a810c71..c9cca1e 100644 --- a/patches/components/script/timers.rs.patch +++ b/patches/components/script/timers.rs.patch @@ -1,6 +1,6 @@ --- original +++ modified -@@ -36,6 +36,7 @@ +@@ -34,6 +34,7 @@ use crate::dom::bindings::str::DOMString; use crate::dom::csp::CspReporting; use crate::dom::document::RefreshRedirectDue; @@ -8,7 +8,7 @@ use crate::dom::eventsource::EventSourceTimeoutCallback; use crate::dom::globalscope::GlobalScope; use crate::dom::globalscope::script_execution::{ErrorReporting, RethrowErrors}; -@@ -132,6 +133,7 @@ +@@ -130,6 +131,7 @@ #[cfg(feature = "testbinding")] TestBindingCallback(TestBindingCallback), RefreshRedirectDue(RefreshRedirectDue), @@ -16,10 +16,10 @@ /// RunStepsAfterTimeout { /// Step 1. timerKey -@@ -156,6 +158,7 @@ +@@ -154,6 +156,7 @@ #[cfg(feature = "testbinding")] OneshotTimerCallback::TestBindingCallback(callback) => callback.invoke(cx), - OneshotTimerCallback::RefreshRedirectDue(callback) => callback.invoke(cx), + OneshotTimerCallback::RefreshRedirectDue(callback) => callback.invoke(cx, global), + OneshotTimerCallback::LongPressContextMenu(callback) => callback.invoke(cx), OneshotTimerCallback::RunStepsAfterTimeout { completion, .. } => { // diff --git a/patches/components/script_bindings/codegen/Bindings.conf.patch b/patches/components/script_bindings/codegen/Bindings.conf.patch index 3fd29f2..830f7b1 100644 --- a/patches/components/script_bindings/codegen/Bindings.conf.patch +++ b/patches/components/script_bindings/codegen/Bindings.conf.patch @@ -1,7 +1,7 @@ --- original +++ modified -@@ -31,6 +31,23 @@ - 'cx': ['DrawArraysInstancedANGLE', 'DrawElementsInstancedANGLE', 'VertexAttribDivisorANGLE'] +@@ -35,6 +35,23 @@ + 'no_gc': ['GetFloatFrequencyData', 'GetByteFrequencyData', 'GetFloatTimeDomainData', 'GetByteTimeDomainData'] }, +'AtProto': { @@ -24,7 +24,7 @@ 'Attr': { 'implicitCxSetters': True, }, -@@ -118,6 +135,14 @@ +@@ -122,6 +139,14 @@ 'cx': ['Assert', 'Count', 'CountReset', 'Debug', 'Dir', 'Error', 'Group', 'GroupCollapsed', 'Info', 'Log', 'Time', 'TimeEnd', 'TimeLog', 'Trace', 'Warn'], }, @@ -39,7 +39,7 @@ 'CookieStore': { 'cx': ['Set', 'Set_', 'Get', 'Get_', 'GetAll', 'GetAll_', 'Delete', 'Delete_'], }, -@@ -410,6 +435,11 @@ +@@ -415,6 +440,11 @@ 'cx': ['CheckValidity', 'GetValidity', 'GetLabels', 'ReportValidity', 'SetValidity', 'States'], }, @@ -51,7 +51,7 @@ 'Event': { 'cx': ['TimeStamp'], }, -@@ -778,6 +808,10 @@ +@@ -783,6 +813,10 @@ 'weakReferenceable': True, }, @@ -62,7 +62,7 @@ 'IDBCursor': { 'cx': ['Key', 'PrimaryKey'] }, -@@ -889,7 +923,7 @@ +@@ -894,7 +928,7 @@ }, 'Navigator': { @@ -71,7 +71,7 @@ 'Storage', 'Plugins', 'UserActivation', 'WakeLock', 'Xr', 'MediaDevices', 'MediaSession', 'Permissions', 'GetGamepads'], }, -@@ -938,6 +972,10 @@ +@@ -943,6 +977,10 @@ 'cx': ['RegisterPaint'], }, @@ -82,7 +82,7 @@ 'Performance': { 'cx': ['Mark', 'Measure', 'Navigation'], }, -@@ -1313,6 +1351,7 @@ +@@ -1323,6 +1361,7 @@ 'additionalTraits': ['crate::interfaces::WindowHelpers', 'crate::interfaces::HasOrigin'], 'realm': ['CreateImageBitmap', 'CreateImageBitmap_', 'WebdriverCallback', 'GetOpener', 'Fetch'], 'cx': [ diff --git a/patches/components/shared/script/lib.rs.patch b/patches/components/shared/script/lib.rs.patch index da2cba2..a11beab 100644 --- a/patches/components/shared/script/lib.rs.patch +++ b/patches/components/shared/script/lib.rs.patch @@ -8,7 +8,7 @@ + ServoErrorType, Theme, ViewportDetails, WebDriverScriptCommand, }; use euclid::{Scale, Size2D}; - use fonts_traits::SystemFontServiceProxySender; + use fonts_traits::{SystemFontServiceProxySender, WebFontLoadEvent}; @@ -42,9 +42,9 @@ use servo_canvas_traits::webgl::WebGLPipeline; use servo_config::prefs::PrefValue; @@ -37,7 +37,7 @@ } /// When a pipeline is closed, should its browsing context be discarded too? -@@ -295,6 +303,15 @@ +@@ -298,6 +306,15 @@ SendImageKeysBatch(PipelineId, Vec), /// Preferences were updated in the parent process. PreferencesUpdated(Vec<(String, PrefValue)>), @@ -53,7 +53,7 @@ /// Notify the `ScriptThread` that the Servo renderer is no longer waiting on /// asynchronous image uploads for the given `Pipeline`. These are mainly used /// by canvas to perform uploads while the display list is being built. -@@ -329,6 +346,30 @@ +@@ -332,6 +349,30 @@ SetAccessibilityActive(PipelineId, bool, Epoch), /// Force a garbage collection in this script thread. TriggerGarbageCollection,