From 19be2cd3fa4b8fe2560dda9a62f1c2271f9fb41e Mon Sep 17 00:00:00 2001 From: sagudev Date: Wed, 14 Apr 2021 09:20:58 +0200 Subject: [PATCH 1/8] Update mozjs to 88 --- Cargo.lock | 4 ++-- components/script/Cargo.toml | 2 +- .../dom/bindings/codegen/CodegenRust.py | 21 +++++++++++-------- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ed20bf436b6..b3beae2aac1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3824,7 +3824,7 @@ dependencies = [ [[package]] name = "mozjs" version = "0.14.1" -source = "git+https://github.com/servo/rust-mozjs#ef63e568c6aaa1c0f0d1c11f49a99acff1306709" +source = "git+https://github.com/sagudev/rust-mozjs#b676b375fc56f22d6199d462f6c982ef5065e509" dependencies = [ "cc", "lazy_static", @@ -3837,7 +3837,7 @@ dependencies = [ [[package]] name = "mozjs_sys" version = "0.68.2" -source = "git+https://github.com/servo/mozjs?rev=95387f7235ae9ba950a8dbebb850f41709ff5b1d#95387f7235ae9ba950a8dbebb850f41709ff5b1d" +source = "git+https://github.com/sagudev/mozjs?rev=97bfe5925c36659935a472a6b807dddebd0978ed#97bfe5925c36659935a472a6b807dddebd0978ed" dependencies = [ "bindgen", "cc", diff --git a/components/script/Cargo.toml b/components/script/Cargo.toml index a09ccf8f257..aa2f1cab024 100644 --- a/components/script/Cargo.toml +++ b/components/script/Cargo.toml @@ -63,7 +63,7 @@ image = "0.23" indexmap = { version = "1.0.2", features = ["std"] } ipc-channel = "0.14" itertools = "0.8" -js = { package = "mozjs", git = "https://github.com/servo/rust-mozjs" } +js = { package = "mozjs", git = "https://github.com/sagudev/rust-mozjs" } jstraceable_derive = { path = "../jstraceable_derive" } keyboard-types = "0.5" lazy_static = "1" diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index 8573998ebb3..c1f79b1362d 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -1833,6 +1833,7 @@ class AttrDefiner(PropertyDefiner): "name": m.identifier.name, "attr": m, "flags": "JSPROP_ENUMERATE", + "is_accessor": "true", } for m in descriptor.interface.members if m.isAttr() and m.isStatic() == static @@ -1847,7 +1848,8 @@ class AttrDefiner(PropertyDefiner): self.regular.append({ "name": "@@toStringTag", "attr": None, - "flags": "JSPROP_READONLY | JSPROP_INTERNAL_USE_BIT" + "flags": "JSPROP_READONLY", + "is_accessor": "false", }) def generateArray(self, array, name): @@ -1897,23 +1899,24 @@ class AttrDefiner(PropertyDefiner): def specData(attr): if attr["name"] == "@@toStringTag": - return (attr["name"][2:], attr["flags"], + return (attr["name"][2:], attr["flags"], attr["is_accessor"], str_to_const_array(self.descriptor.interface.getClassName())) flags = attr["flags"] if self.unforgeable: flags += " | JSPROP_PERMANENT" - return (str_to_const_array(attr["attr"].identifier.name), flags, getter(attr), + return (str_to_const_array(attr["attr"].identifier.name), flags, attr["is_accessor"], getter(attr), setter(attr)) def template(m): if m["name"] == "@@toStringTag": return """ JSPropertySpec { name: JSPropertySpec_Name { symbol_: SymbolCode::%s as usize + 1 }, - flags_: (%s) as u8, + attributes_: (%s) as u8, + isAccessor_: (%s), u: JSPropertySpec_AccessorsOrValue { value: JSPropertySpec_ValueWrapper { - type_: JSValueType::JSVAL_TYPE_STRING as _, + type_: JSPropertySpec_ValueWrapper_Type::String, __bindgen_anon_1: JSPropertySpec_ValueWrapper__bindgen_ty_1 { string: %s as *const u8 as *const libc::c_char, } @@ -1923,7 +1926,8 @@ class AttrDefiner(PropertyDefiner): """ return """ JSPropertySpec { name: JSPropertySpec_Name { string_: %s as *const u8 as *const libc::c_char }, - flags_: (%s) as u8, + attributes_: (%s) as u8, + isAccessor_: (%s), u: JSPropertySpec_AccessorsOrValue { accessors: JSPropertySpec_AccessorsOrValue_Accessors { getter: JSPropertySpec_Accessor { @@ -2923,7 +2927,7 @@ let root = raw.reflect_with(obj.get()); let _ac = JSAutoRealm::new(*cx, obj.get()); rooted!(in(*cx) let mut proto = ptr::null_mut::()); GetProtoObject(cx, obj.handle(), proto.handle_mut()); -assert!(JS_SplicePrototype(*cx, obj.handle(), proto.handle())); +assert!(JS_SetPrototype(*cx, obj.handle(), proto.handle())); let mut immutable = false; assert!(JS_SetImmutablePrototype(*cx, obj.handle(), &mut immutable)); assert!(immutable); @@ -6090,13 +6094,13 @@ def generate_imports(config, cgthings, descriptors, callbacks=None, dictionaries 'js::jsapi::JSPROP_ENUMERATE', 'js::jsapi::JSPROP_PERMANENT', 'js::jsapi::JSPROP_READONLY', - 'js::jsapi::JSPROP_INTERNAL_USE_BIT', 'js::jsapi::JSPropertySpec', 'js::jsapi::JSPropertySpec_Accessor', 'js::jsapi::JSPropertySpec_AccessorsOrValue', 'js::jsapi::JSPropertySpec_AccessorsOrValue_Accessors', 'js::jsapi::JSPropertySpec_Name', 'js::jsapi::JSPropertySpec_ValueWrapper', + 'js::jsapi::JSPropertySpec_ValueWrapper_Type', 'js::jsapi::JSPropertySpec_ValueWrapper__bindgen_ty_1', 'js::jsapi::JSString', 'js::jsapi::JSTracer', @@ -6130,7 +6134,6 @@ def generate_imports(config, cgthings, descriptors, callbacks=None, dictionaries 'js::rust::wrappers::JS_SetProperty', 'js::rust::wrappers::JS_SetPrototype', 'js::jsapi::JS_SetReservedSlot', - 'js::rust::wrappers::JS_SplicePrototype', 'js::rust::wrappers::JS_WrapValue', 'js::rust::wrappers::JS_WrapObject', 'js::rust::MutableHandle', From 68b10e27cc7aee44d6335f84bd6ca192c70d94c7 Mon Sep 17 00:00:00 2001 From: sagu <16504129+sagudev@users.noreply.github.com> Date: Sat, 17 Apr 2021 07:05:56 +0200 Subject: [PATCH 2/8] Update Cargo.toml --- components/style/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/style/Cargo.toml b/components/style/Cargo.toml index 3a784e19512..50e05fdc9d0 100644 --- a/components/style/Cargo.toml +++ b/components/style/Cargo.toml @@ -80,7 +80,7 @@ unicode-segmentation = "1.0" void = "1.0.2" [build-dependencies] -bindgen = { version = "0.53", optional = true, default-features = false } +bindgen = { version = "0.58", optional = true, default-features = false } lazy_static = "1" log = "0.4" regex = { version = "1.1", optional = true } From 13e9785f1cacb582ef3ad9a8e837006ce2437b7a Mon Sep 17 00:00:00 2001 From: sagudev Date: Sat, 17 Apr 2021 07:11:25 +0200 Subject: [PATCH 3/8] Do not use deprecated bindgen methods --- components/style/build_gecko.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/components/style/build_gecko.rs b/components/style/build_gecko.rs index 1f034cad934..094b44a7087 100644 --- a/components/style/build_gecko.rs +++ b/components/style/build_gecko.rs @@ -266,7 +266,7 @@ impl<'a> BuilderWithConfig<'a> { fn handle_common(self, fixups: &mut Vec) -> BuilderWithConfig<'a> { self.handle_str_items("headers", |b, item| b.header(add_include(item))) .handle_str_items("raw-lines", |b, item| b.raw_line(item)) - .handle_str_items("hide-types", |b, item| b.blacklist_type(item)) + .handle_str_items("hide-types", |b, item| b.blocklist_type(item)) .handle_table_items("fixups", |builder, item| { fixups.push(Fixup { pat: item["pat"].as_str().unwrap().into(), @@ -293,16 +293,16 @@ fn generate_structs() { let mut fixups = vec![]; let builder = BuilderWithConfig::new(builder, CONFIG["structs"].as_table().unwrap()) .handle_common(&mut fixups) - .handle_str_items("whitelist-functions", |b, item| b.whitelist_function(item)) + .handle_str_items("whitelist-functions", |b, item| b.allowlist_function(item)) .handle_str_items("bitfield-enums", |b, item| b.bitfield_enum(item)) .handle_str_items("rusty-enums", |b, item| b.rustified_enum(item)) - .handle_str_items("whitelist-vars", |b, item| b.whitelist_var(item)) - .handle_str_items("whitelist-types", |b, item| b.whitelist_type(item)) + .handle_str_items("whitelist-vars", |b, item| b.allowlist_var(item)) + .handle_str_items("whitelist-types", |b, item| b.allowlist_type(item)) .handle_str_items("opaque-types", |b, item| b.opaque_type(item)) .handle_table_items("cbindgen-types", |b, item| { let gecko = item["gecko"].as_str().unwrap(); let servo = item["servo"].as_str().unwrap(); - b.blacklist_type(format!("mozilla::{}", gecko)) + b.blocklist_type(format!("mozilla::{}", gecko)) .module_raw_line("root::mozilla", format!("pub use {} as {};", servo, gecko)) }) .handle_table_items("mapped-generic-types", |builder, item| { @@ -320,7 +320,7 @@ fn generate_structs() { pat: format!("\\broot\\s*::\\s*{}\\b", gecko), rep: format!("crate::gecko_bindings::structs::{}", gecko_name), }); - builder.blacklist_type(gecko).raw_line(format!( + builder.blocklist_type(gecko).raw_line(format!( "pub type {0}{2} = {1}{2};", gecko_name, servo, From 6fbcd5f56482f03d2e2c31f616d65cbc6bc9b50f Mon Sep 17 00:00:00 2001 From: sagudev Date: Sat, 17 Apr 2021 17:03:32 +0200 Subject: [PATCH 4/8] update bindgen & lock --- Cargo.lock | 45 +++++++++++++-------------------------------- 1 file changed, 13 insertions(+), 32 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ed20bf436b6..7369f1d75bf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -266,16 +266,15 @@ dependencies = [ [[package]] name = "bindgen" -version = "0.53.3" +version = "0.58.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c72a978d268b1d70b0e963217e60fdabd9523a941457a6c42a7315d15c7e89e5" +checksum = "0f8523b410d7187a43085e7e064416ea32ded16bd0a4e6fc025e21616d01258f" dependencies = [ "bitflags", "cexpr", - "cfg-if 0.1.10", "clang-sys", "clap", - "env_logger 0.7.1", + "env_logger 0.8.2", "lazy_static", "lazycell", "log", @@ -677,13 +676,13 @@ dependencies = [ [[package]] name = "clang-sys" -version = "0.29.3" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe6837df1d5cba2397b835c8530f51723267e16abbf83892e9e5af4f0e5dd10a" +checksum = "853eda514c284c2287f4bf20ae614f8781f40a81d32ecda6e91449304dfe077c" dependencies = [ "glob", "libc", - "libloading 0.5.2", + "libloading 0.7.0", ] [[package]] @@ -1610,11 +1609,8 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36" dependencies = [ - "atty", - "humantime 1.3.0", "log", "regex", - "termcolor", ] [[package]] @@ -1624,7 +1620,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26ecb66b4bdca6c1409b40fb255eefc2bd4f6d135dab3c3124f80ffa2a9661e" dependencies = [ "atty", - "humantime 2.0.1", + "humantime", "log", "regex", "termcolor", @@ -2763,15 +2759,6 @@ version = "1.3.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc35c995b9d93ec174cf9a27d425c7892722101e14993cd227fdb51d70cf9589" -[[package]] -name = "humantime" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" -dependencies = [ - "quick-error", -] - [[package]] name = "humantime" version = "2.0.1" @@ -3824,7 +3811,7 @@ dependencies = [ [[package]] name = "mozjs" version = "0.14.1" -source = "git+https://github.com/servo/rust-mozjs#ef63e568c6aaa1c0f0d1c11f49a99acff1306709" +source = "git+https://github.com/servo/rust-mozjs#fe738cca3320ffcbc4c520ced79c2141ceabf42d" dependencies = [ "cc", "lazy_static", @@ -3837,7 +3824,7 @@ dependencies = [ [[package]] name = "mozjs_sys" version = "0.68.2" -source = "git+https://github.com/servo/mozjs?rev=95387f7235ae9ba950a8dbebb850f41709ff5b1d#95387f7235ae9ba950a8dbebb850f41709ff5b1d" +source = "git+https://github.com/servo/mozjs?rev=de147f0cf52da9c84fa95edf09c5f9f84695088c#de147f0cf52da9c84fa95edf09c5f9f84695088c" dependencies = [ "bindgen", "cc", @@ -4777,12 +4764,6 @@ dependencies = [ "time", ] -[[package]] -name = "quick-error" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eda5fe9b71976e62bc81b781206aaa076401769b2143379d3eb2118388babac4" - [[package]] name = "quickcheck" version = "0.9.2" @@ -5820,9 +5801,9 @@ dependencies = [ [[package]] name = "shlex" -version = "0.1.1" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2" +checksum = "42a568c8f2cd051a4d283bd6eb0343ac214c1b0f1ac19f93e1175b2dee38c73d" [[package]] name = "sig" @@ -7244,7 +7225,7 @@ dependencies = [ [[package]] name = "webxr" version = "0.0.1" -source = "git+https://github.com/servo/webxr#80700ee558b466f68f4a54cc50a9744c02cf7a42" +source = "git+https://github.com/servo/webxr#af2e84a28d52521212816584e0553aaf364a9162" dependencies = [ "android_injected_glue", "bindgen", @@ -7267,7 +7248,7 @@ dependencies = [ [[package]] name = "webxr-api" version = "0.0.1" -source = "git+https://github.com/servo/webxr#80700ee558b466f68f4a54cc50a9744c02cf7a42" +source = "git+https://github.com/servo/webxr#af2e84a28d52521212816584e0553aaf364a9162" dependencies = [ "euclid", "ipc-channel", From 9b8e9d5d6364e359f18fb421d89a18552a25b535 Mon Sep 17 00:00:00 2001 From: sagu <16504129+sagudev@users.noreply.github.com> Date: Sat, 17 Apr 2021 17:06:41 +0200 Subject: [PATCH 5/8] Update Cargo.toml --- components/script/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/script/Cargo.toml b/components/script/Cargo.toml index aa2f1cab024..a09ccf8f257 100644 --- a/components/script/Cargo.toml +++ b/components/script/Cargo.toml @@ -63,7 +63,7 @@ image = "0.23" indexmap = { version = "1.0.2", features = ["std"] } ipc-channel = "0.14" itertools = "0.8" -js = { package = "mozjs", git = "https://github.com/sagudev/rust-mozjs" } +js = { package = "mozjs", git = "https://github.com/servo/rust-mozjs" } jstraceable_derive = { path = "../jstraceable_derive" } keyboard-types = "0.5" lazy_static = "1" From 7035ea67fbb2ea98f4a9a82c060bbca01cbc2e90 Mon Sep 17 00:00:00 2001 From: sagudev Date: Sat, 17 Apr 2021 17:48:41 +0200 Subject: [PATCH 6/8] Remove humantime from 'ignored packages with duplicated versions' for Tidy --- servo-tidy.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/servo-tidy.toml b/servo-tidy.toml index f16b226dda4..dd358e71131 100644 --- a/servo-tidy.toml +++ b/servo-tidy.toml @@ -41,7 +41,6 @@ packages = [ "env_logger", "fixedbitset", "gleam", - "humantime", "libloading", "lock_api", "memoffset", From 13095741c577114b203d15910f19488ec3b7d3ed Mon Sep 17 00:00:00 2001 From: sagudev Date: Sat, 17 Apr 2021 17:53:11 +0200 Subject: [PATCH 7/8] Fix for bindgen --- components/script/dom/bindings/codegen/CodegenRust.py | 1 + 1 file changed, 1 insertion(+) diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index c1f79b1362d..24f62ebe486 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -4111,6 +4111,7 @@ class CGMemberJITInfo(CGThing): protoID: PrototypeList::ID::${name} as u16, }, __bindgen_anon_3: JSJitInfo__bindgen_ty_3 { depth: ${depth} }, + _bitfield_align_1: Default::default(), _bitfield_1: __BindgenBitfieldUnit::new( new_jsjitinfo_bitfield_1!( JSJitInfo_OpType::${opType} as u8, From fd3bbc7ec928b13aff408665b6af7c163db07767 Mon Sep 17 00:00:00 2001 From: sagudev Date: Sat, 17 Apr 2021 18:19:02 +0200 Subject: [PATCH 8/8] Fix error --- components/script/dom/bindings/codegen/CodegenRust.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index 24f62ebe486..1f7a43ba831 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -4111,7 +4111,7 @@ class CGMemberJITInfo(CGThing): protoID: PrototypeList::ID::${name} as u16, }, __bindgen_anon_3: JSJitInfo__bindgen_ty_3 { depth: ${depth} }, - _bitfield_align_1: Default::default(), + _bitfield_align_1: [], _bitfield_1: __BindgenBitfieldUnit::new( new_jsjitinfo_bitfield_1!( JSJitInfo_OpType::${opType} as u8,