mirror of
https://github.com/zen-browser/pdf.js.git
synced 2025-07-09 09:45:42 +02:00
Wraps worker script if its cross-origin location is detected.
This commit is contained in:
parent
7f821f5b78
commit
1e45f2d4e1
2 changed files with 33 additions and 0 deletions
|
@ -48,6 +48,7 @@ var error = sharedUtil.error;
|
|||
var deprecated = sharedUtil.deprecated;
|
||||
var info = sharedUtil.info;
|
||||
var isArrayBuffer = sharedUtil.isArrayBuffer;
|
||||
var isSameOrigin = sharedUtil.isSameOrigin;
|
||||
var loadJpegStream = sharedUtil.loadJpegStream;
|
||||
var stringToBytes = sharedUtil.stringToBytes;
|
||||
var warn = sharedUtil.warn;
|
||||
|
@ -1226,6 +1227,14 @@ var PDFWorker = (function PDFWorkerClosure() {
|
|||
return PDFJS.fakeWorkerFilesLoadedCapability.promise;
|
||||
}
|
||||
|
||||
function createCDNWrapper(url) {
|
||||
// We will rely on blob URL's property to specify origin.
|
||||
// We want this function to fail in case if createObjectURL or Blob do not
|
||||
// exist or fail for some reason -- our Worker creation will fail anyway.
|
||||
var wrapper = 'importScripts(\'' + url + '\');';
|
||||
return URL.createObjectURL(new Blob([wrapper]));
|
||||
}
|
||||
|
||||
function PDFWorker(name) {
|
||||
this.name = name;
|
||||
this.destroyed = false;
|
||||
|
@ -1261,6 +1270,14 @@ var PDFWorker = (function PDFWorkerClosure() {
|
|||
var workerSrc = getWorkerSrc();
|
||||
|
||||
try {
|
||||
//#if GENERIC
|
||||
// // Wraps workerSrc path into blob URL, if the former does not belong
|
||||
// // to the same origin.
|
||||
// if (!isSameOrigin(window.location.href, workerSrc)) {
|
||||
// workerSrc = createCDNWrapper(
|
||||
// combineUrl(window.location.href, workerSrc));
|
||||
// }
|
||||
//#endif
|
||||
// Some versions of FF can't create a worker on localhost, see:
|
||||
// https://bugzilla.mozilla.org/show_bug.cgi?id=683280
|
||||
var worker = new Worker(workerSrc);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue