Refactor fake worker loading (issue 3862)
This commit is contained in:
parent
13efe84d37
commit
3c78c7b8bc
@ -640,6 +640,7 @@ var WorkerTransport = (function WorkerTransportClosure() {
|
|||||||
pdfDataRangeTransport, progressCallback) {
|
pdfDataRangeTransport, progressCallback) {
|
||||||
this.pdfDataRangeTransport = pdfDataRangeTransport;
|
this.pdfDataRangeTransport = pdfDataRangeTransport;
|
||||||
|
|
||||||
|
this.workerInitializedCapability = workerInitializedCapability;
|
||||||
this.workerReadyCapability = workerReadyCapability;
|
this.workerReadyCapability = workerReadyCapability;
|
||||||
this.progressCallback = progressCallback;
|
this.progressCallback = progressCallback;
|
||||||
this.commonObjs = new PDFObjects();
|
this.commonObjs = new PDFObjects();
|
||||||
@ -678,11 +679,7 @@ var WorkerTransport = (function WorkerTransportClosure() {
|
|||||||
this.setupMessageHandler(messageHandler);
|
this.setupMessageHandler(messageHandler);
|
||||||
workerInitializedCapability.resolve();
|
workerInitializedCapability.resolve();
|
||||||
} else {
|
} else {
|
||||||
globalScope.PDFJS.disableWorker = true;
|
this.setupFakeWorker();
|
||||||
this.loadFakeWorkerFiles().then(function() {
|
|
||||||
this.setupFakeWorker();
|
|
||||||
workerInitializedCapability.resolve();
|
|
||||||
}.bind(this));
|
|
||||||
}
|
}
|
||||||
}.bind(this));
|
}.bind(this));
|
||||||
|
|
||||||
@ -704,11 +701,7 @@ var WorkerTransport = (function WorkerTransportClosure() {
|
|||||||
//#endif
|
//#endif
|
||||||
// Either workers are disabled, not supported or have thrown an exception.
|
// Either workers are disabled, not supported or have thrown an exception.
|
||||||
// Thus, we fallback to a faked worker.
|
// Thus, we fallback to a faked worker.
|
||||||
globalScope.PDFJS.disableWorker = true;
|
this.setupFakeWorker();
|
||||||
this.loadFakeWorkerFiles().then(function() {
|
|
||||||
this.setupFakeWorker();
|
|
||||||
workerInitializedCapability.resolve();
|
|
||||||
}.bind(this));
|
|
||||||
}
|
}
|
||||||
WorkerTransport.prototype = {
|
WorkerTransport.prototype = {
|
||||||
destroy: function WorkerTransport_destroy() {
|
destroy: function WorkerTransport_destroy() {
|
||||||
@ -723,7 +716,9 @@ var WorkerTransport = (function WorkerTransportClosure() {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
loadFakeWorkerFiles: function WorkerTransport_loadFakeWorkerFiles() {
|
setupFakeWorker: function WorkerTransport_setupFakeWorker() {
|
||||||
|
globalScope.PDFJS.disableWorker = true;
|
||||||
|
|
||||||
if (!PDFJS.fakeWorkerFilesLoadedCapability) {
|
if (!PDFJS.fakeWorkerFilesLoadedCapability) {
|
||||||
PDFJS.fakeWorkerFilesLoadedCapability = createPromiseCapability();
|
PDFJS.fakeWorkerFilesLoadedCapability = createPromiseCapability();
|
||||||
// In the developer build load worker_loader which in turn loads all the
|
// In the developer build load worker_loader which in turn loads all the
|
||||||
@ -741,25 +736,25 @@ var WorkerTransport = (function WorkerTransportClosure() {
|
|||||||
// });
|
// });
|
||||||
//#endif
|
//#endif
|
||||||
}
|
}
|
||||||
return PDFJS.fakeWorkerFilesLoadedCapability.promise;
|
PDFJS.fakeWorkerFilesLoadedCapability.promise.then(function () {
|
||||||
},
|
warn('Setting up fake worker.');
|
||||||
|
// If we don't use a worker, just post/sendMessage to the main thread.
|
||||||
|
var fakeWorker = {
|
||||||
|
postMessage: function WorkerTransport_postMessage(obj) {
|
||||||
|
fakeWorker.onmessage({data: obj});
|
||||||
|
},
|
||||||
|
terminate: function WorkerTransport_terminate() {}
|
||||||
|
};
|
||||||
|
|
||||||
setupFakeWorker: function WorkerTransport_setupFakeWorker() {
|
var messageHandler = new MessageHandler('main', fakeWorker);
|
||||||
warn('Setting up fake worker.');
|
this.setupMessageHandler(messageHandler);
|
||||||
// If we don't use a worker, just post/sendMessage to the main thread.
|
|
||||||
var fakeWorker = {
|
|
||||||
postMessage: function WorkerTransport_postMessage(obj) {
|
|
||||||
fakeWorker.onmessage({data: obj});
|
|
||||||
},
|
|
||||||
terminate: function WorkerTransport_terminate() {}
|
|
||||||
};
|
|
||||||
|
|
||||||
var messageHandler = new MessageHandler('main', fakeWorker);
|
// If the main thread is our worker, setup the handling for the messages
|
||||||
this.setupMessageHandler(messageHandler);
|
// the main thread sends to it self.
|
||||||
|
PDFJS.WorkerMessageHandler.setup(messageHandler);
|
||||||
|
|
||||||
// If the main thread is our worker, setup the handling for the messages
|
this.workerInitializedCapability.resolve();
|
||||||
// the main thread sends to it self.
|
}.bind(this));
|
||||||
PDFJS.WorkerMessageHandler.setup(messageHandler);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
setupMessageHandler:
|
setupMessageHandler:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user