Merge pull request #9385 from Snuffleupagus/rm-SINGLE_FILE
[api-major] Remove the `SINGLE_FILE` build target and the `PDFJS.disableWorker` option
This commit is contained in:
commit
29d77dedad
@ -10,9 +10,6 @@ var pdfPath = '../helloworld/helloworld.pdf';
|
|||||||
// Setting worker path to worker bundle.
|
// Setting worker path to worker bundle.
|
||||||
PDFJS.workerSrc = '../../build/browserify/pdf.worker.bundle.js';
|
PDFJS.workerSrc = '../../build/browserify/pdf.worker.bundle.js';
|
||||||
|
|
||||||
// It is also possible to disable workers via `PDFJS.disableWorker = true`,
|
|
||||||
// however that might degrade the UI performance in web browsers.
|
|
||||||
|
|
||||||
// Loading a document.
|
// Loading a document.
|
||||||
var loadingTask = PDFJS.getDocument(pdfPath);
|
var loadingTask = PDFJS.getDocument(pdfPath);
|
||||||
loadingTask.promise.then(function (pdfDocument) {
|
loadingTask.promise.then(function (pdfDocument) {
|
||||||
|
@ -19,13 +19,6 @@
|
|||||||
//
|
//
|
||||||
var url = './helloworld.pdf';
|
var url = './helloworld.pdf';
|
||||||
|
|
||||||
//
|
|
||||||
// Disable workers to avoid yet another cross-origin issue (workers need
|
|
||||||
// the URL of the script to be loaded, and dynamically loading a cross-origin
|
|
||||||
// script does not work).
|
|
||||||
//
|
|
||||||
// PDFJS.disableWorker = true;
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// The workerSrc property shall be specified.
|
// The workerSrc property shall be specified.
|
||||||
//
|
//
|
||||||
|
@ -31,12 +31,6 @@
|
|||||||
'MDAwIG4gCjAwMDAwMDAzODAgMDAwMDAgbiAKdHJhaWxlcgo8PAogIC9TaXplIDYKICAvUm9v' +
|
'MDAwIG4gCjAwMDAwMDAzODAgMDAwMDAgbiAKdHJhaWxlcgo8PAogIC9TaXplIDYKICAvUm9v' +
|
||||||
'dCAxIDAgUgo+PgpzdGFydHhyZWYKNDkyCiUlRU9G');
|
'dCAxIDAgUgo+PgpzdGFydHhyZWYKNDkyCiUlRU9G');
|
||||||
|
|
||||||
// Disable workers to avoid yet another cross-origin issue (workers need
|
|
||||||
// the URL of the script to be loaded, and dynamically loading a cross-origin
|
|
||||||
// script does not work).
|
|
||||||
//
|
|
||||||
// PDFJS.disableWorker = true;
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// The workerSrc property shall be specified.
|
// The workerSrc property shall be specified.
|
||||||
//
|
//
|
||||||
|
@ -28,14 +28,6 @@
|
|||||||
//
|
//
|
||||||
var url = '../../web/compressed.tracemonkey-pldi-09.pdf';
|
var url = '../../web/compressed.tracemonkey-pldi-09.pdf';
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// Disable workers to avoid yet another cross-origin issue (workers need
|
|
||||||
// the URL of the script to be loaded, and dynamically loading a cross-origin
|
|
||||||
// script does not work).
|
|
||||||
//
|
|
||||||
// PDFJS.disableWorker = true;
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// In cases when the pdf.worker.js is located at the different folder than the
|
// In cases when the pdf.worker.js is located at the different folder than the
|
||||||
// pdf.js's one, or the pdf.js is executed via eval(), the workerSrc property
|
// pdf.js's one, or the pdf.js is executed via eval(), the workerSrc property
|
||||||
|
@ -10,9 +10,6 @@ var pdfPath = '../helloworld/helloworld.pdf';
|
|||||||
// Setting worker path to worker bundle.
|
// Setting worker path to worker bundle.
|
||||||
pdfjsLib.PDFJS.workerSrc = '../../build/webpack/pdf.worker.bundle.js';
|
pdfjsLib.PDFJS.workerSrc = '../../build/webpack/pdf.worker.bundle.js';
|
||||||
|
|
||||||
// It is also possible to disable workers via `PDFJS.disableWorker = true`,
|
|
||||||
// however that might degrade the UI performance in web browsers.
|
|
||||||
|
|
||||||
// Loading a document.
|
// Loading a document.
|
||||||
var loadingTask = pdfjsLib.getDocument(pdfPath);
|
var loadingTask = pdfjsLib.getDocument(pdfPath);
|
||||||
loadingTask.promise.then(function (pdfDocument) {
|
loadingTask.promise.then(function (pdfDocument) {
|
||||||
|
2
external/dist/webpack.js
vendored
2
external/dist/webpack.js
vendored
@ -19,8 +19,6 @@ var PdfjsWorker = require('worker-loader!./build/pdf.worker.js');
|
|||||||
|
|
||||||
if (typeof window !== 'undefined' && 'Worker' in window) {
|
if (typeof window !== 'undefined' && 'Worker' in window) {
|
||||||
pdfjs.PDFJS.workerPort = new PdfjsWorker();
|
pdfjs.PDFJS.workerPort = new PdfjsWorker();
|
||||||
} else {
|
|
||||||
pdfjs.PDFJS.disableWorker = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = pdfjs;
|
module.exports = pdfjs;
|
||||||
|
27
gulpfile.js
27
gulpfile.js
@ -48,7 +48,6 @@ var BASELINE_DIR = BUILD_DIR + 'baseline/';
|
|||||||
var MOZCENTRAL_BASELINE_DIR = BUILD_DIR + 'mozcentral.baseline/';
|
var MOZCENTRAL_BASELINE_DIR = BUILD_DIR + 'mozcentral.baseline/';
|
||||||
var GENERIC_DIR = BUILD_DIR + 'generic/';
|
var GENERIC_DIR = BUILD_DIR + 'generic/';
|
||||||
var COMPONENTS_DIR = BUILD_DIR + 'components/';
|
var COMPONENTS_DIR = BUILD_DIR + 'components/';
|
||||||
var SINGLE_FILE_DIR = BUILD_DIR + 'singlefile/';
|
|
||||||
var MINIFIED_DIR = BUILD_DIR + 'minified/';
|
var MINIFIED_DIR = BUILD_DIR + 'minified/';
|
||||||
var FIREFOX_BUILD_DIR = BUILD_DIR + 'firefox/';
|
var FIREFOX_BUILD_DIR = BUILD_DIR + 'firefox/';
|
||||||
var CHROME_BUILD_DIR = BUILD_DIR + 'chromium/';
|
var CHROME_BUILD_DIR = BUILD_DIR + 'chromium/';
|
||||||
@ -79,7 +78,6 @@ var DEFINES = {
|
|||||||
MOZCENTRAL: false,
|
MOZCENTRAL: false,
|
||||||
CHROME: false,
|
CHROME: false,
|
||||||
MINIFIED: false,
|
MINIFIED: false,
|
||||||
SINGLE_FILE: false,
|
|
||||||
COMPONENTS: false,
|
COMPONENTS: false,
|
||||||
LIB: false,
|
LIB: false,
|
||||||
SKIP_BABEL: false,
|
SKIP_BABEL: false,
|
||||||
@ -235,10 +233,6 @@ function createBundle(defines) {
|
|||||||
|
|
||||||
var mainAMDName = 'pdfjs-dist/build/pdf';
|
var mainAMDName = 'pdfjs-dist/build/pdf';
|
||||||
var mainOutputName = 'pdf.js';
|
var mainOutputName = 'pdf.js';
|
||||||
if (defines.SINGLE_FILE) {
|
|
||||||
mainAMDName = 'pdfjs-dist/build/pdf.combined';
|
|
||||||
mainOutputName = 'pdf.combined.js';
|
|
||||||
}
|
|
||||||
|
|
||||||
var mainFileConfig = createWebpackConfig(defines, {
|
var mainFileConfig = createWebpackConfig(defines, {
|
||||||
filename: mainOutputName,
|
filename: mainOutputName,
|
||||||
@ -250,9 +244,6 @@ function createBundle(defines) {
|
|||||||
.pipe(webpack2Stream(mainFileConfig))
|
.pipe(webpack2Stream(mainFileConfig))
|
||||||
.pipe(replaceWebpackRequire())
|
.pipe(replaceWebpackRequire())
|
||||||
.pipe(replaceJSRootName(mainAMDName));
|
.pipe(replaceJSRootName(mainAMDName));
|
||||||
if (defines.SINGLE_FILE) {
|
|
||||||
return mainOutput; // don't need a worker file.
|
|
||||||
}
|
|
||||||
|
|
||||||
var workerAMDName = 'pdfjs-dist/build/pdf.worker';
|
var workerAMDName = 'pdfjs-dist/build/pdf.worker';
|
||||||
var workerOutputName = 'pdf.worker.js';
|
var workerOutputName = 'pdf.worker.js';
|
||||||
@ -634,18 +625,6 @@ gulp.task('components', ['buildnumber'], function () {
|
|||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
|
|
||||||
gulp.task('singlefile', ['buildnumber'], function () {
|
|
||||||
console.log();
|
|
||||||
console.log('### Creating singlefile build');
|
|
||||||
var defines = builder.merge(DEFINES, { SINGLE_FILE: true, });
|
|
||||||
|
|
||||||
var SINGLE_FILE_BUILD_DIR = SINGLE_FILE_DIR + 'build/';
|
|
||||||
|
|
||||||
rimraf.sync(SINGLE_FILE_DIR);
|
|
||||||
|
|
||||||
return createBundle(defines).pipe(gulp.dest(SINGLE_FILE_BUILD_DIR));
|
|
||||||
});
|
|
||||||
|
|
||||||
gulp.task('minified-pre', ['buildnumber', 'locale'], function () {
|
gulp.task('minified-pre', ['buildnumber', 'locale'], function () {
|
||||||
console.log();
|
console.log();
|
||||||
console.log('### Creating minified viewer');
|
console.log('### Creating minified viewer');
|
||||||
@ -1275,9 +1254,7 @@ gulp.task('gh-pages-git', ['gh-pages-prepare', 'wintersmith'], function () {
|
|||||||
|
|
||||||
gulp.task('web', ['gh-pages-prepare', 'wintersmith', 'gh-pages-git']);
|
gulp.task('web', ['gh-pages-prepare', 'wintersmith', 'gh-pages-git']);
|
||||||
|
|
||||||
gulp.task('dist-pre',
|
gulp.task('dist-pre', ['generic', 'components', 'lib', 'minified'], function() {
|
||||||
['generic', 'singlefile', 'components', 'lib', 'minified'],
|
|
||||||
function () {
|
|
||||||
var VERSION = getVersionJSON().version;
|
var VERSION = getVersionJSON().version;
|
||||||
|
|
||||||
console.log();
|
console.log();
|
||||||
@ -1359,8 +1336,6 @@ gulp.task('dist-pre',
|
|||||||
GENERIC_DIR + 'build/pdf.js.map',
|
GENERIC_DIR + 'build/pdf.js.map',
|
||||||
GENERIC_DIR + 'build/pdf.worker.js',
|
GENERIC_DIR + 'build/pdf.worker.js',
|
||||||
GENERIC_DIR + 'build/pdf.worker.js.map',
|
GENERIC_DIR + 'build/pdf.worker.js.map',
|
||||||
SINGLE_FILE_DIR + 'build/pdf.combined.js',
|
|
||||||
SINGLE_FILE_DIR + 'build/pdf.combined.js.map',
|
|
||||||
SRC_DIR + 'pdf.worker.entry.js',
|
SRC_DIR + 'pdf.worker.entry.js',
|
||||||
]).pipe(gulp.dest(DIST_DIR + 'build/')),
|
]).pipe(gulp.dest(DIST_DIR + 'build/')),
|
||||||
gulp.src(MINIFIED_DIR + 'build/pdf.js')
|
gulp.src(MINIFIED_DIR + 'build/pdf.js')
|
||||||
|
@ -46,8 +46,7 @@ var pdfjsFilePath =
|
|||||||
|
|
||||||
var fakeWorkerFilesLoader = null;
|
var fakeWorkerFilesLoader = null;
|
||||||
var useRequireEnsure = false;
|
var useRequireEnsure = false;
|
||||||
if (typeof PDFJSDev !== 'undefined' &&
|
if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('GENERIC')) {
|
||||||
PDFJSDev.test('GENERIC && !SINGLE_FILE')) {
|
|
||||||
// For GENERIC build we need add support of different fake file loaders
|
// For GENERIC build we need add support of different fake file loaders
|
||||||
// for different frameworks.
|
// for different frameworks.
|
||||||
if (typeof window === 'undefined') {
|
if (typeof window === 'undefined') {
|
||||||
@ -1217,39 +1216,52 @@ var PDFWorker = (function PDFWorkerClosure() {
|
|||||||
throw new Error('No PDFJS.workerSrc specified');
|
throw new Error('No PDFJS.workerSrc specified');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getMainThreadWorkerMessageHandler() {
|
||||||
|
if (typeof window === 'undefined') {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (typeof PDFJSDev === 'undefined' || !PDFJSDev.test('PRODUCTION')) {
|
||||||
|
return (window.pdfjsNonProductionPdfWorker &&
|
||||||
|
window.pdfjsNonProductionPdfWorker.WorkerMessageHandler);
|
||||||
|
}
|
||||||
|
// PRODUCTION
|
||||||
|
return (window.pdfjsDistBuildPdfWorker &&
|
||||||
|
window.pdfjsDistBuildPdfWorker.WorkerMessageHandler);
|
||||||
|
}
|
||||||
|
|
||||||
let fakeWorkerFilesLoadedCapability;
|
let fakeWorkerFilesLoadedCapability;
|
||||||
|
|
||||||
// Loads worker code into main thread.
|
// Loads worker code into main thread.
|
||||||
function setupFakeWorkerGlobal() {
|
function setupFakeWorkerGlobal() {
|
||||||
var WorkerMessageHandler;
|
|
||||||
if (fakeWorkerFilesLoadedCapability) {
|
if (fakeWorkerFilesLoadedCapability) {
|
||||||
return fakeWorkerFilesLoadedCapability.promise;
|
return fakeWorkerFilesLoadedCapability.promise;
|
||||||
}
|
}
|
||||||
fakeWorkerFilesLoadedCapability = createPromiseCapability();
|
fakeWorkerFilesLoadedCapability = createPromiseCapability();
|
||||||
// In the developer build load worker_loader which in turn loads all the
|
|
||||||
|
let mainWorkerMessageHandler = getMainThreadWorkerMessageHandler();
|
||||||
|
if (mainWorkerMessageHandler) {
|
||||||
|
// The worker was already loaded using a `<script>` tag.
|
||||||
|
fakeWorkerFilesLoadedCapability.resolve(mainWorkerMessageHandler);
|
||||||
|
return fakeWorkerFilesLoadedCapability.promise;
|
||||||
|
}
|
||||||
|
// In the developer build load worker_loader.js which in turn loads all the
|
||||||
// other files and resolves the promise. In production only the
|
// other files and resolves the promise. In production only the
|
||||||
// pdf.worker.js file is needed.
|
// pdf.worker.js file is needed.
|
||||||
if (typeof PDFJSDev === 'undefined' || !PDFJSDev.test('PRODUCTION')) {
|
if (typeof PDFJSDev === 'undefined' || !PDFJSDev.test('PRODUCTION')) {
|
||||||
if (typeof SystemJS === 'object') {
|
if (typeof SystemJS === 'object') {
|
||||||
SystemJS.import('pdfjs/core/worker').then((worker) => {
|
SystemJS.import('pdfjs/core/worker').then((worker) => {
|
||||||
WorkerMessageHandler = worker.WorkerMessageHandler;
|
fakeWorkerFilesLoadedCapability.resolve(worker.WorkerMessageHandler);
|
||||||
fakeWorkerFilesLoadedCapability.resolve(WorkerMessageHandler);
|
|
||||||
});
|
});
|
||||||
} else if (typeof require === 'function') {
|
} else if (typeof require === 'function') {
|
||||||
var worker = require('../core/worker.js');
|
let worker = require('../core/worker.js');
|
||||||
WorkerMessageHandler = worker.WorkerMessageHandler;
|
fakeWorkerFilesLoadedCapability.resolve(worker.WorkerMessageHandler);
|
||||||
fakeWorkerFilesLoadedCapability.resolve(WorkerMessageHandler);
|
|
||||||
} else {
|
} else {
|
||||||
throw new Error(
|
throw new Error(
|
||||||
'SystemJS or CommonJS must be used to load fake worker.');
|
'SystemJS or CommonJS must be used to load fake worker.');
|
||||||
}
|
}
|
||||||
} else if (PDFJSDev.test('SINGLE_FILE')) {
|
|
||||||
var pdfjsCoreWorker = require('../core/worker.js');
|
|
||||||
WorkerMessageHandler = pdfjsCoreWorker.WorkerMessageHandler;
|
|
||||||
fakeWorkerFilesLoadedCapability.resolve(WorkerMessageHandler);
|
|
||||||
} else {
|
} else {
|
||||||
var loader = fakeWorkerFilesLoader || function (callback) {
|
let loader = fakeWorkerFilesLoader || function(callback) {
|
||||||
Util.loadScript(getWorkerSrc(), function () {
|
Util.loadScript(getWorkerSrc(), function() {
|
||||||
callback(window.pdfjsDistBuildPdfWorker.WorkerMessageHandler);
|
callback(window.pdfjsDistBuildPdfWorker.WorkerMessageHandler);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@ -1320,9 +1332,8 @@ var PDFWorker = (function PDFWorkerClosure() {
|
|||||||
// all requirements to run parts of pdf.js in a web worker.
|
// all requirements to run parts of pdf.js in a web worker.
|
||||||
// Right now, the requirement is, that an Uint8Array is still an
|
// Right now, the requirement is, that an Uint8Array is still an
|
||||||
// Uint8Array as it arrives on the worker. (Chrome added this with v.15.)
|
// Uint8Array as it arrives on the worker. (Chrome added this with v.15.)
|
||||||
if ((typeof PDFJSDev === 'undefined' || !PDFJSDev.test('SINGLE_FILE')) &&
|
if (typeof Worker !== 'undefined' && !isWorkerDisabled &&
|
||||||
!isWorkerDisabled && !getDefaultSetting('disableWorker') &&
|
!getMainThreadWorkerMessageHandler()) {
|
||||||
typeof Worker !== 'undefined') {
|
|
||||||
var workerSrc = getWorkerSrc();
|
var workerSrc = getWorkerSrc();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@ -1433,7 +1444,7 @@ var PDFWorker = (function PDFWorkerClosure() {
|
|||||||
},
|
},
|
||||||
|
|
||||||
_setupFakeWorker: function PDFWorker_setupFakeWorker() {
|
_setupFakeWorker: function PDFWorker_setupFakeWorker() {
|
||||||
if (!isWorkerDisabled && !getDefaultSetting('disableWorker')) {
|
if (!isWorkerDisabled) {
|
||||||
warn('Setting up fake worker.');
|
warn('Setting up fake worker.');
|
||||||
isWorkerDisabled = true;
|
isWorkerDisabled = true;
|
||||||
}
|
}
|
||||||
@ -1491,6 +1502,10 @@ var PDFWorker = (function PDFWorkerClosure() {
|
|||||||
return new PDFWorker(null, port);
|
return new PDFWorker(null, port);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
PDFWorker.getWorkerSrc = function() {
|
||||||
|
return getWorkerSrc();
|
||||||
|
};
|
||||||
|
|
||||||
return PDFWorker;
|
return PDFWorker;
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
@ -361,8 +361,6 @@ function getDefaultSetting(id) {
|
|||||||
return globalSettings ? globalSettings.workerPort : null;
|
return globalSettings ? globalSettings.workerPort : null;
|
||||||
case 'workerSrc':
|
case 'workerSrc':
|
||||||
return globalSettings ? globalSettings.workerSrc : null;
|
return globalSettings ? globalSettings.workerSrc : null;
|
||||||
case 'disableWorker':
|
|
||||||
return globalSettings ? globalSettings.disableWorker : false;
|
|
||||||
case 'maxImageSize':
|
case 'maxImageSize':
|
||||||
return globalSettings ? globalSettings.maxImageSize : -1;
|
return globalSettings ? globalSettings.maxImageSize : -1;
|
||||||
case 'imageResourcesPath':
|
case 'imageResourcesPath':
|
||||||
|
@ -128,15 +128,6 @@ PDFJS.disableFontFace = (PDFJS.disableFontFace === undefined ?
|
|||||||
PDFJS.imageResourcesPath = (PDFJS.imageResourcesPath === undefined ?
|
PDFJS.imageResourcesPath = (PDFJS.imageResourcesPath === undefined ?
|
||||||
'' : PDFJS.imageResourcesPath);
|
'' : PDFJS.imageResourcesPath);
|
||||||
|
|
||||||
/**
|
|
||||||
* Disable the web worker and run all code on the main thread. This will
|
|
||||||
* happen automatically if the browser doesn't support workers or sending
|
|
||||||
* typed arrays to workers.
|
|
||||||
* @var {boolean}
|
|
||||||
*/
|
|
||||||
PDFJS.disableWorker = (PDFJS.disableWorker === undefined ?
|
|
||||||
false : PDFJS.disableWorker);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Path and filename of the worker file. Required when the worker is enabled
|
* Path and filename of the worker file. Required when the worker is enabled
|
||||||
* in development mode. If unspecified in the production build, the worker
|
* in development mode. If unspecified in the production build, the worker
|
||||||
@ -148,8 +139,7 @@ PDFJS.disableWorker = (PDFJS.disableWorker === undefined ?
|
|||||||
PDFJS.workerSrc = (PDFJS.workerSrc === undefined ? null : PDFJS.workerSrc);
|
PDFJS.workerSrc = (PDFJS.workerSrc === undefined ? null : PDFJS.workerSrc);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Defines global port for worker process. Overrides workerSrc and
|
* Defines global port for worker process. Overrides `workerSrc` setting.
|
||||||
* disableWorker setting.
|
|
||||||
*/
|
*/
|
||||||
PDFJS.workerPort = (PDFJS.workerPort === undefined ? null : PDFJS.workerPort);
|
PDFJS.workerPort = (PDFJS.workerPort === undefined ? null : PDFJS.workerPort);
|
||||||
|
|
||||||
|
@ -25,8 +25,7 @@ var SVGGraphics = function() {
|
|||||||
throw new Error('Not implemented: SVGGraphics');
|
throw new Error('Not implemented: SVGGraphics');
|
||||||
};
|
};
|
||||||
|
|
||||||
if (typeof PDFJSDev === 'undefined' ||
|
if (typeof PDFJSDev === 'undefined' || PDFJSDev.test('GENERIC')) {
|
||||||
PDFJSDev.test('GENERIC || SINGLE_FILE')) {
|
|
||||||
|
|
||||||
var SVG_DEFAULTS = {
|
var SVG_DEFAULTS = {
|
||||||
fontStyle: 'normal',
|
fontStyle: 'normal',
|
||||||
|
@ -29,8 +29,7 @@ var pdfjsDisplayAnnotationLayer = require('./display/annotation_layer.js');
|
|||||||
var pdfjsDisplayDOMUtils = require('./display/dom_utils.js');
|
var pdfjsDisplayDOMUtils = require('./display/dom_utils.js');
|
||||||
var pdfjsDisplaySVG = require('./display/svg.js');
|
var pdfjsDisplaySVG = require('./display/svg.js');
|
||||||
|
|
||||||
if (typeof PDFJSDev === 'undefined' ||
|
if (typeof PDFJSDev === 'undefined' || PDFJSDev.test('GENERIC')) {
|
||||||
!PDFJSDev.test('FIREFOX || MOZCENTRAL || CHROME')) {
|
|
||||||
const isNodeJS = require('./shared/is_node.js');
|
const isNodeJS = require('./shared/is_node.js');
|
||||||
if (isNodeJS()) {
|
if (isNodeJS()) {
|
||||||
let PDFNodeStream = require('./display/node_stream.js').PDFNodeStream;
|
let PDFNodeStream = require('./display/node_stream.js').PDFNodeStream;
|
||||||
@ -43,7 +42,7 @@ if (typeof PDFJSDev === 'undefined' ||
|
|||||||
pdfjsDisplayAPI.setPDFNetworkStreamFactory((params) => {
|
pdfjsDisplayAPI.setPDFNetworkStreamFactory((params) => {
|
||||||
return new PDFFetchStream(params);
|
return new PDFFetchStream(params);
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
let PDFNetworkStream = require('./display/network.js').PDFNetworkStream;
|
let PDFNetworkStream = require('./display/network.js').PDFNetworkStream;
|
||||||
pdfjsDisplayAPI.setPDFNetworkStreamFactory((params) => {
|
pdfjsDisplayAPI.setPDFNetworkStreamFactory((params) => {
|
||||||
return new PDFNetworkStream(params);
|
return new PDFNetworkStream(params);
|
||||||
|
@ -24,7 +24,7 @@ import {
|
|||||||
DOMCanvasFactory, RenderingCancelledException
|
DOMCanvasFactory, RenderingCancelledException
|
||||||
} from '../../src/display/dom_utils';
|
} from '../../src/display/dom_utils';
|
||||||
import {
|
import {
|
||||||
getDocument, PDFDocumentProxy, PDFPageProxy
|
getDocument, PDFDocumentProxy, PDFPageProxy, PDFWorker
|
||||||
} from '../../src/display/api';
|
} from '../../src/display/api';
|
||||||
import isNodeJS from '../../src/shared/is_node';
|
import isNodeJS from '../../src/shared/is_node';
|
||||||
import { PDFJS } from '../../src/display/global';
|
import { PDFJS } from '../../src/display/global';
|
||||||
@ -122,16 +122,14 @@ describe('api', function() {
|
|||||||
path: TEST_PDFS_PATH.node + basicApiFileName,
|
path: TEST_PDFS_PATH.node + basicApiFileName,
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
var nonBinaryRequest = PDFJS.disableWorker;
|
let nonBinaryRequest = false;
|
||||||
var request = new XMLHttpRequest();
|
let request = new XMLHttpRequest();
|
||||||
request.open('GET', TEST_PDFS_PATH.dom + basicApiFileName, false);
|
request.open('GET', TEST_PDFS_PATH.dom + basicApiFileName, false);
|
||||||
if (!nonBinaryRequest) {
|
try {
|
||||||
try {
|
request.responseType = 'arraybuffer';
|
||||||
request.responseType = 'arraybuffer';
|
nonBinaryRequest = request.responseType !== 'arraybuffer';
|
||||||
nonBinaryRequest = request.responseType !== 'arraybuffer';
|
} catch (e) {
|
||||||
} catch (e) {
|
nonBinaryRequest = true;
|
||||||
nonBinaryRequest = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (nonBinaryRequest && request.overrideMimeType) {
|
if (nonBinaryRequest && request.overrideMimeType) {
|
||||||
request.overrideMimeType('text/plain; charset=x-user-defined');
|
request.overrideMimeType('text/plain; charset=x-user-defined');
|
||||||
@ -405,6 +403,11 @@ describe('api', function() {
|
|||||||
done.fail(reason);
|
done.fail(reason);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
it('gets current workerSrc', function() {
|
||||||
|
let workerSrc = PDFWorker.getWorkerSrc();
|
||||||
|
expect(typeof workerSrc).toEqual('string');
|
||||||
|
expect(workerSrc).toEqual(PDFJS.workerSrc);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
describe('PDFDocument', function() {
|
describe('PDFDocument', function() {
|
||||||
var loadingTask;
|
var loadingTask;
|
||||||
|
38
web/app.js
38
web/app.js
@ -22,8 +22,8 @@ import {
|
|||||||
} from './ui_utils';
|
} from './ui_utils';
|
||||||
import {
|
import {
|
||||||
build, createBlob, getDocument, getFilenameFromUrl, InvalidPDFException,
|
build, createBlob, getDocument, getFilenameFromUrl, InvalidPDFException,
|
||||||
MissingPDFException, OPS, PDFJS, shadow, UnexpectedResponseException,
|
MissingPDFException, OPS, PDFJS, PDFWorker, shadow,
|
||||||
UNSUPPORTED_FEATURES, version
|
UnexpectedResponseException, UNSUPPORTED_FEATURES, version
|
||||||
} from 'pdfjs-lib';
|
} from 'pdfjs-lib';
|
||||||
import { CursorTool, PDFCursorTools } from './pdf_cursor_tools';
|
import { CursorTool, PDFCursorTools } from './pdf_cursor_tools';
|
||||||
import { PDFRenderingQueue, RenderingStates } from './pdf_rendering_queue';
|
import { PDFRenderingQueue, RenderingStates } from './pdf_rendering_queue';
|
||||||
@ -285,8 +285,9 @@ let PDFViewerApplication = {
|
|||||||
let hash = document.location.hash.substring(1);
|
let hash = document.location.hash.substring(1);
|
||||||
let hashParams = parseQueryString(hash);
|
let hashParams = parseQueryString(hash);
|
||||||
|
|
||||||
if ('disableworker' in hashParams) {
|
if ('disableworker' in hashParams &&
|
||||||
PDFJS.disableWorker = (hashParams['disableworker'] === 'true');
|
hashParams['disableworker'] === 'true') {
|
||||||
|
waitOn.push(loadFakeWorker());
|
||||||
}
|
}
|
||||||
if ('disablerange' in hashParams) {
|
if ('disablerange' in hashParams) {
|
||||||
PDFJS.disableRange = (hashParams['disablerange'] === 'true');
|
PDFJS.disableRange = (hashParams['disablerange'] === 'true');
|
||||||
@ -1512,6 +1513,35 @@ if (typeof PDFJSDev === 'undefined' || PDFJSDev.test('GENERIC')) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function loadFakeWorker() {
|
||||||
|
return new Promise(function(resolve, reject) {
|
||||||
|
if (typeof PDFJSDev === 'undefined' || !PDFJSDev.test('PRODUCTION')) {
|
||||||
|
if (typeof SystemJS === 'object') {
|
||||||
|
SystemJS.import('pdfjs/core/worker').then((worker) => {
|
||||||
|
window.pdfjsNonProductionPdfWorker = worker;
|
||||||
|
resolve();
|
||||||
|
});
|
||||||
|
} else if (typeof require === 'function') {
|
||||||
|
window.pdfjsNonProductionPdfWorker = require('../src/core/worker.js');
|
||||||
|
resolve();
|
||||||
|
} else {
|
||||||
|
reject(new Error(
|
||||||
|
'SystemJS or CommonJS must be used to load fake worker.'));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
let script = document.createElement('script');
|
||||||
|
script.src = PDFWorker.getWorkerSrc();
|
||||||
|
script.onload = function() {
|
||||||
|
resolve();
|
||||||
|
};
|
||||||
|
script.onerror = function() {
|
||||||
|
reject(new Error(`Cannot load fake worker at: ${script.src}`));
|
||||||
|
};
|
||||||
|
(document.head || document.documentElement).appendChild(script);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function loadAndEnablePDFBug(enabledTabs) {
|
function loadAndEnablePDFBug(enabledTabs) {
|
||||||
return new Promise(function (resolve, reject) {
|
return new Promise(function (resolve, reject) {
|
||||||
let appConfig = PDFViewerApplication.appConfig;
|
let appConfig = PDFViewerApplication.appConfig;
|
||||||
|
Loading…
Reference in New Issue
Block a user