aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSiddhant N Trivedi <sidntrivedi012@gmail.com>2025-04-19 07:04:13 +0530
committerGitHub <noreply@github.com>2025-04-19 01:34:13 +0000
commit7ee9d07a9a7cfc631e2202f3a3727d897a48b3bb (patch)
treefbcaafa73aa3777e56c868b7f37d82749308d162
parentc787688afc873e78d9526809cf7d2cde689c0ae4 (diff)
downloadservo-7ee9d07a9a7cfc631e2202f3a3727d897a48b3bb.tar.gz
servo-7ee9d07a9a7cfc631e2202f3a3727d897a48b3bb.zip
content/dom: set navigator.onLine attribute to `true` (#36560)
Sets the navigator.onLine attribute to true. Testing: Ran `./mach run https://pinterest.com --enable-experimental-web-platform-features`. This doesn't show the "Hmm..you're not connected to the internet" text anymore. <img width="1027" alt="Screenshot 2025-04-16 at 11 31 02 AM" src="https://github.com/user-attachments/assets/3745077b-dc51-42ce-88a0-38d5f157fc0c" /> part of: #36554 --------- Signed-off-by: Siddhant N. Trivedi <sidntrivedi012@gmail.com> Signed-off-by: Siddhant N Trivedi <sidntrivedi012@gmail.com> Co-authored-by: Josh Matthews <josh@joshmatthews.net>
-rw-r--r--components/script/dom/navigator.rs5
-rw-r--r--components/script/dom/workernavigator.rs5
-rw-r--r--components/script_bindings/webidls/Navigator.webidl8
-rw-r--r--components/script_bindings/webidls/WorkerNavigator.webidl2
-rw-r--r--tests/wpt/meta/html/browsers/offline/browser-state/navigator_online_online.https.html.ini3
-rw-r--r--tests/wpt/meta/html/dom/idlharness.any.js.ini6
-rw-r--r--tests/wpt/meta/html/dom/idlharness.https.html.ini9
-rw-r--r--tests/wpt/meta/workers/WorkerNavigator.any.js.ini4
8 files changed, 18 insertions, 24 deletions
diff --git a/components/script/dom/navigator.rs b/components/script/dom/navigator.rs
index ffbf2546a80..ee67359f859 100644
--- a/components/script/dom/navigator.rs
+++ b/components/script/dom/navigator.rs
@@ -222,6 +222,11 @@ impl NavigatorMethods<crate::DomTypeHolder> for Navigator {
to_frozen_array(&[self.Language()], cx, retval, can_gc)
}
+ /// <https://html.spec.whatwg.org/multipage/#dom-navigator-online>
+ fn OnLine(&self) -> bool {
+ true
+ }
+
// https://html.spec.whatwg.org/multipage/#dom-navigator-plugins
fn Plugins(&self) -> DomRoot<PluginArray> {
self.plugins
diff --git a/components/script/dom/workernavigator.rs b/components/script/dom/workernavigator.rs
index e3a406ed4f8..0b0e90ffd0c 100644
--- a/components/script/dom/workernavigator.rs
+++ b/components/script/dom/workernavigator.rs
@@ -105,6 +105,11 @@ impl WorkerNavigatorMethods<crate::DomTypeHolder> for WorkerNavigator {
to_frozen_array(&[self.Language()], cx, retval, can_gc)
}
+ /// <https://html.spec.whatwg.org/multipage/#dom-navigator-online>
+ fn OnLine(&self) -> bool {
+ true
+ }
+
// https://w3c.github.io/permissions/#navigator-and-workernavigator-extension
fn Permissions(&self) -> DomRoot<Permissions> {
self.permissions
diff --git a/components/script_bindings/webidls/Navigator.webidl b/components/script_bindings/webidls/Navigator.webidl
index 92f37baa95b..6ac6175f3ca 100644
--- a/components/script_bindings/webidls/Navigator.webidl
+++ b/components/script_bindings/webidls/Navigator.webidl
@@ -9,7 +9,7 @@ interface Navigator {
};
Navigator includes NavigatorID;
Navigator includes NavigatorLanguage;
-//Navigator includes NavigatorOnLine;
+Navigator includes NavigatorOnLine;
//Navigator includes NavigatorContentUtils;
//Navigator includes NavigatorStorageUtils;
Navigator includes NavigatorPlugins;
@@ -43,6 +43,12 @@ interface mixin NavigatorLanguage {
readonly attribute any languages;
};
+// https://html.spec.whatwg.org/multipage/#dom-navigator-online
+[Exposed=(Window,Worker)]
+interface mixin NavigatorOnLine {
+ readonly attribute boolean onLine;
+};
+
// https://html.spec.whatwg.org/multipage/#navigatorplugins
interface mixin NavigatorPlugins {
[SameObject] readonly attribute PluginArray plugins;
diff --git a/components/script_bindings/webidls/WorkerNavigator.webidl b/components/script_bindings/webidls/WorkerNavigator.webidl
index 33ddfade93d..7e80fe9a009 100644
--- a/components/script_bindings/webidls/WorkerNavigator.webidl
+++ b/components/script_bindings/webidls/WorkerNavigator.webidl
@@ -7,7 +7,7 @@
interface WorkerNavigator {};
WorkerNavigator includes NavigatorID;
WorkerNavigator includes NavigatorLanguage;
-//WorkerNavigator includes NavigatorOnLine;
+WorkerNavigator includes NavigatorOnLine;
WorkerNavigator includes NavigatorConcurrentHardware;
// https://w3c.github.io/permissions/#navigator-and-workernavigator-extension
diff --git a/tests/wpt/meta/html/browsers/offline/browser-state/navigator_online_online.https.html.ini b/tests/wpt/meta/html/browsers/offline/browser-state/navigator_online_online.https.html.ini
deleted file mode 100644
index 19f382bec2f..00000000000
--- a/tests/wpt/meta/html/browsers/offline/browser-state/navigator_online_online.https.html.ini
+++ /dev/null
@@ -1,3 +0,0 @@
-[navigator_online_online.https.html]
- [Offline Application Cache - navigator_online_online]
- expected: FAIL
diff --git a/tests/wpt/meta/html/dom/idlharness.any.js.ini b/tests/wpt/meta/html/dom/idlharness.any.js.ini
index 7d0eb9856b2..f17466adc7f 100644
--- a/tests/wpt/meta/html/dom/idlharness.any.js.ini
+++ b/tests/wpt/meta/html/dom/idlharness.any.js.ini
@@ -185,15 +185,9 @@
[WorkerNavigator interface: member taintEnabled]
expected: FAIL
- [WorkerNavigator interface: attribute onLine]
- expected: FAIL
-
[WorkerNavigator interface: self.navigator must not have property "taintEnabled"]
expected: FAIL
- [WorkerNavigator interface: self.navigator must inherit property "onLine" with the proper type]
- expected: FAIL
-
[OffscreenCanvasRenderingContext2D interface: operation getContextAttributes()]
expected: FAIL
diff --git a/tests/wpt/meta/html/dom/idlharness.https.html.ini b/tests/wpt/meta/html/dom/idlharness.https.html.ini
index a60e9fcd4af..29cbc17c7e3 100644
--- a/tests/wpt/meta/html/dom/idlharness.https.html.ini
+++ b/tests/wpt/meta/html/dom/idlharness.https.html.ini
@@ -695,9 +695,6 @@
[CanvasRenderingContext2D interface: document.createElement("canvas").getContext("2d") must inherit property "imageSmoothingQuality" with the proper type]
expected: FAIL
- [Navigator interface: attribute onLine]
- expected: FAIL
-
[OffscreenCanvasRenderingContext2D interface: operation getLineDash()]
expected: FAIL
@@ -5348,9 +5345,6 @@
[Navigator interface: attribute oscpu]
expected: FAIL
- [Navigator interface: attribute onLine]
- expected: FAIL
-
[Navigator interface: operation registerProtocolHandler(DOMString, USVString)]
expected: FAIL
@@ -5366,9 +5360,6 @@
[Navigator interface: window.navigator must inherit property "oscpu" with the proper type]
expected: FAIL
- [Navigator interface: window.navigator must inherit property "onLine" with the proper type]
- expected: FAIL
-
[Navigator interface: window.navigator must inherit property "registerProtocolHandler(DOMString, USVString)" with the proper type]
expected: FAIL
diff --git a/tests/wpt/meta/workers/WorkerNavigator.any.js.ini b/tests/wpt/meta/workers/WorkerNavigator.any.js.ini
index 9f6e56150ef..02500985497 100644
--- a/tests/wpt/meta/workers/WorkerNavigator.any.js.ini
+++ b/tests/wpt/meta/workers/WorkerNavigator.any.js.ini
@@ -3,7 +3,3 @@
[WorkerNavigator.any.serviceworker.html]
expected: ERROR
-
-[WorkerNavigator.any.worker.html]
- [Testing Navigator properties on workers.]
- expected: FAIL