From a4d9a1d6a15cf55609ac4c37b7ac7d9b927a0a73 Mon Sep 17 00:00:00 2001 From: Bharath M R Date: Wed, 25 May 2016 18:38:56 -0700 Subject: [PATCH] Fixes #11407: Implement Window.status --- components/script/dom/webidls/Window.webidl | 2 +- components/script/dom/window.rs | 12 ++++++++++++ tests/wpt/metadata/MANIFEST.json | 6 ++++++ .../browser-interface-elements/status.html | 18 ++++++++++++++++++ 4 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 tests/wpt/web-platform-tests/html/browsers/the-window-object/browser-interface-elements/status.html diff --git a/components/script/dom/webidls/Window.webidl b/components/script/dom/webidls/Window.webidl index 65a7acbd1a2..c75def477da 100644 --- a/components/script/dom/webidls/Window.webidl +++ b/components/script/dom/webidls/Window.webidl @@ -20,7 +20,7 @@ //[Replaceable] readonly attribute BarProp scrollbars; //[Replaceable] readonly attribute BarProp statusbar; //[Replaceable] readonly attribute BarProp toolbar; - // attribute DOMString status; + attribute DOMString status; void close(); //readonly attribute boolean closed; //void stop(); diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs index 540266b6491..dd1877f17ed 100644 --- a/components/script/dom/window.rs +++ b/components/script/dom/window.rs @@ -160,6 +160,7 @@ pub struct Window { screen: MutNullableHeap>, session_storage: MutNullableHeap>, local_storage: MutNullableHeap>, + status: DOMRefCell, #[ignore_heap_size_of = "channels are hard"] scheduler_chan: IpcSender, timers: OneshotTimers, @@ -828,6 +829,16 @@ impl WindowMethods for Window { let dpr = self.window_size.get().map_or(1.0f32, |data| data.device_pixel_ratio.get()); Finite::wrap(dpr as f64) } + + // https://html.spec.whatwg.org/multipage/#dom-window-status + fn Status(&self) -> DOMString { + self.status.borrow().clone() + } + + // https://html.spec.whatwg.org/multipage/#dom-window-status + fn SetStatus(&self, status: DOMString) { + *self.status.borrow_mut() = status + } } pub trait ScriptHelpers { @@ -1500,6 +1511,7 @@ impl Window { screen: Default::default(), session_storage: Default::default(), local_storage: Default::default(), + status: DOMRefCell::new(DOMString::new()), scheduler_chan: scheduler_chan.clone(), timers: OneshotTimers::new(timer_event_chan, scheduler_chan), next_worker_id: Cell::new(WorkerId(0)), diff --git a/tests/wpt/metadata/MANIFEST.json b/tests/wpt/metadata/MANIFEST.json index 91b533bcbff..5d096a98043 100644 --- a/tests/wpt/metadata/MANIFEST.json +++ b/tests/wpt/metadata/MANIFEST.json @@ -35938,6 +35938,12 @@ "deleted_reftests": {}, "items": { "testharness": { + "html/browsers/the-window-object/browser-interface-elements/status.html": [ + { + "path": "html/browsers/the-window-object/browser-interface-elements/status.html", + "url": "/html/browsers/the-window-object/browser-interface-elements/status.html" + } + ], "html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_attribute-getter-setter.html": [ { "path": "html/semantics/links/links-created-by-a-and-area-elements/htmlanchorelement_attribute-getter-setter.html", diff --git a/tests/wpt/web-platform-tests/html/browsers/the-window-object/browser-interface-elements/status.html b/tests/wpt/web-platform-tests/html/browsers/the-window-object/browser-interface-elements/status.html new file mode 100644 index 00000000000..ed3facb53f8 --- /dev/null +++ b/tests/wpt/web-platform-tests/html/browsers/the-window-object/browser-interface-elements/status.html @@ -0,0 +1,18 @@ + + +Window.status tests + + + +
+