Fallback to async store in self.crypto doesn't exist in webworkers (ie/edge)
parent
52cc007431
commit
fbe940c024
|
@ -907,11 +907,28 @@ define([
|
|||
|
||||
var msgEv = Util.mkEvent();
|
||||
var postMsg, worker;
|
||||
var noWorker = false;
|
||||
Nthen(function (waitFor2) {
|
||||
if (typeof(SharedWorker) !== "undefined") {
|
||||
if (Worker) {
|
||||
var w = waitFor2();
|
||||
worker = new Worker('/common/outer/testworker.js?' + urlArgs);
|
||||
worker.onerror = function (errEv) {
|
||||
errEv.preventDefault();
|
||||
errEv.stopPropagation();
|
||||
noWorker = true;
|
||||
w();
|
||||
};
|
||||
worker.onmessage = function (ev) {
|
||||
if (ev.data === "OK") {
|
||||
w();
|
||||
}
|
||||
};
|
||||
}
|
||||
}).nThen(function (waitFor2) {
|
||||
if (!noWorker && typeof(SharedWorker) !== "undefined") {
|
||||
worker = new SharedWorker('/common/outer/sharedworker.js?' + urlArgs);
|
||||
worker.onerror = function (e) {
|
||||
console.error(e);
|
||||
console.error(e.message);
|
||||
};
|
||||
worker.port.onmessage = function (ev) {
|
||||
if (ev.data === "SW_READY") {
|
||||
|
@ -927,7 +944,7 @@ define([
|
|||
window.addEventListener('beforeunload', function () {
|
||||
postMsg('CLOSE');
|
||||
});
|
||||
} else if (false && 'serviceWorker' in navigator) {
|
||||
} else if (false && !noWorker && 'serviceWorker' in navigator) {
|
||||
var initializing = true;
|
||||
var stopWaiting = waitFor2(); // Call this function when we're ready
|
||||
|
||||
|
@ -977,8 +994,11 @@ define([
|
|||
window.addEventListener('beforeunload', function () {
|
||||
postMsg('CLOSE');
|
||||
});
|
||||
} else if (Worker) {
|
||||
} else if (!noWorker && Worker) {
|
||||
worker = new Worker('/common/outer/webworker.js?' + urlArgs);
|
||||
worker.onerror = function (e) {
|
||||
console.error(e.message);
|
||||
};
|
||||
worker.onmessage = function (ev) {
|
||||
msgEv.fire(ev);
|
||||
};
|
||||
|
@ -986,6 +1006,7 @@ define([
|
|||
worker.postMessage(data);
|
||||
};
|
||||
} else {
|
||||
// Use the async store in the main thread if workers are not available
|
||||
require(['/common/outer/noworker.js'], waitFor2(function (NoWorker) {
|
||||
NoWorker.onMessage(function (data) {
|
||||
msgEv.fire({data: data});
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
if (!self.crypto && !self.msCrypto) {
|
||||
throw new Error("E_NOCRYPTO");
|
||||
}
|
||||
postMessage("OK");
|
Loading…
Reference in New Issue