UNPKG

terriajs

Version:

Geospatial data visualization platform.

37 lines 1.65 kB
import { TerriaErrorSeverity } from "../Core/TerriaError"; import defined from "terriajs-cesium/Source/Core/defined"; const updateApplicationOnMessageFromParentWindow = function (terria, window) { var allowOrigin; window.addEventListener("message", async function (event) { var origin = event.origin; if (!defined(origin) && defined(event.originalEvent)) { // For Chrome, the origin property is in the event.originalEvent object. origin = event.originalEvent.origin; } if ((!defined(allowOrigin) || origin !== allowOrigin) && // allowed origin in url hash parameter event.source !== window.parent && // iframe parent event.source !== window.opener) { // caller of window.open return; } // receive allowOrigin if ((event.source === window.opener || event.source === window.parent) && event.data.allowOrigin) { allowOrigin = event.data.allowOrigin; delete event.data.allowOrigin; } // Ignore react devtools if (/^react-devtools/gi.test(event.data.source)) { return; } (await terria.updateFromStartData(event.data, "Start data from message from parent window", TerriaErrorSeverity.Error)).raiseError(terria); }, false); if (window.parent !== window) { window.parent.postMessage("ready", "*"); } if (window.opener) { window.opener.postMessage("ready", "*"); } }; export default updateApplicationOnMessageFromParentWindow; //# sourceMappingURL=updateApplicationOnMessageFromParentWindow.js.map