123456789101112131415161718192021 |
- // Load in our dependencies
- var ContextKarma = require('./karma')
- // Resolve our parent window
- var parentWindow = window.opener || window.parent
- // Define a remote call method for Karma
- var callParentKarmaMethod = ContextKarma.getDirectCallParentKarmaMethod(parentWindow)
- // If we don't have access to the window, then use `postMessage`
- // DEV: In Electron, we don't have access to the parent window due to it being in a separate process
- // DEV: We avoid using this in Internet Explorer as they only support strings
- // https://caniuse.com/?search=postmessage
- var haveParentAccess = false
- try { haveParentAccess = !!parentWindow.window } catch (err) { /* Ignore errors (likely permisison errors) */ }
- if (!haveParentAccess) {
- callParentKarmaMethod = ContextKarma.getPostMessageCallParentKarmaMethod(parentWindow)
- }
- // Define a window-scoped Karma
- window.__karma__ = new ContextKarma(callParentKarmaMethod)
|