Browse Source

Merge pull request #8363 from yurydelendik/worker-fromport

Adds initializeFromPort to the WorkerMessageHandler.
Yury Delendik 8 years ago committed by GitHub
parent
commit
84f174bb2f
  1. 23
      src/core/worker.js

23
src/core/worker.js

@ -438,7 +438,7 @@ function setPDFNetworkStreamClass(cls) {
} }
var WorkerMessageHandler = { var WorkerMessageHandler = {
setup: function wphSetup(handler, port) { setup(handler, port) {
var testMessageProcessed = false; var testMessageProcessed = false;
handler.on('test', function wphSetupTest(data) { handler.on('test', function wphSetupTest(data) {
if (testMessageProcessed) { if (testMessageProcessed) {
@ -481,7 +481,7 @@ var WorkerMessageHandler = {
return WorkerMessageHandler.createDocumentHandler(data, port); return WorkerMessageHandler.createDocumentHandler(data, port);
}); });
}, },
createDocumentHandler: function wphCreateDocumentHandler(docParams, port) { createDocumentHandler(docParams, port) {
// This context is actually holds references on pdfManager and handler, // This context is actually holds references on pdfManager and handler,
// until the latter is destroyed. // until the latter is destroyed.
var pdfManager; var pdfManager;
@ -956,18 +956,23 @@ var WorkerMessageHandler = {
docParams = null; // we don't need docParams anymore -- saving memory. docParams = null; // we don't need docParams anymore -- saving memory.
}); });
return workerHandlerName; return workerHandlerName;
} },
initializeFromPort(port) {
var handler = new MessageHandler('worker', 'main', port);
WorkerMessageHandler.setup(handler, port);
handler.send('ready', null);
},
}; };
function initializeWorker() { function isMessagePort(maybePort) {
var handler = new MessageHandler('worker', 'main', self); return typeof maybePort.postMessage === 'function' &&
WorkerMessageHandler.setup(handler, self); ('onmessage' in maybePort);
handler.send('ready', null);
} }
// Worker thread (and not node.js)? // Worker thread (and not node.js)?
if (typeof window === 'undefined' && !isNodeJS()) { if (typeof window === 'undefined' && !isNodeJS() &&
initializeWorker(); typeof self !== 'undefined' && isMessagePort(self)) {
WorkerMessageHandler.initializeFromPort(self);
} }
exports.setPDFNetworkStreamClass = setPDFNetworkStreamClass; exports.setPDFNetworkStreamClass = setPDFNetworkStreamClass;

Loading…
Cancel
Save