diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index 6527e98b2e4..983ee450d45 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -2614,7 +2614,7 @@ impl DocumentMethods for Document { "focusevent" => Ok(Root::upcast(FocusEvent::new_uninitialized(&self.window))), "hashchangeevent" => - Ok(Root::upcast(HashChangeEvent::new_uninitialized(&self.window.upcast()))), + Ok(Root::upcast(HashChangeEvent::new_uninitialized(&self.window))), "keyboardevent" => Ok(Root::upcast(KeyboardEvent::new_uninitialized(&self.window))), "messageevent" => diff --git a/components/script/dom/hashchangeevent.rs b/components/script/dom/hashchangeevent.rs index b93b7a93631..cd4b2b0a71f 100644 --- a/components/script/dom/hashchangeevent.rs +++ b/components/script/dom/hashchangeevent.rs @@ -11,7 +11,7 @@ use dom::bindings::js::Root; use dom::bindings::reflector::reflect_dom_object; use dom::bindings::str::{DOMString, USVString}; use dom::event::Event; -use dom::globalscope::GlobalScope; +use dom::window::Window; use servo_atoms::Atom; // https://html.spec.whatwg.org/multipage/#hashchangeevent @@ -31,13 +31,13 @@ impl HashChangeEvent { } } - pub fn new_uninitialized(global: &GlobalScope) -> Root { + pub fn new_uninitialized(window: &Window) -> Root { reflect_dom_object(box HashChangeEvent::new_inherited(String::new(), String::new()), - global, + window, HashChangeEventBinding::Wrap) } - pub fn new(global: &GlobalScope, + pub fn new(window: &Window, type_: Atom, bubbles: bool, cancelable: bool, @@ -45,7 +45,7 @@ impl HashChangeEvent { new_url: String) -> Root { let ev = reflect_dom_object(box HashChangeEvent::new_inherited(old_url, new_url), - global, + window, HashChangeEventBinding::Wrap); { let event = ev.upcast::(); @@ -54,11 +54,11 @@ impl HashChangeEvent { ev } - pub fn Constructor(global: &GlobalScope, + pub fn Constructor(window: &Window, type_: DOMString, init: &HashChangeEventBinding::HashChangeEventInit) -> Fallible> { - Ok(HashChangeEvent::new(global, + Ok(HashChangeEvent::new(window, Atom::from(type_), init.parent.bubbles, init.parent.cancelable, diff --git a/components/script/dom/webidls/HashChangeEvent.webidl b/components/script/dom/webidls/HashChangeEvent.webidl index d34400c7ccc..3d81e8ad383 100644 --- a/components/script/dom/webidls/HashChangeEvent.webidl +++ b/components/script/dom/webidls/HashChangeEvent.webidl @@ -3,7 +3,8 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ // https://html.spec.whatwg.org/multipage/#hashchangeevent -[Constructor(DOMString type, optional HashChangeEventInit eventInitDict), Exposed=(Window,Worker)] +[Constructor(DOMString type, optional HashChangeEventInit eventInitDict), + Exposed=Window] interface HashChangeEvent : Event { readonly attribute USVString oldURL; readonly attribute USVString newURL; diff --git a/tests/wpt/metadata/workers/semantics/interface-objects/002.worker.js.ini b/tests/wpt/metadata/workers/semantics/interface-objects/002.worker.js.ini index d05ef098814..845577c4bfb 100644 --- a/tests/wpt/metadata/workers/semantics/interface-objects/002.worker.js.ini +++ b/tests/wpt/metadata/workers/semantics/interface-objects/002.worker.js.ini @@ -6,9 +6,6 @@ [The PopStateEvent interface object should not be exposed.] expected: FAIL - [The HashChangeEvent interface object should not be exposed.] - expected: FAIL - [The PageTransitionEvent interface object should not be exposed.] expected: FAIL diff --git a/tests/wpt/mozilla/tests/mozilla/interfaces.worker.js b/tests/wpt/mozilla/tests/mozilla/interfaces.worker.js index d52f50df997..b99d8badf8e 100644 --- a/tests/wpt/mozilla/tests/mozilla/interfaces.worker.js +++ b/tests/wpt/mozilla/tests/mozilla/interfaces.worker.js @@ -29,7 +29,6 @@ test_interfaces([ "FileReader", "FileReaderSync", "FormData", - "HashChangeEvent", "Headers", "History", "ImageData",