Fix cache and merge issues
This commit is contained in:
parent
305b47132c
commit
48dc8c78b4
@ -769,8 +769,10 @@ define([
|
|||||||
var postMsg, worker;
|
var postMsg, worker;
|
||||||
Nthen(function (waitFor2) {
|
Nthen(function (waitFor2) {
|
||||||
if (SharedWorker) {
|
if (SharedWorker) {
|
||||||
worker = new SharedWorker('/common/outer/sharedworker.js' + urlArgs);
|
worker = new SharedWorker('/common/outer/sharedworker.js?' + urlArgs);
|
||||||
console.log(worker);
|
worker.onerror = function (e) {
|
||||||
|
console.error(e);
|
||||||
|
};
|
||||||
worker.port.onmessage = function (ev) {
|
worker.port.onmessage = function (ev) {
|
||||||
if (ev.data === "SW_READY") {
|
if (ev.data === "SW_READY") {
|
||||||
return;
|
return;
|
||||||
@ -789,7 +791,7 @@ define([
|
|||||||
if (worker) { return void worker.postMessage(data); }
|
if (worker) { return void worker.postMessage(data); }
|
||||||
};
|
};
|
||||||
|
|
||||||
navigator.serviceWorker.register('/common/outer/serviceworker.js' + urlArgs, {scope: '/'})
|
navigator.serviceWorker.register('/common/outer/serviceworker.js?' + urlArgs, {scope: '/'})
|
||||||
.then(function(reg) {
|
.then(function(reg) {
|
||||||
// Add handler for receiving messages from the service worker
|
// Add handler for receiving messages from the service worker
|
||||||
navigator.serviceWorker.addEventListener('message', function (ev) {
|
navigator.serviceWorker.addEventListener('message', function (ev) {
|
||||||
@ -829,7 +831,7 @@ define([
|
|||||||
/**/console.log('Registration failed with ' + error);
|
/**/console.log('Registration failed with ' + error);
|
||||||
});
|
});
|
||||||
} else if (Worker) {
|
} else if (Worker) {
|
||||||
worker = new Worker('/common/outer/webworker.js' + urlArgs);
|
worker = new Worker('/common/outer/webworker.js?' + urlArgs);
|
||||||
worker.onmessage = function (ev) {
|
worker.onmessage = function (ev) {
|
||||||
msgEv.fire(ev);
|
msgEv.fire(ev);
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1049,7 +1049,7 @@ define([
|
|||||||
channel.queue.forEach(function (data) {
|
channel.queue.forEach(function (data) {
|
||||||
channel.sendMessage(data.message, clientId);
|
channel.sendMessage(data.message, clientId);
|
||||||
});
|
});
|
||||||
postMessage("PAD_CONNECT", {
|
channel.bcast("PAD_CONNECT", {
|
||||||
myID: wc.myID,
|
myID: wc.myID,
|
||||||
id: wc.id,
|
id: wc.id,
|
||||||
members: wc.members
|
members: wc.members
|
||||||
|
|||||||
@ -1,22 +1,5 @@
|
|||||||
/* jshint ignore:start */
|
/* jshint ignore:start */
|
||||||
importScripts('/bower_components/requirejs/require.js');
|
importScripts('/bower_components/requirejs/require.js');
|
||||||
require.config({
|
|
||||||
// fix up locations so that relative urls work.
|
|
||||||
baseUrl: '/',
|
|
||||||
paths: {
|
|
||||||
// jquery declares itself as literally "jquery" so it cannot be pulled by path :(
|
|
||||||
"jquery": "/bower_components/jquery/dist/jquery.min",
|
|
||||||
// json.sortify same
|
|
||||||
"json.sortify": "/bower_components/json.sortify/dist/JSON.sortify",
|
|
||||||
cm: '/bower_components/codemirror'
|
|
||||||
},
|
|
||||||
map: {
|
|
||||||
'*': {
|
|
||||||
'css': '/bower_components/require-css/css.js',
|
|
||||||
'less': '/common/RequireLess.js',
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
window = self;
|
window = self;
|
||||||
localStorage = {
|
localStorage = {
|
||||||
@ -24,11 +7,12 @@ localStorage = {
|
|||||||
getItem: function (k) { return localStorage[k]; }
|
getItem: function (k) { return localStorage[k]; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
self.tabs = {};
|
||||||
|
|
||||||
var postMsg = function (client, data) {
|
var postMsg = function (client, data) {
|
||||||
client.postMessage(data);
|
client.postMessage(data);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
var debug = function (msg) { console.log(msg); };
|
var debug = function (msg) { console.log(msg); };
|
||||||
// debug = function () {};
|
// debug = function () {};
|
||||||
|
|
||||||
@ -36,111 +20,115 @@ var init = function (client, cb) {
|
|||||||
debug('SW INIT');
|
debug('SW INIT');
|
||||||
|
|
||||||
require([
|
require([
|
||||||
'/common/common-util.js',
|
'/common/requireconfig.js'
|
||||||
'/common/outer/worker-channel.js',
|
], function (RequireConfig) {
|
||||||
'/common/outer/store-rpc.js'
|
require.config(RequireConfig());
|
||||||
], function (Util, Channel, Rpc) {
|
require([
|
||||||
debug('SW Required ressources loaded');
|
'/common/common-util.js',
|
||||||
var msgEv = Util.mkEvent();
|
'/common/outer/worker-channel.js',
|
||||||
|
'/common/outer/store-rpc.js'
|
||||||
|
], function (Util, Channel, Rpc) {
|
||||||
|
debug('SW Required ressources loaded');
|
||||||
|
var msgEv = Util.mkEvent();
|
||||||
|
|
||||||
var postToClient = function (data) {
|
var postToClient = function (data) {
|
||||||
postMsg(client, data);
|
postMsg(client, data);
|
||||||
};
|
};
|
||||||
Channel.create(msgEv, postToClient, function (chan) {
|
Channel.create(msgEv, postToClient, function (chan) {
|
||||||
debug('SW Channel created');
|
debug('SW Channel created');
|
||||||
|
|
||||||
var clientId = client.id;
|
var clientId = client.id;
|
||||||
self.tabs[clientId].chan = chan;
|
self.tabs[clientId].chan = chan;
|
||||||
Object.keys(Rpc.queries).forEach(function (q) {
|
Object.keys(Rpc.queries).forEach(function (q) {
|
||||||
if (q === 'CONNECT') { return; }
|
if (q === 'CONNECT') { return; }
|
||||||
if (q === 'JOIN_PAD') { return; }
|
if (q === 'JOIN_PAD') { return; }
|
||||||
if (q === 'SEND_PAD_MSG') { return; }
|
if (q === 'SEND_PAD_MSG') { return; }
|
||||||
chan.on(q, function (data, cb) {
|
chan.on(q, function (data, cb) {
|
||||||
try {
|
try {
|
||||||
Rpc.queries[q](clientId, data, cb);
|
Rpc.queries[q](clientId, data, cb);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('Error in webworker when executing query ' + q);
|
console.error('Error in webworker when executing query ' + q);
|
||||||
console.error(e);
|
console.error(e);
|
||||||
console.log(data);
|
console.log(data);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
});
|
|
||||||
chan.on('CONNECT', function (cfg, cb) {
|
|
||||||
debug('SW Connect callback');
|
|
||||||
if (self.store) {
|
|
||||||
if (cfg.driveEvents) {
|
|
||||||
Rpc._subscribeToDrive(clientId);
|
|
||||||
}
|
|
||||||
if (cfg.messenger) {
|
|
||||||
Rpc._subscribeToMessenger(clientId);
|
|
||||||
}
|
|
||||||
return void cb(self.store);
|
|
||||||
}
|
|
||||||
|
|
||||||
debug('Loading new async store');
|
|
||||||
// One-time initialization (init async-store)
|
|
||||||
cfg.query = function (cId, cmd, data, cb) {
|
|
||||||
cb = cb || function () {};
|
|
||||||
self.tabs[cId].chan.query(cmd, data, function (err, data2) {
|
|
||||||
if (err) { return void cb({error: err}); }
|
|
||||||
cb(data2);
|
|
||||||
});
|
});
|
||||||
};
|
});
|
||||||
cfg.broadcast = function (excludes, cmd, data, cb) {
|
chan.on('CONNECT', function (cfg, cb) {
|
||||||
cb = cb || function () {};
|
debug('SW Connect callback');
|
||||||
Object.keys(self.tabs).forEach(function (cId) {
|
if (self.store) {
|
||||||
if (excludes.indexOf(cId) !== -1) { return; }
|
if (cfg.driveEvents) {
|
||||||
|
Rpc._subscribeToDrive(clientId);
|
||||||
|
}
|
||||||
|
if (cfg.messenger) {
|
||||||
|
Rpc._subscribeToMessenger(clientId);
|
||||||
|
}
|
||||||
|
return void cb(self.store);
|
||||||
|
}
|
||||||
|
|
||||||
|
debug('Loading new async store');
|
||||||
|
// One-time initialization (init async-store)
|
||||||
|
cfg.query = function (cId, cmd, data, cb) {
|
||||||
|
cb = cb || function () {};
|
||||||
self.tabs[cId].chan.query(cmd, data, function (err, data2) {
|
self.tabs[cId].chan.query(cmd, data, function (err, data2) {
|
||||||
if (err) { return void cb({error: err}); }
|
if (err) { return void cb({error: err}); }
|
||||||
cb(data2);
|
cb(data2);
|
||||||
});
|
});
|
||||||
|
};
|
||||||
|
cfg.broadcast = function (excludes, cmd, data, cb) {
|
||||||
|
cb = cb || function () {};
|
||||||
|
Object.keys(self.tabs).forEach(function (cId) {
|
||||||
|
if (excludes.indexOf(cId) !== -1) { return; }
|
||||||
|
self.tabs[cId].chan.query(cmd, data, function (err, data2) {
|
||||||
|
if (err) { return void cb({error: err}); }
|
||||||
|
cb(data2);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
Rpc.queries['CONNECT'](clientId, cfg, function (data) {
|
||||||
|
if (cfg.driveEvents) {
|
||||||
|
Rpc._subscribeToDrive(clientId);
|
||||||
|
}
|
||||||
|
if (cfg.messenger) {
|
||||||
|
Rpc._subscribeToMessenger(clientId);
|
||||||
|
}
|
||||||
|
if (data && data.state === "ALREADY_INIT") {
|
||||||
|
return void cb(data.returned);
|
||||||
|
}
|
||||||
|
self.store = data;
|
||||||
|
cb(data);
|
||||||
});
|
});
|
||||||
};
|
|
||||||
Rpc.queries['CONNECT'](clientId, cfg, function (data) {
|
|
||||||
if (cfg.driveEvents) {
|
|
||||||
Rpc._subscribeToDrive(clientId);
|
|
||||||
}
|
|
||||||
if (cfg.messenger) {
|
|
||||||
Rpc._subscribeToMessenger(clientId);
|
|
||||||
}
|
|
||||||
if (data && data.state === "ALREADY_INIT") {
|
|
||||||
return void cb(data.returned);
|
|
||||||
}
|
|
||||||
self.store = data;
|
|
||||||
cb(data);
|
|
||||||
});
|
});
|
||||||
});
|
chan.on('JOIN_PAD', function (data, cb) {
|
||||||
chan.on('JOIN_PAD', function (data, cb) {
|
self.tabs[clientId].channelId = data.channel;
|
||||||
self.tabs[clientId].channelId = data.channel;
|
try {
|
||||||
try {
|
Rpc.queries['JOIN_PAD'](clientId, data, cb);
|
||||||
Rpc.queries['JOIN_PAD'](clientId, data, cb);
|
} catch (e) {
|
||||||
} catch (e) {
|
console.error('Error in webworker when executing query JOIN_PAD');
|
||||||
console.error('Error in webworker when executing query JOIN_PAD');
|
console.error(e);
|
||||||
console.error(e);
|
console.log(data);
|
||||||
console.log(data);
|
}
|
||||||
}
|
});
|
||||||
});
|
chan.on('SEND_PAD_MSG', function (msg, cb) {
|
||||||
chan.on('SEND_PAD_MSG', function (msg, cb) {
|
var data = {
|
||||||
var data = {
|
msg: msg,
|
||||||
msg: msg,
|
channel: self.tabs[clientId].channelId
|
||||||
channel: self.tabs[clientId].channelId
|
};
|
||||||
};
|
try {
|
||||||
try {
|
Rpc.queries['SEND_PAD_MSG'](clientId, data, cb);
|
||||||
Rpc.queries['SEND_PAD_MSG'](clientId, data, cb);
|
} catch (e) {
|
||||||
} catch (e) {
|
console.error('Error in webworker when executing query SEND_PAD_MSG');
|
||||||
console.error('Error in webworker when executing query SEND_PAD_MSG');
|
console.error(e);
|
||||||
console.error(e);
|
console.log(data);
|
||||||
console.log(data);
|
}
|
||||||
}
|
});
|
||||||
});
|
cb();
|
||||||
cb();
|
}, true);
|
||||||
}, true);
|
|
||||||
|
|
||||||
self.tabs[client.id].msgEv = msgEv;
|
self.tabs[client.id].msgEv = msgEv;
|
||||||
|
});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
self.tabs = {};
|
|
||||||
self.addEventListener('message', function (e) {
|
self.addEventListener('message', function (e) {
|
||||||
var cId = e.source.id;
|
var cId = e.source.id;
|
||||||
if (e.data === "INIT") {
|
if (e.data === "INIT") {
|
||||||
|
|||||||
@ -1,23 +1,5 @@
|
|||||||
console.log('SW!');
|
|
||||||
/* jshint ignore:start */
|
/* jshint ignore:start */
|
||||||
importScripts('/bower_components/requirejs/require.js');
|
importScripts('/bower_components/requirejs/require.js');
|
||||||
require.config({
|
|
||||||
// fix up locations so that relative urls work.
|
|
||||||
baseUrl: '/',
|
|
||||||
paths: {
|
|
||||||
// jquery declares itself as literally "jquery" so it cannot be pulled by path :(
|
|
||||||
"jquery": "/bower_components/jquery/dist/jquery.min",
|
|
||||||
// json.sortify same
|
|
||||||
"json.sortify": "/bower_components/json.sortify/dist/JSON.sortify",
|
|
||||||
cm: '/bower_components/codemirror'
|
|
||||||
},
|
|
||||||
map: {
|
|
||||||
'*': {
|
|
||||||
'css': '/bower_components/require-css/css.js',
|
|
||||||
'less': '/common/RequireLess.js',
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
window = self;
|
window = self;
|
||||||
localStorage = {
|
localStorage = {
|
||||||
@ -26,16 +8,6 @@ localStorage = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
self.tabs = {};
|
self.tabs = {};
|
||||||
var findTab = function (port) {
|
|
||||||
var tab;
|
|
||||||
Object.keys(self.tabs).some(function (id) {
|
|
||||||
if (self.tabs[id].port === port) {
|
|
||||||
tab = port;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return tab;
|
|
||||||
};
|
|
||||||
|
|
||||||
var postMsg = function (client, data) {
|
var postMsg = function (client, data) {
|
||||||
client.port.postMessage(data);
|
client.port.postMessage(data);
|
||||||
@ -48,114 +20,119 @@ var init = function (client, cb) {
|
|||||||
debug('SharedW INIT');
|
debug('SharedW INIT');
|
||||||
|
|
||||||
require([
|
require([
|
||||||
'/common/common-util.js',
|
'/common/requireconfig.js'
|
||||||
'/common/outer/worker-channel.js',
|
], function (RequireConfig) {
|
||||||
'/common/outer/store-rpc.js'
|
require.config(RequireConfig());
|
||||||
], function (Util, Channel, Rpc) {
|
require([
|
||||||
debug('SharedW Required ressources loaded');
|
'/common/common-util.js',
|
||||||
var msgEv = Util.mkEvent();
|
'/common/outer/worker-channel.js',
|
||||||
|
'/common/outer/store-rpc.js'
|
||||||
|
], function (Util, Channel, Rpc) {
|
||||||
|
debug('SharedW Required ressources loaded');
|
||||||
|
var msgEv = Util.mkEvent();
|
||||||
|
|
||||||
var postToClient = function (data) {
|
var postToClient = function (data) {
|
||||||
postMsg(client, data);
|
postMsg(client, data);
|
||||||
};
|
};
|
||||||
Channel.create(msgEv, postToClient, function (chan) {
|
Channel.create(msgEv, postToClient, function (chan) {
|
||||||
debug('SharedW Channel created');
|
debug('SharedW Channel created');
|
||||||
|
|
||||||
var clientId = client.id;
|
var clientId = client.id;
|
||||||
client.chan = chan;
|
client.chan = chan;
|
||||||
Object.keys(Rpc.queries).forEach(function (q) {
|
Object.keys(Rpc.queries).forEach(function (q) {
|
||||||
if (q === 'CONNECT') { return; }
|
if (q === 'CONNECT') { return; }
|
||||||
if (q === 'JOIN_PAD') { return; }
|
if (q === 'JOIN_PAD') { return; }
|
||||||
if (q === 'SEND_PAD_MSG') { return; }
|
if (q === 'SEND_PAD_MSG') { return; }
|
||||||
chan.on(q, function (data, cb) {
|
chan.on(q, function (data, cb) {
|
||||||
try {
|
try {
|
||||||
Rpc.queries[q](clientId, data, cb);
|
Rpc.queries[q](clientId, data, cb);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('Error in webworker when executing query ' + q);
|
console.error('Error in webworker when executing query ' + q);
|
||||||
console.error(e);
|
console.error(e);
|
||||||
console.log(data);
|
console.log(data);
|
||||||
}
|
}
|
||||||
});
|
|
||||||
});
|
|
||||||
chan.on('CONNECT', function (cfg, cb) {
|
|
||||||
debug('SharedW connecting to store...');
|
|
||||||
if (self.store) {
|
|
||||||
debug('Store already exists!');
|
|
||||||
if (cfg.driveEvents) {
|
|
||||||
Rpc._subscribeToDrive(clientId);
|
|
||||||
}
|
|
||||||
if (cfg.messenger) {
|
|
||||||
Rpc._subscribeToMessenger(clientId);
|
|
||||||
}
|
|
||||||
return void cb(self.store);
|
|
||||||
}
|
|
||||||
|
|
||||||
debug('Loading new async store');
|
|
||||||
// One-time initialization (init async-store)
|
|
||||||
cfg.query = function (cId, cmd, data, cb) {
|
|
||||||
cb = cb || function () {};
|
|
||||||
self.tabs[cId].chan.query(cmd, data, function (err, data2) {
|
|
||||||
if (err) { return void cb({error: err}); }
|
|
||||||
cb(data2);
|
|
||||||
});
|
});
|
||||||
};
|
});
|
||||||
cfg.broadcast = function (excludes, cmd, data, cb) {
|
chan.on('CONNECT', function (cfg, cb) {
|
||||||
cb = cb || function () {};
|
debug('SharedW connecting to store...');
|
||||||
Object.keys(self.tabs).forEach(function (cId) {
|
if (self.store) {
|
||||||
if (excludes.indexOf(cId) !== -1) { return; }
|
debug('Store already exists!');
|
||||||
|
if (cfg.driveEvents) {
|
||||||
|
Rpc._subscribeToDrive(clientId);
|
||||||
|
}
|
||||||
|
if (cfg.messenger) {
|
||||||
|
Rpc._subscribeToMessenger(clientId);
|
||||||
|
}
|
||||||
|
return void cb(self.store);
|
||||||
|
}
|
||||||
|
|
||||||
|
debug('Loading new async store');
|
||||||
|
// One-time initialization (init async-store)
|
||||||
|
cfg.query = function (cId, cmd, data, cb) {
|
||||||
|
cb = cb || function () {};
|
||||||
self.tabs[cId].chan.query(cmd, data, function (err, data2) {
|
self.tabs[cId].chan.query(cmd, data, function (err, data2) {
|
||||||
if (err) { return void cb({error: err}); }
|
if (err) { return void cb({error: err}); }
|
||||||
cb(data2);
|
cb(data2);
|
||||||
});
|
});
|
||||||
|
};
|
||||||
|
cfg.broadcast = function (excludes, cmd, data, cb) {
|
||||||
|
cb = cb || function () {};
|
||||||
|
Object.keys(self.tabs).forEach(function (cId) {
|
||||||
|
if (excludes.indexOf(cId) !== -1) { return; }
|
||||||
|
self.tabs[cId].chan.query(cmd, data, function (err, data2) {
|
||||||
|
if (err) { return void cb({error: err}); }
|
||||||
|
cb(data2);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
Rpc.queries['CONNECT'](clientId, cfg, function (data) {
|
||||||
|
if (cfg.driveEvents) {
|
||||||
|
Rpc._subscribeToDrive(clientId);
|
||||||
|
}
|
||||||
|
if (cfg.messenger) {
|
||||||
|
Rpc._subscribeToMessenger(clientId);
|
||||||
|
}
|
||||||
|
if (data && data.state === "ALREADY_INIT") {
|
||||||
|
self.store = data.returned;
|
||||||
|
return void cb(data.returned);
|
||||||
|
}
|
||||||
|
self.store = data;
|
||||||
|
cb(data);
|
||||||
});
|
});
|
||||||
};
|
|
||||||
Rpc.queries['CONNECT'](clientId, cfg, function (data) {
|
|
||||||
if (cfg.driveEvents) {
|
|
||||||
Rpc._subscribeToDrive(clientId);
|
|
||||||
}
|
|
||||||
if (cfg.messenger) {
|
|
||||||
Rpc._subscribeToMessenger(clientId);
|
|
||||||
}
|
|
||||||
if (data && data.state === "ALREADY_INIT") {
|
|
||||||
self.store = data.returned;
|
|
||||||
return void cb(data.returned);
|
|
||||||
}
|
|
||||||
self.store = data;
|
|
||||||
cb(data);
|
|
||||||
});
|
});
|
||||||
});
|
chan.on('JOIN_PAD', function (data, cb) {
|
||||||
chan.on('JOIN_PAD', function (data, cb) {
|
client.channelId = data.channel;
|
||||||
client.channelId = data.channel;
|
try {
|
||||||
try {
|
Rpc.queries['JOIN_PAD'](clientId, data, cb);
|
||||||
Rpc.queries['JOIN_PAD'](clientId, data, cb);
|
} catch (e) {
|
||||||
} catch (e) {
|
console.error('Error in webworker when executing query JOIN_PAD');
|
||||||
console.error('Error in webworker when executing query JOIN_PAD');
|
console.error(e);
|
||||||
console.error(e);
|
console.log(data);
|
||||||
console.log(data);
|
}
|
||||||
}
|
});
|
||||||
});
|
chan.on('SEND_PAD_MSG', function (msg, cb) {
|
||||||
chan.on('SEND_PAD_MSG', function (msg, cb) {
|
var data = {
|
||||||
var data = {
|
msg: msg,
|
||||||
msg: msg,
|
channel: client.channelId
|
||||||
channel: client.channelId
|
};
|
||||||
};
|
try {
|
||||||
try {
|
Rpc.queries['SEND_PAD_MSG'](clientId, data, cb);
|
||||||
Rpc.queries['SEND_PAD_MSG'](clientId, data, cb);
|
} catch (e) {
|
||||||
} catch (e) {
|
console.error('Error in webworker when executing query SEND_PAD_MSG');
|
||||||
console.error('Error in webworker when executing query SEND_PAD_MSG');
|
console.error(e);
|
||||||
console.error(e);
|
console.log(data);
|
||||||
console.log(data);
|
}
|
||||||
}
|
});
|
||||||
});
|
cb();
|
||||||
cb();
|
}, true);
|
||||||
}, true);
|
|
||||||
|
|
||||||
client.msgEv = msgEv;
|
client.msgEv = msgEv;
|
||||||
|
});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
onconnect = function(e) {
|
onconnect = function(e) {
|
||||||
debug('New ShardWorker client');
|
debug('New SharedWorker client');
|
||||||
var port = e.ports[0];
|
var port = e.ports[0];
|
||||||
var cId = Number(Math.floor(Math.random() * Number.MAX_SAFE_INTEGER))
|
var cId = Number(Math.floor(Math.random() * Number.MAX_SAFE_INTEGER))
|
||||||
var client = self.tabs[cId] = {
|
var client = self.tabs[cId] = {
|
||||||
@ -176,29 +153,3 @@ onconnect = function(e) {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
self.tabs = {};
|
|
||||||
self.addEventListener('message', function (e) {
|
|
||||||
var cId = e.source.id;
|
|
||||||
if (e.data === "INIT") {
|
|
||||||
if (tabs[cId]) { return; }
|
|
||||||
tabs[cId] = {
|
|
||||||
client: e.source
|
|
||||||
};
|
|
||||||
init(e.source, function () {
|
|
||||||
postMsg(e.source, 'SW_READY');
|
|
||||||
});
|
|
||||||
} else if (self.tabs[cId] && self.tabs[cId].msgEv) {
|
|
||||||
self.tabs[cId].msgEv.fire(e);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
self.addEventListener('install', function (e) {
|
|
||||||
debug('V1 installing…');
|
|
||||||
self.skipWaiting();
|
|
||||||
});
|
|
||||||
|
|
||||||
self.addEventListener('activate', function (e) {
|
|
||||||
debug('V1 now ready to handle fetches!');
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user