From b44570da24938980ba7fa61a9574edbe027a0f8c Mon Sep 17 00:00:00 2001 From: Mo Bitar Date: Mon, 30 Apr 2018 14:23:57 -0500 Subject: [PATCH] Specifiy origin for postMessage --- .../javascripts/app/services/componentManager.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/app/assets/javascripts/app/services/componentManager.js b/app/assets/javascripts/app/services/componentManager.js index e27200685..2e0e1d419 100644 --- a/app/assets/javascripts/app/services/componentManager.js +++ b/app/assets/javascripts/app/services/componentManager.js @@ -229,7 +229,13 @@ class ComponentManager { if(this.loggingEnabled) { console.log("Web|sendMessageToComponent", component, message); } - component.window.postMessage(message, "*"); + + var origin = this.urlForComponent(component, "file://"); + if(!origin.startsWith("http") && !origin.startsWith("file")) { + // Native extension running in web, prefix current host + origin = window.location.href + origin; + } + component.window.postMessage(message, origin); } get components() { @@ -242,9 +248,9 @@ class ComponentManager { }) } - urlForComponent(component) { + urlForComponent(component, offlinePrefix = "") { if(component.offlineOnly || (isDesktopApplication() && component.local_url)) { - return component.local_url && component.local_url.replace("sn://", this.desktopManager.getApplicationDataPath() + "/"); + return component.local_url && component.local_url.replace("sn://", offlinePrefix + this.desktopManager.getApplicationDataPath() + "/"); } else { return component.hosted_url || component.url; }