diff --git a/components/script/dom/navigator.rs b/components/script/dom/navigator.rs index d4666ba2aa6..8a5524b437b 100644 --- a/components/script/dom/navigator.rs +++ b/components/script/dom/navigator.rs @@ -66,6 +66,21 @@ impl NavigatorMethods for Navigator { navigatorinfo::Product() } + // https://html.spec.whatwg.org/multipage/#dom-navigator-productsub + fn ProductSub(&self) -> DOMString { + navigatorinfo::ProductSub() + } + + // https://html.spec.whatwg.org/multipage/#dom-navigator-vendor + fn Vendor(&self) -> DOMString { + navigatorinfo::Vendor() + } + + // https://html.spec.whatwg.org/multipage/#dom-navigator-vendorsub + fn VendorSub(&self) -> DOMString { + navigatorinfo::VendorSub() + } + // https://html.spec.whatwg.org/multipage/#dom-navigator-taintenabled fn TaintEnabled(&self) -> bool { navigatorinfo::TaintEnabled() diff --git a/components/script/dom/navigatorinfo.rs b/components/script/dom/navigatorinfo.rs index 234b75024f3..117bfce87c1 100644 --- a/components/script/dom/navigatorinfo.rs +++ b/components/script/dom/navigatorinfo.rs @@ -9,6 +9,18 @@ pub fn Product() -> DOMString { DOMString::from("Gecko") } +pub fn ProductSub() -> DOMString { + DOMString::from("20100101") +} + +pub fn Vendor() -> DOMString { + DOMString::from("") +} + +pub fn VendorSub() -> DOMString { + DOMString::from("") +} + pub fn TaintEnabled() -> bool { false } diff --git a/components/script/dom/webidls/Navigator.webidl b/components/script/dom/webidls/Navigator.webidl index 1b4f18640ff..eb3577159fa 100644 --- a/components/script/dom/webidls/Navigator.webidl +++ b/components/script/dom/webidls/Navigator.webidl @@ -22,8 +22,11 @@ interface NavigatorID { readonly attribute DOMString appVersion; readonly attribute DOMString platform; readonly attribute DOMString product; // constant "Gecko" + [Exposed=Window] readonly attribute DOMString productSub; boolean taintEnabled(); // constant false readonly attribute DOMString userAgent; + [Exposed=Window] readonly attribute DOMString vendor; + [Exposed=Window] readonly attribute DOMString vendorSub; // constant "" }; // https://webbluetoothcg.github.io/web-bluetooth/#navigator-extensions diff --git a/components/script/dom/workernavigator.rs b/components/script/dom/workernavigator.rs index 9753c85c3bc..6c4867eda9d 100644 --- a/components/script/dom/workernavigator.rs +++ b/components/script/dom/workernavigator.rs @@ -42,6 +42,21 @@ impl WorkerNavigatorMethods for WorkerNavigator { navigatorinfo::Product() } + // https://html.spec.whatwg.org/multipage/#dom-navigator-productsub + fn ProductSub(&self) -> DOMString { + navigatorinfo::ProductSub() + } + + // https://html.spec.whatwg.org/multipage/#dom-navigator-vendor + fn Vendor(&self) -> DOMString { + navigatorinfo::Vendor() + } + + // https://html.spec.whatwg.org/multipage/#dom-navigator-vendorsub + fn VendorSub(&self) -> DOMString { + navigatorinfo::VendorSub() + } + // https://html.spec.whatwg.org/multipage/#dom-navigator-taintenabled fn TaintEnabled(&self) -> bool { navigatorinfo::TaintEnabled() diff --git a/tests/wpt/metadata/html/dom/interfaces.https.html.ini b/tests/wpt/metadata/html/dom/interfaces.https.html.ini index 7efd3a3c165..1dd351142d6 100644 --- a/tests/wpt/metadata/html/dom/interfaces.https.html.ini +++ b/tests/wpt/metadata/html/dom/interfaces.https.html.ini @@ -4976,15 +4976,6 @@ [PromiseRejectionEvent interface: attribute promise] expected: FAIL - [Navigator interface: attribute productSub] - expected: FAIL - - [Navigator interface: attribute vendor] - expected: FAIL - - [Navigator interface: attribute vendorSub] - expected: FAIL - [Navigator interface: attribute oscpu] expected: FAIL @@ -5003,15 +4994,6 @@ [Navigator interface: attribute hardwareConcurrency] expected: FAIL - [Navigator interface: window.navigator must inherit property "productSub" with the proper type] - expected: FAIL - - [Navigator interface: window.navigator must inherit property "vendor" with the proper type] - expected: FAIL - - [Navigator interface: window.navigator must inherit property "vendorSub" with the proper type] - expected: FAIL - [Navigator interface: window.navigator must inherit property "oscpu" with the proper type] expected: FAIL @@ -10049,15 +10031,6 @@ [PromiseRejectionEvent interface: attribute promise] expected: FAIL - [Navigator interface: attribute productSub] - expected: FAIL - - [Navigator interface: attribute vendor] - expected: FAIL - - [Navigator interface: attribute vendorSub] - expected: FAIL - [Navigator interface: attribute oscpu] expected: FAIL @@ -10076,15 +10049,6 @@ [Navigator interface: attribute hardwareConcurrency] expected: FAIL - [Navigator interface: window.navigator must inherit property "productSub" with the proper type] - expected: FAIL - - [Navigator interface: window.navigator must inherit property "vendor" with the proper type] - expected: FAIL - - [Navigator interface: window.navigator must inherit property "vendorSub" with the proper type] - expected: FAIL - [Navigator interface: window.navigator must inherit property "oscpu" with the proper type] expected: FAIL diff --git a/tests/wpt/metadata/html/dom/interfaces.worker.js.ini b/tests/wpt/metadata/html/dom/interfaces.worker.js.ini index 96a83788c9b..b129834a933 100644 --- a/tests/wpt/metadata/html/dom/interfaces.worker.js.ini +++ b/tests/wpt/metadata/html/dom/interfaces.worker.js.ini @@ -630,6 +630,24 @@ [WorkerNavigator interface: self.navigator must not have property "taintEnabled"] expected: FAIL + [WorkerNavigator interface: self.navigator must not have property "vendor"] + expected: FAIL + + [WorkerNavigator interface: self.navigator must not have property "vendorSub"] + expected: FAIL + + [WorkerNavigator interface: self.navigator must not have property "productSub"] + expected: FAIL + + [WorkerNavigator interface: member vendor] + expected: FAIL + + [WorkerNavigator interface: member vendorSub] + expected: FAIL + + [WorkerNavigator interface: member productSub] + expected: FAIL + [OffscreenCanvasRenderingContext2D interface: operation arc(unrestricted double, unrestricted double, unrestricted double, unrestricted double, unrestricted double, boolean)] expected: FAIL diff --git a/tests/wpt/metadata/workers/interfaces.worker.js.ini b/tests/wpt/metadata/workers/interfaces.worker.js.ini index 891223a96c5..5dd1628420c 100644 --- a/tests/wpt/metadata/workers/interfaces.worker.js.ini +++ b/tests/wpt/metadata/workers/interfaces.worker.js.ini @@ -30,6 +30,24 @@ [WorkerNavigator interface: attribute onLine] expected: FAIL + [WorkerNavigator interface: member productSub] + expected: FAIL + + [WorkerNavigator interface: member vendor] + expected: FAIL + + [WorkerNavigator interface: member vendorSub] + expected: FAIL + + [WorkerNavigator interface: self.navigator must not have property "productSub"] + expected: FAIL + + [WorkerNavigator interface: self.navigator must not have property "vendor"] + expected: FAIL + + [WorkerNavigator interface: self.navigator must not have property "vendorSub"] + expected: FAIL + [WorkerNavigator interface: self.navigator must inherit property "languages" with the proper type (7)] expected: FAIL