Merge pull request #9409 from Rob--W/compat-chrome-49
Fix Chrome 49 compatibility via polyfills
This commit is contained in:
commit
28c87ce9c6
@ -18,10 +18,16 @@
|
||||
// Skip compatibility checks for the extensions and if we already ran
|
||||
// this module.
|
||||
if ((typeof PDFJSDev === 'undefined' ||
|
||||
!PDFJSDev.test('FIREFOX || MOZCENTRAL || CHROME')) &&
|
||||
!PDFJSDev.test('FIREFOX || MOZCENTRAL')) &&
|
||||
(typeof PDFJS === 'undefined' || !PDFJS.compatibilityChecked)) {
|
||||
|
||||
// In the Chrome extension, most of the polyfills are unnecessary.
|
||||
// We support down to Chrome 49, because it's still commonly used by Windows XP
|
||||
// users - https://github.com/mozilla/pdf.js/issues/9397
|
||||
if (typeof PDFJSDev === 'undefined' || !PDFJSDev.test('CHROME')) {
|
||||
|
||||
var globalScope = require('./global_scope');
|
||||
|
||||
const isNodeJS = require('./is_node');
|
||||
|
||||
var userAgent = (typeof navigator !== 'undefined' && navigator.userAgent) || '';
|
||||
@ -75,6 +81,7 @@ PDFJS.compatibilityChecked = true;
|
||||
})();
|
||||
|
||||
// Checks if navigator.language is supported
|
||||
// Support: IE<11
|
||||
(function checkNavigatorLanguage() {
|
||||
if (typeof navigator === 'undefined') {
|
||||
return;
|
||||
@ -150,17 +157,8 @@ PDFJS.compatibilityChecked = true;
|
||||
};
|
||||
})();
|
||||
|
||||
// Provides support for Object.values in legacy browsers.
|
||||
// Support: IE.
|
||||
(function checkObjectValues() {
|
||||
if (Object.values) {
|
||||
return;
|
||||
}
|
||||
Object.values = require('core-js/fn/object/values');
|
||||
})();
|
||||
|
||||
// Provides support for Array.prototype.includes in legacy browsers.
|
||||
// Support: IE.
|
||||
// Support: IE, Chrome<47
|
||||
(function checkArrayIncludes() {
|
||||
if (Array.prototype.includes) {
|
||||
return;
|
||||
@ -169,7 +167,7 @@ PDFJS.compatibilityChecked = true;
|
||||
})();
|
||||
|
||||
// Provides support for Math.log2 in legacy browsers.
|
||||
// Support: IE.
|
||||
// Support: IE, Chrome<38
|
||||
(function checkMathLog2() {
|
||||
if (Math.log2) {
|
||||
return;
|
||||
@ -187,7 +185,7 @@ PDFJS.compatibilityChecked = true;
|
||||
})();
|
||||
|
||||
// Provides support for Number.isInteger in legacy browsers.
|
||||
// Support: IE.
|
||||
// Support: IE, Chrome<34
|
||||
(function checkNumberIsInteger() {
|
||||
if (Number.isInteger) {
|
||||
return;
|
||||
@ -195,6 +193,7 @@ PDFJS.compatibilityChecked = true;
|
||||
Number.isInteger = require('core-js/fn/number/is-integer');
|
||||
})();
|
||||
|
||||
// Support: IE, Safari<8, Chrome<32
|
||||
(function checkPromise() {
|
||||
if (globalScope.Promise) {
|
||||
return;
|
||||
@ -202,6 +201,7 @@ PDFJS.compatibilityChecked = true;
|
||||
globalScope.Promise = require('core-js/fn/promise');
|
||||
})();
|
||||
|
||||
// Support: IE<11, Safari<8, Chrome<36
|
||||
(function checkWeakMap() {
|
||||
if (globalScope.WeakMap) {
|
||||
return;
|
||||
@ -209,6 +209,7 @@ PDFJS.compatibilityChecked = true;
|
||||
globalScope.WeakMap = require('core-js/fn/weak-map');
|
||||
})();
|
||||
|
||||
// Support: IE, Chrome<32
|
||||
// Polyfill from https://github.com/Polymer/URL
|
||||
/* Any copyright is dedicated to the Public Domain.
|
||||
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
@ -861,4 +862,15 @@ PDFJS.compatibilityChecked = true;
|
||||
globalScope.URL = JURL;
|
||||
})();
|
||||
|
||||
} // End of !PDFJSDev.test('CHROME')
|
||||
|
||||
// Provides support for Object.values in legacy browsers.
|
||||
// Support: IE, Chrome<54
|
||||
(function checkObjectValues() {
|
||||
if (Object.values) {
|
||||
return;
|
||||
}
|
||||
Object.values = require('core-js/fn/object/values');
|
||||
})();
|
||||
|
||||
}
|
||||
|
@ -31,9 +31,6 @@ if (typeof ReadableStream !== 'undefined') {
|
||||
if (isReadableStreamSupported) {
|
||||
exports.ReadableStream = ReadableStream;
|
||||
} else {
|
||||
if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('CHROME')) {
|
||||
throw new Error('ReadableStream polyfill is not found for Chrome bundle');
|
||||
}
|
||||
exports.ReadableStream =
|
||||
require('../../external/streams/streams-lib').ReadableStream;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user