mirror of
https://github.com/zen-browser/pdf.js.git
synced 2025-07-10 10:15:37 +02:00
Restore the btoa
/atob
polyfills for Node.js
These were removed in PR 9170, since they were unused in the browsers that we'll support in PDF.js version `2.0`. However looking at the output of Travis, where a subset of the unit-tests are run using Node.js, there's warnings about `btoa` being undefined. This doesn't appear to cause any errors, which probably explains why we didn't notice this before (despite PR 9201).
This commit is contained in:
parent
ba0a3aebd0
commit
0e1b5589e7
16 changed files with 73 additions and 28 deletions
|
@ -22,6 +22,7 @@ if ((typeof PDFJSDev === 'undefined' ||
|
|||
(typeof PDFJS === 'undefined' || !PDFJS.compatibilityChecked)) {
|
||||
|
||||
var globalScope = require('./global_scope');
|
||||
const isNodeJS = require('./is_node');
|
||||
|
||||
var userAgent = (typeof navigator !== 'undefined' && navigator.userAgent) || '';
|
||||
var isAndroid = /Android/.test(userAgent);
|
||||
|
@ -41,6 +42,28 @@ if (typeof PDFJS === 'undefined') {
|
|||
|
||||
PDFJS.compatibilityChecked = true;
|
||||
|
||||
// Support: Node.js
|
||||
(function checkNodeBtoa() {
|
||||
if (globalScope.btoa || !isNodeJS()) {
|
||||
return;
|
||||
}
|
||||
globalScope.btoa = function(chars) {
|
||||
// eslint-disable-next-line no-undef
|
||||
return Buffer.from(chars, 'binary').toString('base64');
|
||||
};
|
||||
})();
|
||||
|
||||
// Support: Node.js
|
||||
(function checkNodeAtob() {
|
||||
if (globalScope.atob || !isNodeJS()) {
|
||||
return;
|
||||
}
|
||||
globalScope.atob = function(input) {
|
||||
// eslint-disable-next-line no-undef
|
||||
return Buffer.from(input, 'base64').toString('binary');
|
||||
};
|
||||
})();
|
||||
|
||||
// Checks if possible to use URL.createObjectURL()
|
||||
// Support: IE, Chrome on iOS
|
||||
(function checkOnBlobSupport() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue