diff --git a/www/common/cryptpad-common.js b/www/common/cryptpad-common.js index 0a3724eba..08e1761c5 100644 --- a/www/common/cryptpad-common.js +++ b/www/common/cryptpad-common.js @@ -7,13 +7,12 @@ define([ '/common/common-constants.js', '/common/common-feedback.js', '/common/outer/local-store.js', - //'/common/outer/store-rpc.js', '/common/outer/worker-channel.js', '/customize/application_config.js', '/bower_components/nthen/index.js', ], function (Config, Messages, Util, Hash, - Messaging, Constants, Feedback, LocalStore, /*AStore, */Channel, + Messaging, Constants, Feedback, LocalStore, Channel, AppConfig, Nthen) { /* This file exposes functionality which is specific to Cryptpad, but not to @@ -867,8 +866,13 @@ define([ worker.postMessage(data); }; } else { - // TODO fallback no webworker? - console.error('NO SW OR WW'); + require(['/common/outer/noworker.js'], waitFor2(function (NoWorker) { + NoWorker.onMessage(function (data) { + msgEv.fire({data: data}); + }); + postMsg = function (d) { setTimeout(function () { NoWorker.query(d); }); }; + NoWorker.create(); + })); } }).nThen(function () { Channel.create(msgEv, postMsg, function (chan) { diff --git a/www/common/outer/worker-channel.js b/www/common/outer/worker-channel.js index a2129bd69..bff81a27b 100644 --- a/www/common/outer/worker-channel.js +++ b/www/common/outer/worker-channel.js @@ -9,7 +9,17 @@ define([ }; var create = function (onMsg, postMsg, cb, isWorker) { + if (!isWorker) { + var chanLoaded = false; + var waitingData = []; + onMsg.reg(function (data) { + if (chanLoaded) { return; } + waitingData.push(data); + }); + } + var evReady = Util.mkEvent(true); + var handlers = {}; var queries = {}; @@ -123,6 +133,12 @@ define([ }); if (isWorker) { evReady.fire(); + } else { + chanLoaded = true; + waitingData.forEach(function (d) { + onMsg.fire(d); + }); + waitingData = []; } cb(chan); };