From cef3f0e039ddba66edad9afe5d04376a095b9685 Mon Sep 17 00:00:00 2001 From: Alan Jeffrey Date: Tue, 10 Apr 2018 12:25:26 -0500 Subject: [PATCH] Use the incumbent global as the source of x-origin postMessage --- components/script/dom/dissimilaroriginwindow.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/components/script/dom/dissimilaroriginwindow.rs b/components/script/dom/dissimilaroriginwindow.rs index 602338be26a..846ce9ca0c4 100644 --- a/components/script/dom/dissimilaroriginwindow.rs +++ b/components/script/dom/dissimilaroriginwindow.rs @@ -192,9 +192,13 @@ impl DissimilarOriginWindowMethods for DissimilarOriginWindow { impl DissimilarOriginWindow { pub fn post_message(&self, origin: Option, data: StructuredCloneData) { + let incumbent = match GlobalScope::incumbent() { + None => return warn!("postMessage called with no incumbent global"), + Some(incumbent) => incumbent, + }; let msg = ScriptMsg::PostMessage(self.window_proxy.browsing_context_id(), origin, data.move_to_arraybuffer()); - let _ = self.upcast::().script_to_constellation_chan().send(msg); + let _ = incumbent.script_to_constellation_chan().send(msg); } }