12345678910111213141516171819202122232425262728293031 |
- 'use strict';
- /* Whether the browser is Chromium-based with MojoJS enabled */
- const isChromiumBased = 'MojoInterfaceInterceptor' in self;
- /* Whether the browser is WebKit-based with internal test-only API enabled */
- const isWebKitBased = !isChromiumBased && 'internals' in self;
- /**
- * Loads a script in a window or worker.
- *
- * @param {string} path - A script path
- * @returns {Promise}
- */
- function loadScript(path) {
- if (typeof document === 'undefined') {
- // Workers (importScripts is synchronous and may throw.)
- importScripts(path);
- return Promise.resolve();
- } else {
- // Window
- const script = document.createElement('script');
- script.src = path;
- script.async = false;
- const p = new Promise((resolve, reject) => {
- script.onload = () => { resolve(); };
- script.onerror = e => { reject(`Error loading ${path}`); };
- })
- document.head.appendChild(script);
- return p;
- }
- }
|