Merge pull request #4103 from yurydelendik/issue3977
Introduces disableObjectCreateURL
This commit is contained in:
commit
3b829f4a45
@ -231,6 +231,7 @@ var WorkerMessageHandler = PDFJS.WorkerMessageHandler = {
|
|||||||
PDFJS.maxImageSize = data.maxImageSize === undefined ?
|
PDFJS.maxImageSize = data.maxImageSize === undefined ?
|
||||||
-1 : data.maxImageSize;
|
-1 : data.maxImageSize;
|
||||||
PDFJS.disableFontFace = data.disableFontFace;
|
PDFJS.disableFontFace = data.disableFontFace;
|
||||||
|
PDFJS.disableCreateObjectURL = data.disableCreateObjectURL;
|
||||||
PDFJS.verbosity = data.verbosity;
|
PDFJS.verbosity = data.verbosity;
|
||||||
|
|
||||||
getPdfManager(data).then(function pdfManagerReady() {
|
getPdfManager(data).then(function pdfManagerReady() {
|
||||||
|
@ -94,6 +94,13 @@ PDFJS.pdfBug = PDFJS.pdfBug === undefined ? false : PDFJS.pdfBug;
|
|||||||
PDFJS.postMessageTransfers = PDFJS.postMessageTransfers === undefined ?
|
PDFJS.postMessageTransfers = PDFJS.postMessageTransfers === undefined ?
|
||||||
true : PDFJS.postMessageTransfers;
|
true : PDFJS.postMessageTransfers;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Disables URL.createObjectURL usage.
|
||||||
|
* @var {boolean}
|
||||||
|
*/
|
||||||
|
PDFJS.disableCreateObjectURL = PDFJS.disableCreateObjectURL === undefined ?
|
||||||
|
false : PDFJS.disableCreateObjectURL;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Controls the logging level.
|
* Controls the logging level.
|
||||||
* The constants from PDFJS.VERBOSITY_LEVELS should be used:
|
* The constants from PDFJS.VERBOSITY_LEVELS should be used:
|
||||||
@ -886,6 +893,7 @@ var WorkerTransport = (function WorkerTransportClosure() {
|
|||||||
disableRange: PDFJS.disableRange,
|
disableRange: PDFJS.disableRange,
|
||||||
maxImageSize: PDFJS.maxImageSize,
|
maxImageSize: PDFJS.maxImageSize,
|
||||||
disableFontFace: PDFJS.disableFontFace,
|
disableFontFace: PDFJS.disableFontFace,
|
||||||
|
disableCreateObjectURL: PDFJS.disableCreateObjectURL,
|
||||||
verbosity: PDFJS.verbosity
|
verbosity: PDFJS.verbosity
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -1179,18 +1179,17 @@ PDFJS.createBlob = function createBlob(data, contentType) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
PDFJS.createObjectURL = (function createObjectURLClosure() {
|
PDFJS.createObjectURL = (function createObjectURLClosure() {
|
||||||
if (typeof URL !== 'undefined' && URL.createObjectURL) {
|
|
||||||
return function createObjectURL(data, contentType) {
|
|
||||||
var blob = PDFJS.createBlob(data, contentType);
|
|
||||||
return URL.createObjectURL(blob);
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
// Blob/createObjectURL is not available, falling back to data schema.
|
// Blob/createObjectURL is not available, falling back to data schema.
|
||||||
var digits =
|
var digits =
|
||||||
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
|
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
|
||||||
|
|
||||||
return function createObjectURL(data, contentType) {
|
return function createObjectURL(data, contentType) {
|
||||||
|
if (!PDFJS.disableCreateObjectURL &&
|
||||||
|
typeof URL !== 'undefined' && URL.createObjectURL) {
|
||||||
|
var blob = PDFJS.createBlob(data, contentType);
|
||||||
|
return URL.createObjectURL(blob);
|
||||||
|
}
|
||||||
|
|
||||||
var buffer = 'data:' + contentType + ';base64,';
|
var buffer = 'data:' + contentType + ';base64,';
|
||||||
for (var i = 0, ii = data.length; i < ii; i += 3) {
|
for (var i = 0, ii = data.length; i < ii; i += 3) {
|
||||||
var b1 = data[i] & 0xFF;
|
var b1 = data[i] & 0xFF;
|
||||||
|
@ -442,6 +442,14 @@ if (typeof PDFJS === 'undefined') {
|
|||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
// Checks if possible to use URL.createObjectURL()
|
||||||
|
(function checkOnBlobSupport() {
|
||||||
|
// sometimes IE loosing the data created with createObjectURL(), see #3977
|
||||||
|
if (navigator.userAgent.indexOf('Trident') >= 0) {
|
||||||
|
PDFJS.disableCreateObjectURL = true;
|
||||||
|
}
|
||||||
|
})();
|
||||||
|
|
||||||
// Checks if navigator.language is supported
|
// Checks if navigator.language is supported
|
||||||
(function checkNavigatorLanguage() {
|
(function checkNavigatorLanguage() {
|
||||||
if ('language' in navigator)
|
if ('language' in navigator)
|
||||||
|
Loading…
Reference in New Issue
Block a user