diff options
41 files changed, 524 insertions, 240 deletions
diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 0e4e5706b87..aece07e453f 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -70,7 +70,7 @@ jobs: uses: nttld/setup-ndk@v1 id: setup-ndk with: - ndk-version: r25c + ndk-version: r26c - name: Setup Key Store for APK Signing env: KEYSTORE_BASE64: ${{ secrets.APK_KEYSTORE_BASE64 }} diff --git a/Cargo.lock b/Cargo.lock index d9218cf19fe..b3dfeca9c7e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -589,6 +589,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a12916984aab3fa6e39d655a33e09c0071eb36d6ab3aea5c2d78551f1df6d952" [[package]] +name = "calendrical_calculations" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cec493b209a1b81fa32312d7ceca1b547d341c7b5f16a3edbf32b1d8b455bbdf" +dependencies = [ + "core_maths", + "displaydoc", +] + +[[package]] name = "calloop" version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -816,6 +826,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b" [[package]] +name = "colored" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8" +dependencies = [ + "lazy_static", + "windows-sys 0.48.0", +] + +[[package]] name = "combine" version = "4.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1357,6 +1377,42 @@ dependencies = [ ] [[package]] +name = "diplomat" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3137c640d2bac491dbfca7f9945c948f888dd8c95bdf7ee6b164fbdfa5d3efc2" +dependencies = [ + "diplomat_core", + "proc-macro2", + "quote", + "syn 2.0.72", +] + +[[package]] +name = "diplomat-runtime" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29f9efe348e178ba77b6035bc6629138486f8b461654e7ac7ad8afaa61bd4d98" +dependencies = [ + "log", +] + +[[package]] +name = "diplomat_core" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd7aca1d8f9e7b73ad61785beedc9556ad79f84b15c15abaa7041377e42284c1" +dependencies = [ + "lazy_static", + "proc-macro2", + "quote", + "serde", + "smallvec", + "strck_ident", + "syn 2.0.72", +] + +[[package]] name = "dirs-next" version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -1746,6 +1802,18 @@ dependencies = [ ] [[package]] +name = "fixed_decimal" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0febbeb1118a9ecdee6e4520ead6b54882e843dd0592ad233247dbee84c53db8" +dependencies = [ + "displaydoc", + "ryu", + "smallvec", + "writeable", +] + +[[package]] name = "fixedbitset" version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -2952,6 +3020,109 @@ dependencies = [ ] [[package]] +name = "icu_calendar" +version = "1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7265b2137f9a36f7634a308d91f984574bbdba8cfd95ceffe1c345552275a8ff" +dependencies = [ + "calendrical_calculations", + "displaydoc", + "icu_calendar_data", + "icu_locid", + "icu_locid_transform", + "icu_provider", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_calendar_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e009b7f0151ee6fb28c40b1283594397e0b7183820793e9ace3dcd13db126d0" + +[[package]] +name = "icu_capi" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f73a82a8307633c08ca119631cd90b006e448009da2d4466f7d76ca8fedf3b1" +dependencies = [ + "diplomat", + "diplomat-runtime", + "fixed_decimal", + "icu_calendar", + "icu_casemap", + "icu_collator", + "icu_collections", + "icu_datetime", + "icu_decimal", + "icu_experimental", + "icu_list", + "icu_locid", + "icu_locid_transform", + "icu_normalizer", + "icu_plurals", + "icu_properties", + "icu_provider", + "icu_provider_adapters", + "icu_segmenter", + "icu_timezone", + "log", + "simple_logger", + "tinystr", + "unicode-bidi", + "writeable", +] + +[[package]] +name = "icu_casemap" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ff0c8ae9f8d31b12e27fc385ff9ab1f3cd9b17417c665c49e4ec958c37da75f" +dependencies = [ + "displaydoc", + "icu_casemap_data", + "icu_collections", + "icu_locid", + "icu_properties", + "icu_provider", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_casemap_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d57966d5ab748f74513be4046867f9a20e801e2775d41f91d04a0f560b61f08" + +[[package]] +name = "icu_collator" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d370371887d31d56f361c3eaa15743e54f13bc677059c9191c77e099ed6966b2" +dependencies = [ + "displaydoc", + "icu_collator_data", + "icu_collections", + "icu_locid_transform", + "icu_normalizer", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "zerovec", +] + +[[package]] +name = "icu_collator_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ee3f88741364b7d6269cce6827a3e6a8a2cf408a78f766c9224ab479d5e4ae5" + +[[package]] name = "icu_collections" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -2964,6 +3135,111 @@ dependencies = [ ] [[package]] +name = "icu_datetime" +version = "1.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d115efb85e08df3fd77e77f52e7e087545a783fffba8be80bfa2102f306b1780" +dependencies = [ + "displaydoc", + "either", + "fixed_decimal", + "icu_calendar", + "icu_datetime_data", + "icu_decimal", + "icu_locid", + "icu_locid_transform", + "icu_plurals", + "icu_provider", + "icu_timezone", + "smallvec", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_datetime_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ba7e7f7a01269b9afb0a39eff4f8676f693b55f509b3120e43a0350a9f88bea" + +[[package]] +name = "icu_decimal" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb8fd98f86ec0448d85e1edf8884e4e318bb2e121bd733ec929a05c0a5e8b0eb" +dependencies = [ + "displaydoc", + "fixed_decimal", + "icu_decimal_data", + "icu_locid_transform", + "icu_provider", + "writeable", +] + +[[package]] +name = "icu_decimal_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d424c994071c6f5644f999925fc868c85fec82295326e75ad5017bc94b41523" + +[[package]] +name = "icu_experimental" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "844ad7b682a165c758065d694bc4d74ac67f176da1c499a04d85d492c0f193b7" +dependencies = [ + "displaydoc", + "fixed_decimal", + "icu_collections", + "icu_decimal", + "icu_experimental_data", + "icu_locid", + "icu_locid_transform", + "icu_normalizer", + "icu_pattern", + "icu_plurals", + "icu_properties", + "icu_provider", + "litemap", + "num-bigint", + "num-rational", + "num-traits", + "smallvec", + "tinystr", + "writeable", + "zerofrom", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_experimental_data" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c178b9a34083fca5bd70d61f647575335e9c197d0f30c38e8ccd187babc69d0" + +[[package]] +name = "icu_list" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbfeda1d7775b6548edd4e8b7562304a559a91ed56ab56e18961a053f367c365" +dependencies = [ + "displaydoc", + "icu_list_data", + "icu_locid_transform", + "icu_provider", + "regex-automata 0.2.0", + "writeable", +] + +[[package]] +name = "icu_list_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1825170d2c6679cb20dbd96a589d034e49f698aed9a2ef4fafc9a0101ed298f" + +[[package]] name = "icu_locid" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -3021,6 +3297,39 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" [[package]] +name = "icu_pattern" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7f36aafd098d6717de34e668a8120822275c1fba22b936e757b7de8a2fd7e4" +dependencies = [ + "displaydoc", + "either", + "writeable", + "yoke", + "zerofrom", +] + +[[package]] +name = "icu_plurals" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a70e7c025dbd5c501b0a5c188cd11666a424f0dadcd4f0a95b7dafde3b114" +dependencies = [ + "displaydoc", + "fixed_decimal", + "icu_locid_transform", + "icu_plurals_data", + "icu_provider", + "zerovec", +] + +[[package]] +name = "icu_plurals_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e3e8f775b215d45838814a090a2227247a7431d74e9156407d9c37f6ef0f208" + +[[package]] name = "icu_properties" version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -3032,6 +3341,7 @@ dependencies = [ "icu_properties_data", "icu_provider", "tinystr", + "unicode-bidi", "zerovec", ] @@ -3050,6 +3360,7 @@ dependencies = [ "displaydoc", "icu_locid", "icu_provider_macros", + "log", "stable_deref_trait", "tinystr", "writeable", @@ -3059,6 +3370,19 @@ dependencies = [ ] [[package]] +name = "icu_provider_adapters" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6324dfd08348a8e0374a447ebd334044d766b1839bb8d5ccf2482a99a77c0bc" +dependencies = [ + "icu_locid", + "icu_locid_transform", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] name = "icu_provider_macros" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -3092,6 +3416,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f739ee737260d955e330bc83fdeaaf1631f7fb7ed218761d3c04bb13bb7d79df" [[package]] +name = "icu_timezone" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa91ba6a585939a020c787235daa8aee856d9bceebd6355e283c0c310bc6de96" +dependencies = [ + "displaydoc", + "icu_calendar", + "icu_provider", + "icu_timezone_data", + "tinystr", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_timezone_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c588878c508a3e2ace333b3c50296053e6483c6a7541251b546cc59dcd6ced8e" + +[[package]] name = "ident_case" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -3665,8 +4010,7 @@ dependencies = [ [[package]] name = "libz-sys" version = "1.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c15da26e5af7e25c90b37a2d75cdbf940cf4a55316de9d84c679c9b8bfabf82e" +source = "git+https://github.com/rust-lang/libz-sys.git?rev=f76b7a24ed0a71ef1b8bdac1895e8535cb2cb9c0#f76b7a24ed0a71ef1b8bdac1895e8535cb2cb9c0" dependencies = [ "cc", "libc", @@ -3993,7 +4337,7 @@ dependencies = [ [[package]] name = "mozjs" version = "0.14.1" -source = "git+https://github.com/servo/mozjs#6e4e55a002f493739c8dbe0f2d2b29b0017d5dd2" +source = "git+https://github.com/servo/mozjs#fb7782899503eb79801e67cf3c2fb819934ef509" dependencies = [ "bindgen", "cc", @@ -4006,14 +4350,15 @@ dependencies = [ [[package]] name = "mozjs_sys" -version = "0.115.13-2" -source = "git+https://github.com/servo/mozjs#fb8225ed5eb87c0d6d0b4d6126c11f5bc98687ce" +version = "0.128.0-1" +source = "git+https://github.com/servo/mozjs#fb7782899503eb79801e67cf3c2fb819934ef509" dependencies = [ "bindgen", "cc", "encoding_c", "encoding_c_mem", "flate2", + "icu_capi", "libc", "libz-sys", "tar", @@ -4256,6 +4601,16 @@ dependencies = [ ] [[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", +] + +[[package]] name = "num-complex" version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -4297,6 +4652,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" dependencies = [ + "num-bigint", "num-integer", "num-traits", ] @@ -5018,12 +5374,21 @@ checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" dependencies = [ "aho-corasick", "memchr", - "regex-automata", + "regex-automata 0.4.7", "regex-syntax", ] [[package]] name = "regex-automata" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9368763f5a9b804326f3af749e16f9abf378d227bcdee7634b13d8f17793782" +dependencies = [ + "memchr", +] + +[[package]] +name = "regex-automata" version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" @@ -5873,6 +6238,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" [[package]] +name = "simple_logger" +version = "4.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e7e46c8c90251d47d08b28b8a419ffb4aede0f87c2eea95e17d1d5bacbf3ef1" +dependencies = [ + "colored", + "log", + "time 0.3.36", + "windows-sys 0.48.0", +] + +[[package]] name = "siphasher" version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -6025,6 +6402,22 @@ version = "0.1.0" source = "git+https://github.com/servo/stylo?branch=2024-07-16#eceb838e855e3b73a28df602b69494899f6d168b" [[package]] +name = "strck" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be91090ded9d8f979d9fe921777342d37e769e0b6b7296843a7a38247240e917" + +[[package]] +name = "strck_ident" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1c3802b169b3858a44667f221c9a0b3136e6019936ea926fc97fbad8af77202" +dependencies = [ + "strck", + "unicode-ident", +] + +[[package]] name = "strict-num" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" @@ -7869,6 +8262,9 @@ name = "writeable" version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" +dependencies = [ + "either", +] [[package]] name = "x11" @@ -8049,6 +8445,17 @@ dependencies = [ ] [[package]] +name = "zerotrie" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb594dd55d87335c5f60177cee24f19457a5ec10a065e0a3014722ad252d0a1f" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] name = "zerovec" version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" diff --git a/Cargo.toml b/Cargo.toml index 1b32045b50c..a60aa568330 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -187,3 +187,7 @@ strip = true # # [patch."https://github.com/servo/<repository>"] # <crate> = { path = "/path/to/local/checkout" } + +# patch libz-sys for https://github.com/rust-lang/libz-sys/pull/199 +# until released as 1.1.19 (also remove this in mozjs repo) +libz-sys = { git = "https://github.com/rust-lang/libz-sys.git", rev = "f76b7a24ed0a71ef1b8bdac1895e8535cb2cb9c0" } diff --git a/README.md b/README.md index 47971762eb5..68bebe6ef40 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,7 @@ For more detailed build instructions, see the Servo book under [Setting up your - Ensure that the following environment variables are set: - `ANDROID_SDK_ROOT` - - `ANDROID_NDK_ROOT`: `$ANDROID_SDK_ROOT/ndk/25.2.9519653/` + - `ANDROID_NDK_ROOT`: `$ANDROID_SDK_ROOT/ndk/26.2.11394342/` `ANDROID_SDK_ROOT` can be any directory (such as `~/android-sdk`). All of the Android build dependencies will be installed there. - Install the latest version of the [Android command-line @@ -58,7 +58,7 @@ For more detailed build instructions, see the Servo book under [Setting up your sudo $ANDROID_SDK_ROOT/cmdline-tools/latest/bin/sdkmanager --install "build-tools;33.0.2" \ "emulator" \ - "ndk;25.2.9519653" \ + "ndk;26.2.11394342" \ "platform-tools" \ "platforms;android-33" \ "system-images;android-33;google_apis;x86_64" diff --git a/components/config/prefs.rs b/components/config/prefs.rs index 84e304bdd2e..d10ec42ce33 100644 --- a/components/config/prefs.rs +++ b/components/config/prefs.rs @@ -511,12 +511,6 @@ mod gen { shared_memory: { enabled: bool, }, - strict: { - debug: { - enabled: bool, - }, - enabled: bool, - }, throw_on_asmjs_validation_failure: { enabled: bool, }, diff --git a/components/script/dom/bindings/buffer_source.rs b/components/script/dom/bindings/buffer_source.rs index 9287ec730fb..71c5051accd 100644 --- a/components/script/dom/bindings/buffer_source.rs +++ b/components/script/dom/bindings/buffer_source.rs @@ -10,9 +10,8 @@ use std::marker::PhantomData; use std::ptr; use std::sync::{Arc, Mutex}; -use js::jsapi::{ - Heap, JSObject, JS_GetArrayBufferViewBuffer, JS_IsArrayBufferViewObject, NewExternalArrayBuffer, -}; +use js::jsapi::glue::NewExternalArrayBuffer; +use js::jsapi::{Heap, JSObject, JS_GetArrayBufferViewBuffer, JS_IsArrayBufferViewObject}; use js::rust::wrappers::DetachArrayBuffer; use js::rust::{CustomAutoRooterGuard, Handle, MutableHandleObject}; use js::typedarray::{CreateWith, TypedArray, TypedArrayElement, TypedArrayElementCreator}; diff --git a/components/script/dom/bindings/error.rs b/components/script/dom/bindings/error.rs index f324bb3aad1..9aabb2c03d2 100644 --- a/components/script/dom/bindings/error.rs +++ b/components/script/dom/bindings/error.rs @@ -186,7 +186,7 @@ impl ErrorInfo { } let filename = { - let filename = (*report)._base.filename as *const u8; + let filename = (*report)._base.filename.data_ as *const u8; if !filename.is_null() { let length = (0..).find(|idx| *filename.offset(*idx) == 0).unwrap(); let filename = from_raw_parts(filename, length as usize); @@ -197,7 +197,7 @@ impl ErrorInfo { }; let lineno = (*report)._base.lineno; - let column = (*report)._base.column; + let column = (*report)._base.column._base; let message = { let message = (*report)._base.message_.data_ as *const u8; diff --git a/components/script/dom/bindings/structuredclone.rs b/components/script/dom/bindings/structuredclone.rs index a5a3e309371..d55104e519c 100644 --- a/components/script/dom/bindings/structuredclone.rs +++ b/components/script/dom/bindings/structuredclone.rs @@ -160,6 +160,7 @@ unsafe extern "C" fn write_callback( unsafe extern "C" fn read_transfer_callback( cx: *mut JSContext, _r: *mut JSStructuredCloneReader, + _policy: *const CloneDataPolicy, tag: u32, _content: *mut raw::c_void, extra_data: u64, diff --git a/components/script/dom/htmlscriptelement.rs b/components/script/dom/htmlscriptelement.rs index f18c827fcfa..ff5ca63c0eb 100644 --- a/components/script/dom/htmlscriptelement.rs +++ b/components/script/dom/htmlscriptelement.rs @@ -1,7 +1,7 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - +#![allow(unused_imports)] use core::ffi::c_void; use std::cell::Cell; use std::fs::{create_dir_all, read_to_string, File}; @@ -19,12 +19,8 @@ use encoding_rs::Encoding; use html5ever::{local_name, namespace_url, ns, LocalName, Prefix}; use ipc_channel::ipc; use ipc_channel::router::ROUTER; -use js::jsapi::{CanCompileOffThread, CompileToStencilOffThread1, OffThreadToken}; use js::jsval::UndefinedValue; -use js::rust::{ - transform_str_to_source_text, CompileOptionsWrapper, FinishOffThreadStencil, HandleObject, - Stencil, -}; +use js::rust::{transform_str_to_source_text, CompileOptionsWrapper, HandleObject, Stencil}; use net_traits::request::{ CorsSettings, CredentialsMode, Destination, ParserMetadata, RequestBuilder, }; @@ -74,7 +70,8 @@ use crate::task::TaskCanceller; use crate::task_source::dom_manipulation::DOMManipulationTaskSource; use crate::task_source::{TaskSource, TaskSourceName}; -pub struct OffThreadCompilationContext { +// TODO Implement offthread compilation in mozjs +/*pub struct OffThreadCompilationContext { script_element: Trusted<HTMLScriptElement>, script_kind: ExternalScriptKind, final_url: ServoUrl, @@ -85,14 +82,6 @@ pub struct OffThreadCompilationContext { fetch_options: ScriptFetchOptions, } -/// A wrapper to mark OffThreadToken as Send, -/// which should be safe according to -/// mozjs/js/public/OffThreadScriptCompilation.h -struct OffThreadCompilationToken(*mut OffThreadToken); - -#[allow(unsafe_code)] -unsafe impl Send for OffThreadCompilationToken {} - #[allow(unsafe_code)] unsafe extern "C" fn off_thread_compilation_callback( token: *mut OffThreadToken, @@ -146,7 +135,7 @@ unsafe extern "C" fn off_thread_compilation_callback( }), &context.canceller, ); -} +}*/ /// An unique id for script element. #[derive(Clone, Copy, Debug, Eq, Hash, JSTraceable, PartialEq)] @@ -428,9 +417,10 @@ impl FetchResponseListener for ClassicContext { let elem = self.elem.root(); let global = elem.global(); - let cx = GlobalScope::get_cx(); + //let cx = GlobalScope::get_cx(); let _ar = enter_realm(&*global); + /* let options = unsafe { CompileOptionsWrapper::new(*cx, final_url.as_str(), 1) }; let can_compile_off_thread = pref!(dom.script.asynch) && @@ -460,15 +450,15 @@ impl FetchResponseListener for ClassicContext { ) .is_null()); } - } else { - let load = ScriptOrigin::external( - Rc::new(DOMString::from(source_text)), - final_url.clone(), - self.fetch_options.clone(), - ScriptType::Classic, - ); - finish_fetching_a_classic_script(&elem, self.kind, self.url.clone(), Ok(load)); - } + } else {*/ + let load = ScriptOrigin::external( + Rc::new(DOMString::from(source_text)), + final_url.clone(), + self.fetch_options.clone(), + ScriptType::Classic, + ); + finish_fetching_a_classic_script(&elem, self.kind, self.url.clone(), Ok(load)); + //} } fn resource_timing_mut(&mut self) -> &mut ResourceFetchTiming { diff --git a/components/script/dom/webgl2renderingcontext.rs b/components/script/dom/webgl2renderingcontext.rs index 3f1a7e98d72..d2b3cfe8ea3 100644 --- a/components/script/dom/webgl2renderingcontext.rs +++ b/components/script/dom/webgl2renderingcontext.rs @@ -110,10 +110,12 @@ pub struct WebGL2RenderingContext { default_fb_drawbuffer: Cell<u32>, } +// TODO: This should be in mozjs +// upstream: https://searchfox.org/mozilla-central/source/js/public/ScalarType.h#66 fn typedarray_elem_size(typeid: Type) -> usize { match typeid { Type::Int8 | Type::Uint8 | Type::Uint8Clamped => 1, - Type::Int16 | Type::Uint16 => 2, + Type::Int16 | Type::Uint16 | Type::Float16 => 2, Type::Int32 | Type::Uint32 | Type::Float32 => 4, Type::Int64 | Type::Float64 => 8, Type::BigInt64 | Type::BigUint64 => 8, diff --git a/components/script/dom/webglrenderingcontext.rs b/components/script/dom/webglrenderingcontext.rs index 42482e7abd0..c9c0607518f 100644 --- a/components/script/dom/webglrenderingcontext.rs +++ b/components/script/dom/webglrenderingcontext.rs @@ -4965,6 +4965,7 @@ fn array_buffer_type_to_sized_type(type_: Type) -> Option<SizedDataType> { Type::Int16 => Some(SizedDataType::Int16), Type::Int32 => Some(SizedDataType::Int32), Type::Float32 => Some(SizedDataType::Float32), + Type::Float16 | Type::Float64 | Type::BigInt64 | Type::BigUint64 | diff --git a/components/script/script_runtime.rs b/components/script/script_runtime.rs index c56dbce357c..ffee9522467 100644 --- a/components/script/script_runtime.rs +++ b/components/script/script_runtime.rs @@ -25,17 +25,18 @@ use js::glue::{ StreamConsumerNoteResponseURLs, StreamConsumerStreamEnd, StreamConsumerStreamError, }; use js::jsapi::{ - BuildIdCharVector, ContextOptionsRef, DisableIncrementalGC, Dispatchable as JSRunnable, - Dispatchable_MaybeShuttingDown, GCDescription, GCOptions, GCProgress, GCReason, - GetPromiseUserInputEventHandlingState, HandleObject, Heap, InitConsumeStreamCallback, - InitDispatchToEventLoop, JSContext as RawJSContext, JSGCParamKey, JSGCStatus, - JSJitCompilerOption, JSObject, JSSecurityCallbacks, JSTracer, JS_AddExtraGCRootsTracer, - JS_InitDestroyPrincipalsCallback, JS_InitReadPrincipalsCallback, JS_RequestInterruptCallback, - JS_SetGCCallback, JS_SetGCParameter, JS_SetGlobalJitCompilerOption, - JS_SetOffthreadIonCompilationEnabled, JS_SetParallelParsingEnabled, JS_SetSecurityCallbacks, - JobQueue, MimeType, PromiseRejectionHandlingState, PromiseUserInputEventHandlingState, - SetDOMCallbacks, SetGCSliceCallback, SetJobQueue, SetPreserveWrapperCallbacks, - SetProcessBuildIdOp, SetPromiseRejectionTrackerCallback, StreamConsumer as JSStreamConsumer, + AsmJSOption, BuildIdCharVector, ContextOptionsRef, DisableIncrementalGC, + Dispatchable as JSRunnable, Dispatchable_MaybeShuttingDown, GCDescription, GCOptions, + GCProgress, GCReason, GetPromiseUserInputEventHandlingState, HandleObject, Heap, + InitConsumeStreamCallback, InitDispatchToEventLoop, JSContext as RawJSContext, JSGCParamKey, + JSGCStatus, JSJitCompilerOption, JSObject, JSSecurityCallbacks, JSTracer, + JS_AddExtraGCRootsTracer, JS_InitDestroyPrincipalsCallback, JS_InitReadPrincipalsCallback, + JS_RequestInterruptCallback, JS_SetGCCallback, JS_SetGCParameter, + JS_SetGlobalJitCompilerOption, JS_SetOffthreadIonCompilationEnabled, + JS_SetParallelParsingEnabled, JS_SetSecurityCallbacks, JobQueue, MimeType, + PromiseRejectionHandlingState, PromiseUserInputEventHandlingState, SetDOMCallbacks, + SetGCSliceCallback, SetJobQueue, SetPreserveWrapperCallbacks, SetProcessBuildIdOp, + SetPromiseRejectionTrackerCallback, StreamConsumer as JSStreamConsumer, }; use js::jsval::UndefinedValue; use js::panic::wrap_panic; @@ -546,7 +547,11 @@ unsafe fn new_rt_and_cx_with_parent( JSJitCompilerOption::JSJITCOMPILER_ION_ENABLE, pref!(js.ion.enabled) as u32, ); - cx_opts.set_asmJS_(pref!(js.asmjs.enabled)); + cx_opts.compileOptions_.asmJSOption_ = if pref!(js.asmjs.enabled) { + AsmJSOption::Enabled + } else { + AsmJSOption::DisabledByAsmJSPref + }; let wasm_enabled = pref!(js.wasm.enabled); cx_opts.set_wasm_(wasm_enabled); if wasm_enabled { @@ -557,8 +562,6 @@ unsafe fn new_rt_and_cx_with_parent( } cx_opts.set_wasmBaseline_(pref!(js.wasm.baseline.enabled)); cx_opts.set_wasmIon_(pref!(js.wasm.ion.enabled)); - cx_opts.set_strictMode_(pref!(js.strict.enabled)); - // TODO: handle js.strict.debug.enabled // TODO: handle js.throw_on_asmjs_validation_failure (needs new Spidermonkey) JS_SetGlobalJitCompilerOption( cx, diff --git a/etc/shell.nix b/etc/shell.nix index 922844abfa9..61b5d680df3 100644 --- a/etc/shell.nix +++ b/etc/shell.nix @@ -45,7 +45,7 @@ let systemImageTypes = [ "google_apis" ]; abiVersions = [ "x86" "armeabi-v7a" ]; includeNDK = true; - ndkVersion = "25.2.9519653"; + ndkVersion = "26.2.11394342"; useGoogleAPIs = false; useGoogleTVAddOns = false; includeExtras = [ @@ -158,7 +158,7 @@ stdenv.mkDerivation (androidEnvironment // { # Provide libraries that aren’t linked against but somehow required LD_LIBRARY_PATH = lib.makeLibraryPath [ # Fixes missing library errors - zlib xorg.libXcursor xorg.libXrandr xorg.libXi libxkbcommon + xorg.libXcursor xorg.libXrandr xorg.libXi libxkbcommon # [WARN script::dom::gpu] Could not get GPUAdapter ("NotFound") # TLA Err: Error: Couldn't request WebGPU adapter. diff --git a/python/servo/command_base.py b/python/servo/command_base.py index d8adb293aa9..4b5de868531 100644 --- a/python/servo/command_base.py +++ b/python/servo/command_base.py @@ -569,15 +569,15 @@ class CommandBase(object): android_api = android_platform.replace('android-', '') - # Check if the NDK version is 25 + # Check if the NDK version is 26 if not os.path.isfile(path.join(env["ANDROID_NDK_ROOT"], 'source.properties')): print("ANDROID_NDK should have file `source.properties`.") print("The environment variable ANDROID_NDK_ROOT may be set at a wrong path.") sys.exit(1) with open(path.join(env["ANDROID_NDK_ROOT"], 'source.properties'), encoding="utf8") as ndk_properties: lines = ndk_properties.readlines() - if lines[1].split(' = ')[1].split('.')[0] != '25': - print("Servo currently only supports NDK r25c.") + if lines[1].split(' = ')[1].split('.')[0] != '26': + print("Servo currently only supports NDK r26c.") sys.exit(1) # Android builds also require having the gcc bits on the PATH and various INCLUDE @@ -633,7 +633,7 @@ class CommandBase(object): env['TARGET_STRIP'] = to_ndk_bin("llvm-strip") env['RUST_FONTCONFIG_DLOPEN'] = "on" - env["LIBCLANG_PATH"] = path.join(llvm_toolchain, "lib64") + env["LIBCLANG_PATH"] = path.join(llvm_toolchain, "lib") env["CLANG_PATH"] = to_ndk_bin("clang") # A cheat-sheet for some of the build errors caused by getting the search path wrong... diff --git a/resources/prefs.json b/resources/prefs.json index 644f63d2e21..8a23bc7673e 100644 --- a/resources/prefs.json +++ b/resources/prefs.json @@ -91,8 +91,6 @@ "js.offthread_compilation.enabled": true, "js.parallel_parsing.enabled": true, "js.shared_memory.enabled": true, - "js.strict.debug.enabled": false, - "js.strict.enabled": false, "js.throw_on_asmjs_validation_failure.enabled": false, "js.throw_on_debuggee_would_run.enabled": false, "js.timers.minimum_duration": 1000, diff --git a/servo-tidy.toml b/servo-tidy.toml index a002e7c1d1e..21e8ce52fc3 100644 --- a/servo-tidy.toml +++ b/servo-tidy.toml @@ -61,6 +61,9 @@ packages = [ "phf", "phf_generator", "phf_shared", + + # icu (from mozjs) uses old version + "regex-automata", ] # Files that are ignored for all tidy and lint checks. files = [ diff --git a/support/android/apk/jni/Application.mk b/support/android/apk/jni/Application.mk index 2a6cbd50ea7..197d8f62e5e 100644 --- a/support/android/apk/jni/Application.mk +++ b/support/android/apk/jni/Application.mk @@ -1,5 +1,5 @@ NDK_TOOLCHAIN_VERSION := clang -APP_MODULES := c++_shared servojni +APP_MODULES := servojni APP_PLATFORM := android-30 APP_STL := c++_shared APP_ABI := armeabi-v7a x86 x86_64 diff --git a/tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/cross-origin-transfer-resizable-arraybuffer.html.ini b/tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/cross-origin-transfer-resizable-arraybuffer.html.ini deleted file mode 100644 index 97ce0eb1815..00000000000 --- a/tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/cross-origin-transfer-resizable-arraybuffer.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[cross-origin-transfer-resizable-arraybuffer.html] - [postMessaging resizable ArrayBuffer to OOPIF] - expected: FAIL diff --git a/tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/messagechannel.any.js.ini b/tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/messagechannel.any.js.ini index 0cbf9e29a0b..54ea0f01c63 100644 --- a/tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/messagechannel.any.js.ini +++ b/tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/messagechannel.any.js.ini @@ -11,39 +11,9 @@ [Object with a getter that throws] expected: FAIL - [Resizable ArrayBuffer] - expected: FAIL - [Growable SharedArrayBuffer] expected: FAIL - [Length-tracking TypedArray] - expected: FAIL - - [Length-tracking DataView] - expected: FAIL - - [Serializing OOB TypedArray throws] - expected: FAIL - - [Serializing OOB DataView throws] - expected: FAIL - - [Resizable ArrayBuffer is transferable] - expected: FAIL - - [Length-tracking TypedArray is transferable] - expected: FAIL - - [Length-tracking DataView is transferable] - expected: FAIL - - [Transferring OOB TypedArray throws] - expected: FAIL - - [Transferring OOB DataView throws] - expected: FAIL - [messagechannel.any.serviceworker.html] expected: ERROR @@ -109,35 +79,5 @@ [Object with a getter that throws] expected: FAIL - [Resizable ArrayBuffer] - expected: FAIL - [Growable SharedArrayBuffer] expected: FAIL - - [Length-tracking TypedArray] - expected: FAIL - - [Length-tracking DataView] - expected: FAIL - - [Serializing OOB TypedArray throws] - expected: FAIL - - [Serializing OOB DataView throws] - expected: FAIL - - [Resizable ArrayBuffer is transferable] - expected: FAIL - - [Length-tracking TypedArray is transferable] - expected: FAIL - - [Length-tracking DataView is transferable] - expected: FAIL - - [Transferring OOB TypedArray throws] - expected: FAIL - - [Transferring OOB DataView throws] - expected: FAIL diff --git a/tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/window-postmessage.window.js.ini b/tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/window-postmessage.window.js.ini index 4fd0e5f8b79..a8346173c74 100644 --- a/tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/window-postmessage.window.js.ini +++ b/tests/wpt/meta/html/infrastructure/safe-passing-of-structured-data/window-postmessage.window.js.ini @@ -56,35 +56,5 @@ [Object with a getter that throws] expected: FAIL - [Resizable ArrayBuffer] - expected: FAIL - [Growable SharedArrayBuffer] expected: FAIL - - [Length-tracking TypedArray] - expected: FAIL - - [Length-tracking DataView] - expected: FAIL - - [Serializing OOB TypedArray throws] - expected: FAIL - - [Serializing OOB DataView throws] - expected: FAIL - - [Resizable ArrayBuffer is transferable] - expected: FAIL - - [Length-tracking TypedArray is transferable] - expected: FAIL - - [Length-tracking DataView is transferable] - expected: FAIL - - [Transferring OOB TypedArray throws] - expected: FAIL - - [Transferring OOB DataView throws] - expected: FAIL diff --git a/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/instantiation-error-3.html.ini b/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/instantiation-error-3.html.ini deleted file mode 100644 index 80994e38131..00000000000 --- a/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/instantiation-error-3.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[instantiation-error-3.html] - [Test that unresolvable cycles lead to SyntaxError events on window and load events on script] - expected: FAIL diff --git a/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/instantiation-error-4.html.ini b/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/instantiation-error-4.html.ini deleted file mode 100644 index 0ed72efc9f1..00000000000 --- a/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/instantiation-error-4.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[instantiation-error-4.html] - [Test that loading a graph in which a module is already errored results in an error.] - expected: FAIL diff --git a/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/instantiation-error-5.html.ini b/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/instantiation-error-5.html.ini deleted file mode 100644 index a629aaf9a74..00000000000 --- a/tests/wpt/meta/html/semantics/scripting-1/the-script-element/module/instantiation-error-5.html.ini +++ /dev/null @@ -1,3 +0,0 @@ -[instantiation-error-5.html] - [Test that loading a graph in which a module is already errored results an error.] - expected: FAIL diff --git a/tests/wpt/meta/js/builtins/weakrefs/cleanup-prevented-with-reference.optional.any.js.ini b/tests/wpt/meta/js/builtins/weakrefs/cleanup-prevented-with-reference.optional.any.js.ini index b8a231b14bf..d45ab6425c1 100644 --- a/tests/wpt/meta/js/builtins/weakrefs/cleanup-prevented-with-reference.optional.any.js.ini +++ b/tests/wpt/meta/js/builtins/weakrefs/cleanup-prevented-with-reference.optional.any.js.ini @@ -1,5 +1,8 @@ [cleanup-prevented-with-reference.optional.any.html] - expected: ERROR + [cleanupCallback has only one optional chance to be called for a GC that cleans up a registered target.] + expected: FAIL + [cleanup-prevented-with-reference.optional.any.worker.html] - expected: ERROR + [cleanupCallback has only one optional chance to be called for a GC that cleans up a registered target.] + expected: FAIL diff --git a/tests/wpt/meta/js/builtins/weakrefs/cleanup-prevented-with-unregister.optional.any.js.ini b/tests/wpt/meta/js/builtins/weakrefs/cleanup-prevented-with-unregister.optional.any.js.ini index 4fc93faaf3d..8fa0c8a23e5 100644 --- a/tests/wpt/meta/js/builtins/weakrefs/cleanup-prevented-with-unregister.optional.any.js.ini +++ b/tests/wpt/meta/js/builtins/weakrefs/cleanup-prevented-with-unregister.optional.any.js.ini @@ -1,5 +1,8 @@ [cleanup-prevented-with-unregister.optional.any.worker.html] - expected: ERROR + [Cleanup might be prevented with an unregister usage] + expected: FAIL + [cleanup-prevented-with-unregister.optional.any.html] - expected: ERROR + [Cleanup might be prevented with an unregister usage] + expected: FAIL diff --git a/tests/wpt/meta/js/builtins/weakrefs/finalizationregistry-cleanupCallback-gets-a-microtask.optional.any.js.ini b/tests/wpt/meta/js/builtins/weakrefs/finalizationregistry-cleanupCallback-gets-a-microtask.optional.any.js.ini index 9af0aa8e510..5249b0cab44 100644 --- a/tests/wpt/meta/js/builtins/weakrefs/finalizationregistry-cleanupCallback-gets-a-microtask.optional.any.js.ini +++ b/tests/wpt/meta/js/builtins/weakrefs/finalizationregistry-cleanupCallback-gets-a-microtask.optional.any.js.ini @@ -1,5 +1,8 @@ [finalizationregistry-cleanupCallback-gets-a-microtask.optional.any.worker.html] - expected: ERROR + [HostCleanupFinalizationRegistry is an implementation-defined abstract operation that is expected to call CleanupFinalizationRegistry(finalizationRegistry) at some point in the future, if possible.] + expected: FAIL + [finalizationregistry-cleanupCallback-gets-a-microtask.optional.any.html] - expected: ERROR + [HostCleanupFinalizationRegistry is an implementation-defined abstract operation that is expected to call CleanupFinalizationRegistry(finalizationRegistry) at some point in the future, if possible.] + expected: FAIL diff --git a/tests/wpt/meta/js/builtins/weakrefs/finalizationregistry-cleanupCallback-throws-onerror-interaction.optional.window.js.ini b/tests/wpt/meta/js/builtins/weakrefs/finalizationregistry-cleanupCallback-throws-onerror-interaction.optional.window.js.ini deleted file mode 100644 index addeb13d5f1..00000000000 --- a/tests/wpt/meta/js/builtins/weakrefs/finalizationregistry-cleanupCallback-throws-onerror-interaction.optional.window.js.ini +++ /dev/null @@ -1,2 +0,0 @@ -[finalizationregistry-cleanupCallback-throws-onerror-interaction.optional.window.html] - expected: ERROR diff --git a/tests/wpt/meta/js/builtins/weakrefs/gc-has-one-chance-to-call-cleanupCallback-queueMicrotask.optional.any.js.ini b/tests/wpt/meta/js/builtins/weakrefs/gc-has-one-chance-to-call-cleanupCallback-queueMicrotask.optional.any.js.ini index 7479a168882..830562371e9 100644 --- a/tests/wpt/meta/js/builtins/weakrefs/gc-has-one-chance-to-call-cleanupCallback-queueMicrotask.optional.any.js.ini +++ b/tests/wpt/meta/js/builtins/weakrefs/gc-has-one-chance-to-call-cleanupCallback-queueMicrotask.optional.any.js.ini @@ -1,5 +1,8 @@ [gc-has-one-chance-to-call-cleanupCallback-queueMicrotask.optional.any.html] - expected: ERROR + [cleanupCallback has only one optional chance to be called for a GC that cleans up a registered target.] + expected: FAIL + [gc-has-one-chance-to-call-cleanupCallback-queueMicrotask.optional.any.worker.html] - expected: ERROR + [cleanupCallback has only one optional chance to be called for a GC that cleans up a registered target.] + expected: FAIL diff --git a/tests/wpt/meta/js/builtins/weakrefs/gc-has-one-chance-to-call-cleanupCallback-queueMicrotaskMutationObserver.optional.window.js.ini b/tests/wpt/meta/js/builtins/weakrefs/gc-has-one-chance-to-call-cleanupCallback-queueMicrotaskMutationObserver.optional.window.js.ini index 66b935a312d..a97669dd26c 100644 --- a/tests/wpt/meta/js/builtins/weakrefs/gc-has-one-chance-to-call-cleanupCallback-queueMicrotaskMutationObserver.optional.window.js.ini +++ b/tests/wpt/meta/js/builtins/weakrefs/gc-has-one-chance-to-call-cleanupCallback-queueMicrotaskMutationObserver.optional.window.js.ini @@ -1,2 +1,3 @@ [gc-has-one-chance-to-call-cleanupCallback-queueMicrotaskMutationObserver.optional.window.html] - expected: ERROR + [cleanupCallback has only one optional chance to be called for a GC that cleans up a registered target.] + expected: FAIL diff --git a/tests/wpt/meta/js/builtins/weakrefs/gc-has-one-chance-to-call-cleanupCallback.optional.any.js.ini b/tests/wpt/meta/js/builtins/weakrefs/gc-has-one-chance-to-call-cleanupCallback.optional.any.js.ini index 481060a9e16..d87b3100399 100644 --- a/tests/wpt/meta/js/builtins/weakrefs/gc-has-one-chance-to-call-cleanupCallback.optional.any.js.ini +++ b/tests/wpt/meta/js/builtins/weakrefs/gc-has-one-chance-to-call-cleanupCallback.optional.any.js.ini @@ -1,5 +1,8 @@ [gc-has-one-chance-to-call-cleanupCallback.optional.any.worker.html] - expected: ERROR + [cleanupCallback has only one optional chance to be called for a GC that cleans up a registered target.] + expected: FAIL + [gc-has-one-chance-to-call-cleanupCallback.optional.any.html] - expected: ERROR + [cleanupCallback has only one optional chance to be called for a GC that cleans up a registered target.] + expected: FAIL diff --git a/tests/wpt/meta/js/builtins/weakrefs/reentrancy.optional.any.js.ini b/tests/wpt/meta/js/builtins/weakrefs/reentrancy.optional.any.js.ini index d4990b12ddf..3c206ec3b14 100644 --- a/tests/wpt/meta/js/builtins/weakrefs/reentrancy.optional.any.js.ini +++ b/tests/wpt/meta/js/builtins/weakrefs/reentrancy.optional.any.js.ini @@ -1,5 +1,8 @@ [reentrancy.optional.any.html] - expected: ERROR + [cleanupCallback has only one optional chance to be called for a GC that cleans up a registered target.] + expected: FAIL + [reentrancy.optional.any.worker.html] - expected: ERROR + [cleanupCallback has only one optional chance to be called for a GC that cleans up a registered target.] + expected: FAIL diff --git a/tests/wpt/meta/js/builtins/weakrefs/return-undefined-with-gc.optional.any.js.ini b/tests/wpt/meta/js/builtins/weakrefs/return-undefined-with-gc.optional.any.js.ini index 94bfc185df9..f0d89845e28 100644 --- a/tests/wpt/meta/js/builtins/weakrefs/return-undefined-with-gc.optional.any.js.ini +++ b/tests/wpt/meta/js/builtins/weakrefs/return-undefined-with-gc.optional.any.js.ini @@ -1,5 +1,8 @@ [return-undefined-with-gc.optional.any.html] - expected: ERROR + [Return undefined regardless the result of CleanupFinalizationRegistry] + expected: FAIL + [return-undefined-with-gc.optional.any.worker.html] - expected: ERROR + [Return undefined regardless the result of CleanupFinalizationRegistry] + expected: FAIL diff --git a/tests/wpt/meta/js/builtins/weakrefs/unregister-cleaned-up-cell.optional.any.js.ini b/tests/wpt/meta/js/builtins/weakrefs/unregister-cleaned-up-cell.optional.any.js.ini index 4ebd816db1f..1971a5de17d 100644 --- a/tests/wpt/meta/js/builtins/weakrefs/unregister-cleaned-up-cell.optional.any.js.ini +++ b/tests/wpt/meta/js/builtins/weakrefs/unregister-cleaned-up-cell.optional.any.js.ini @@ -1,5 +1,8 @@ [unregister-cleaned-up-cell.optional.any.html] - expected: ERROR + [Cannot unregister a cell that has been cleaned up] + expected: FAIL + [unregister-cleaned-up-cell.optional.any.worker.html] - expected: ERROR + [Cannot unregister a cell that has been cleaned up] + expected: FAIL diff --git a/tests/wpt/meta/wasm/jsapi/gc/casts.tentative.any.js.ini b/tests/wpt/meta/wasm/jsapi/gc/casts.tentative.any.js.ini deleted file mode 100644 index 0b499ced6d7..00000000000 --- a/tests/wpt/meta/wasm/jsapi/gc/casts.tentative.any.js.ini +++ /dev/null @@ -1,5 +0,0 @@ -[casts.tentative.any.worker.html] - expected: ERROR - -[casts.tentative.any.html] - expected: ERROR diff --git a/tests/wpt/meta/wasm/jsapi/gc/exported-object.tentative.any.js.ini b/tests/wpt/meta/wasm/jsapi/gc/exported-object.tentative.any.js.ini deleted file mode 100644 index 59dd05d2b08..00000000000 --- a/tests/wpt/meta/wasm/jsapi/gc/exported-object.tentative.any.js.ini +++ /dev/null @@ -1,5 +0,0 @@ -[exported-object.tentative.any.worker.html] - expected: ERROR - -[exported-object.tentative.any.html] - expected: ERROR diff --git a/tests/wpt/meta/wasm/jsapi/gc/i31.tentative.any.js.ini b/tests/wpt/meta/wasm/jsapi/gc/i31.tentative.any.js.ini deleted file mode 100644 index 07c9b76b544..00000000000 --- a/tests/wpt/meta/wasm/jsapi/gc/i31.tentative.any.js.ini +++ /dev/null @@ -1,5 +0,0 @@ -[i31.tentative.any.html] - expected: ERROR - -[i31.tentative.any.worker.html] - expected: ERROR diff --git a/tests/wpt/meta/webmessaging/message-channels/close-event/garbage-collected.tentative.any.js.ini b/tests/wpt/meta/webmessaging/message-channels/close-event/garbage-collected.tentative.any.js.ini index 428474cd836..d7ed2a6fc81 100644 --- a/tests/wpt/meta/webmessaging/message-channels/close-event/garbage-collected.tentative.any.js.ini +++ b/tests/wpt/meta/webmessaging/message-channels/close-event/garbage-collected.tentative.any.js.ini @@ -1,8 +1,10 @@ [garbage-collected.tentative.any.html] + expected: TIMEOUT [Entangled port is garbage collected, and the close event is fired.] - expected: FAIL + expected: TIMEOUT [garbage-collected.tentative.any.worker.html] + expected: TIMEOUT [Entangled port is garbage collected, and the close event is fired.] - expected: FAIL + expected: TIMEOUT diff --git a/tests/wpt/meta/workers/semantics/structured-clone/dedicated.html.ini b/tests/wpt/meta/workers/semantics/structured-clone/dedicated.html.ini index 576d2fa68ba..377052e91ee 100644 --- a/tests/wpt/meta/workers/semantics/structured-clone/dedicated.html.ini +++ b/tests/wpt/meta/workers/semantics/structured-clone/dedicated.html.ini @@ -53,38 +53,8 @@ [A subclass instance will deserialize as its closest serializable superclass] expected: FAIL - [Resizable ArrayBuffer] - expected: FAIL - [Growable SharedArrayBuffer] expected: FAIL - [Length-tracking TypedArray] - expected: FAIL - - [Length-tracking DataView] - expected: FAIL - - [Serializing OOB TypedArray throws] - expected: FAIL - - [Serializing OOB DataView throws] - expected: FAIL - [A subclass instance will be received as its closest transferable superclass] expected: PRECONDITION_FAILED - - [Resizable ArrayBuffer is transferable] - expected: FAIL - - [Length-tracking TypedArray is transferable] - expected: FAIL - - [Length-tracking DataView is transferable] - expected: FAIL - - [Transferring OOB TypedArray throws] - expected: FAIL - - [Transferring OOB DataView throws] - expected: FAIL diff --git a/tests/wpt/mozilla/meta/MANIFEST.json b/tests/wpt/mozilla/meta/MANIFEST.json index bac1655cabf..ac5ccbdd47c 100644 --- a/tests/wpt/mozilla/meta/MANIFEST.json +++ b/tests/wpt/mozilla/meta/MANIFEST.json @@ -10500,7 +10500,7 @@ [] ], "interfaces.js": [ - "e37397aa973f5fb913e5b8097945368c2848bed8", + "8e67ede99ce211fb6fe7891a103e2da9c774cc53", [] ], "nested_asap_script.js": [ @@ -13441,7 +13441,7 @@ ] ], "interfaces.worker.js": [ - "2f048af52b8f807c24cf2b9f6d68e42f1eab2abd", + "b1c7b7e9c5c2f21eafdcd27eafe589e654260628", [ "mozilla/interfaces.worker.html", {} diff --git a/tests/wpt/mozilla/tests/mozilla/interfaces.js b/tests/wpt/mozilla/tests/mozilla/interfaces.js index e37397aa973..8e67ede99ce 100644 --- a/tests/wpt/mozilla/tests/mozilla/interfaces.js +++ b/tests/wpt/mozilla/tests/mozilla/interfaces.js @@ -18,6 +18,7 @@ function test_interfaces(interfaceNamesInGlobalScope) { "Date", "Error", "EvalError", + "FinalizationRegistry", "Float32Array", "Float64Array", "Function", @@ -54,6 +55,7 @@ function test_interfaces(interfaceNamesInGlobalScope) { "Uint8Array", "Uint8ClampedArray", "WeakMap", + "WeakRef", "WeakSet", "WebAssembly", ]; diff --git a/tests/wpt/mozilla/tests/mozilla/interfaces.worker.js b/tests/wpt/mozilla/tests/mozilla/interfaces.worker.js index 2f048af52b8..b1c7b7e9c5c 100644 --- a/tests/wpt/mozilla/tests/mozilla/interfaces.worker.js +++ b/tests/wpt/mozilla/tests/mozilla/interfaces.worker.js @@ -33,6 +33,7 @@ test_interfaces([ "FileList", "FileReader", "FileReaderSync", + "FinalizationRegistry", "FontFaceSet", "FormData", "Headers", @@ -59,6 +60,7 @@ test_interfaces([ "URL", "URLSearchParams", "WebSocket", + "WeakRef", "Worker", "WorkerGlobalScope", "WorkerLocation", |