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