[Pkg-javascript-commits] [pdf.js] 344/414: Exposes all functional members via lib exports and use them in viewer.

David Prévot taffit at moszumanska.debian.org
Tue Jun 28 17:12:37 UTC 2016


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository pdf.js.

commit 1e3e14e6b2bee4dd414ee7a9f28c2ae16c93fb76
Author: Yury Delendik <ydelendik at mozilla.com>
Date:   Mon Mar 28 16:44:27 2016 -0500

    Exposes all functional members via lib exports and use them in viewer.
---
 examples/acroforms/forms.js     |  4 +--
 examples/helloworld/hello.js    |  4 +--
 examples/node/getinfo.js        |  4 +--
 examples/node/pdf2svg.js        |  6 ++--
 examples/svgviewer/viewer.js    | 17 ++++++----
 examples/webpack/main.js        |  4 +--
 src/display/api.js              |  9 +++++-
 src/main_loader.js              | 14 +++++++-
 src/pdf.js                      | 13 ++++++++
 web/annotation_layer_builder.js |  6 ++--
 web/app.js                      | 72 ++++++++++++++++++++---------------------
 web/chromecom.js                |  4 +--
 web/debugger.js                 |  8 ++---
 web/download_manager.js         |  7 ++--
 web/firefoxcom.js               |  4 +--
 web/password_prompt.js          |  4 +--
 web/pdf_attachment_viewer.js    |  6 ++--
 web/pdf_find_controller.js      |  2 +-
 web/pdf_outline_viewer.js       |  6 ++--
 web/pdf_page_view.js            | 20 ++++++------
 web/pdf_viewer.component.js     | 17 +++++++---
 web/pdf_viewer.js               |  9 +++---
 web/text_layer_builder.js       |  4 +--
 web/ui_utils.js                 | 30 ++++++++++++++++-
 web/viewer.js                   |  2 ++
 25 files changed, 174 insertions(+), 102 deletions(-)

diff --git a/examples/acroforms/forms.js b/examples/acroforms/forms.js
index d7c40c8..732ea94 100644
--- a/examples/acroforms/forms.js
+++ b/examples/acroforms/forms.js
@@ -140,9 +140,9 @@ function renderPage(div, pdf, pageNumber, callback) {
 
 // In production, the bundled pdf.js shall be used instead of RequireJS.
 require.config({paths: {'pdfjs': '../../src'}});
-require(['pdfjs/display/api'], function (api) {
+require(['pdfjs/display/api', 'pdfjs/display/global'], function (api, global) {
   // In production, change this to point to the built `pdf.worker.js` file.
-  PDFJS.workerSrc = '../../src/worker_loader.js';
+  global.PDFJS.workerSrc = '../../src/worker_loader.js';
 
   // Fetch the PDF document from the URL using promises.
   api.getDocument(pdfWithFormsPath).then(function getPdfForm(pdf) {
diff --git a/examples/helloworld/hello.js b/examples/helloworld/hello.js
index 00aac8f..3571b59 100644
--- a/examples/helloworld/hello.js
+++ b/examples/helloworld/hello.js
@@ -2,9 +2,9 @@
 
 // In production, the bundled pdf.js shall be used instead of RequireJS.
 require.config({paths: {'pdfjs': '../../src'}});
-require(['pdfjs/display/api'], function (api) {
+require(['pdfjs/display/api', 'pdfjs/display/global'], function (api, global) {
   // In production, change this to point to the built `pdf.worker.js` file.
-  PDFJS.workerSrc = '../../src/worker_loader.js';
+  global.PDFJS.workerSrc = '../../src/worker_loader.js';
 
   // Fetch the PDF document from the URL using promises.
   api.getDocument('helloworld.pdf').then(function (pdf) {
diff --git a/examples/node/getinfo.js b/examples/node/getinfo.js
index c06e05d..3bed392 100644
--- a/examples/node/getinfo.js
+++ b/examples/node/getinfo.js
@@ -13,7 +13,7 @@ var fs = require('fs');
 global.DOMParser = require('./domparsermock.js').DOMParserMock;
 
 // Run `gulp dist` to generate 'pdfjs-dist' npm package files.
-require('../../build/dist');
+var pdfjsLib = require('../../build/dist');
 
 // Loading file from file system into typed array
 var pdfPath = process.argv[2] || '../../web/compressed.tracemonkey-pldi-09.pdf';
@@ -21,7 +21,7 @@ var data = new Uint8Array(fs.readFileSync(pdfPath));
 
 // Will be using promises to load document, pages and misc data instead of
 // callback.
-PDFJS.getDocument(data).then(function (doc) {
+pdfjsLib.getDocument(data).then(function (doc) {
   var numPages = doc.numPages;
   console.log('# Document Loaded');
   console.log('Number of Pages: ' + numPages);
diff --git a/examples/node/pdf2svg.js b/examples/node/pdf2svg.js
index 48268bf..00d4121 100644
--- a/examples/node/pdf2svg.js
+++ b/examples/node/pdf2svg.js
@@ -11,7 +11,7 @@ var fs = require('fs');
 require('./domstubs.js');
 
 // Run `gulp dist` to generate 'pdfjs-dist' npm package files.
-require('../../build/dist');
+var pdfjsLib = require('../../build/dist');
 
 // Loading file from file system into typed array
 var pdfPath = process.argv[2] || '../../web/compressed.tracemonkey-pldi-09.pdf';
@@ -44,7 +44,7 @@ function getFileNameFromPath(path) {
 
 // Will be using promises to load document, pages and misc data instead of
 // callback.
-PDFJS.getDocument(data).then(function (doc) {
+pdfjsLib.getDocument(data).then(function (doc) {
   var numPages = doc.numPages;
   console.log('# Document Loaded');
   console.log('Number of Pages: ' + numPages);
@@ -59,7 +59,7 @@ PDFJS.getDocument(data).then(function (doc) {
       console.log();
 
       return page.getOperatorList().then(function (opList) {
-        var svgGfx = new PDFJS.SVGGraphics(page.commonObjs, page.objs);
+        var svgGfx = new pdfjsLib.SVGGraphics(page.commonObjs, page.objs);
         svgGfx.embedFonts = true;
         return svgGfx.getSVG(opList, viewport).then(function (svg) {
           var svgDump = svg.toString();
diff --git a/examples/svgviewer/viewer.js b/examples/svgviewer/viewer.js
index 3fe24d9..51f5ad2 100644
--- a/examples/svgviewer/viewer.js
+++ b/examples/svgviewer/viewer.js
@@ -9,7 +9,7 @@ var queryParams = query ? JSON.parse('{' + query.split('&').map(function (a) {
 var url = queryParams.file || '../../test/pdfs/liveprogramming.pdf';
 var scale = +queryParams.scale || 1.5;
 
-function renderDocument(pdf) {
+function renderDocument(pdf, svgLib) {
   var numPages = pdf.numPages;
   // Using promise to fetch the page
 
@@ -37,7 +37,7 @@ function renderDocument(pdf) {
         anchor.appendChild(container);
 
         return page.getOperatorList().then(function (opList) {
-          var svgGfx = new PDFJS.SVGGraphics(page.commonObjs, page.objs);
+          var svgGfx = new svgLib.SVGGraphics(page.commonObjs, page.objs);
           return svgGfx.getSVG(opList, viewport).then(function (svg) {
             container.appendChild(svg);
           });
@@ -49,14 +49,17 @@ function renderDocument(pdf) {
 
 // In production, the bundled pdf.js shall be used instead of RequireJS.
 require.config({paths: {'pdfjs': '../../src'}});
-require(['pdfjs/display/api', 'pdfjs/display/svg'], function (api, svg) {
+require(['pdfjs/display/api', 'pdfjs/display/svg', 'pdfjs/display/global'],
+    function (api, svg, global) {
   // In production, change this to point to the built `pdf.worker.js` file.
-  PDFJS.workerSrc = '../../src/worker_loader.js';
+  global.PDFJS.workerSrc = '../../src/worker_loader.js';
 
   // In production, change this to point to where the cMaps are placed.
-  PDFJS.cMapUrl = '../../external/bcmaps/';
-  PDFJS.cMapPacked = true;
+  global.PDFJS.cMapUrl = '../../external/bcmaps/';
+  global.PDFJS.cMapPacked = true;
 
   // Fetch the PDF document from the URL using promises.
-  api.getDocument(url).then(renderDocument);
+  api.getDocument(url).then(function (doc) {
+    renderDocument(doc, svg);
+  });
 });
diff --git a/examples/webpack/main.js b/examples/webpack/main.js
index 2a3509d..6b475dc 100644
--- a/examples/webpack/main.js
+++ b/examples/webpack/main.js
@@ -3,7 +3,7 @@
 
 // Hello world example for webpack.
 
-require('pdfjs-dist');
+var pdfjsLib = require('pdfjs-dist');
 
 var pdfPath = '../helloworld/helloworld.pdf';
 
@@ -11,7 +11,7 @@ var pdfPath = '../helloworld/helloworld.pdf';
 // however that might degrade the UI performance in web browsers.
 
 // Loading a document.
-var loadingTask = PDFJS.getDocument(pdfPath);
+var loadingTask = pdfjsLib.getDocument(pdfPath);
 loadingTask.promise.then(function (pdfDocument) {
   // Request a first page
   return pdfDocument.getPage(1).then(function (pdfPage) {
diff --git a/src/display/api.js b/src/display/api.js
index 0bb61fc..17b280d 100644
--- a/src/display/api.js
+++ b/src/display/api.js
@@ -12,7 +12,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-/* globals pdfjsFilePath */
+/* globals pdfjsFilePath, pdfjsVersion, pdfjsBuild */
 
 'use strict';
 
@@ -2051,6 +2051,13 @@ var _UnsupportedManager = (function UnsupportedManagerClosure() {
   };
 })();
 
+if (typeof pdfjsVersion !== 'undefined') {
+  exports.version = pdfjsVersion;
+}
+if (typeof pdfjsBuild !== 'undefined') {
+  exports.build = pdfjsBuild;
+}
+
 exports.getDocument = getDocument;
 exports.PDFDataRangeTransport = PDFDataRangeTransport;
 exports.PDFWorker = PDFWorker;
diff --git a/src/main_loader.js b/src/main_loader.js
index e9afea7..e6dc492 100644
--- a/src/main_loader.js
+++ b/src/main_loader.js
@@ -40,9 +40,11 @@
 
   // Sync the exports below with ./pdf.js file/template.
   exports.PDFJS = displayGlobal.PDFJS;
-
+  exports.build = displayAPI.build;
+  exports.version = displayAPI.version;
   exports.getDocument = displayAPI.getDocument;
   exports.PDFDataRangeTransport = displayAPI.PDFDataRangeTransport;
+  exports.PDFWorker = displayAPI.PDFWorker;
   exports.renderTextLayer = displayTextLayer.renderTextLayer;
   exports.AnnotationLayer = displayAnnotationLayer.AnnotationLayer;
   exports.CustomStyle = displayDOMUtils.CustomStyle;
@@ -51,4 +53,14 @@
   exports.MissingPDFException = sharedUtil.MissingPDFException;
   exports.SVGGraphics = displaySVG.SVGGraphics;
   exports.UnexpectedResponseException = sharedUtil.UnexpectedResponseException;
+  exports.OPS = sharedUtil.OPS;
+  exports.UNSUPPORTED_FEATURES = sharedUtil.UNSUPPORTED_FEATURES;
+  exports.isValidUrl = sharedUtil.isValidUrl;
+  exports.createObjectURL = sharedUtil.createObjectURL;
+  exports.removeNullCharacters = sharedUtil.removeNullCharacters;
+  exports.shadow = sharedUtil.shadow;
+  exports.createBlob = sharedUtil.createBlob;
+  exports.getFilenameFromUrl = displayDOMUtils.getFilenameFromUrl;
+  exports.addLinkAttributes = displayDOMUtils.addLinkAttributes;
+
 }));
diff --git a/src/pdf.js b/src/pdf.js
index 4c0087d..61dea39 100644
--- a/src/pdf.js
+++ b/src/pdf.js
@@ -45,9 +45,12 @@
 
 //#if MAIN_FILE
   exports.PDFJS = pdfjsLibs.pdfjsDisplayGlobal.PDFJS;
+  exports.build = pdfjsLibs.pdfjsDisplayAPI.build;
+  exports.version = pdfjsLibs.pdfjsDisplayAPI.version;
   exports.getDocument = pdfjsLibs.pdfjsDisplayAPI.getDocument;
   exports.PDFDataRangeTransport =
     pdfjsLibs.pdfjsDisplayAPI.PDFDataRangeTransport;
+  exports.PDFWorker = pdfjsLibs.pdfjsDisplayAPI.PDFWorker;
   exports.renderTextLayer = pdfjsLibs.pdfjsDisplayTextLayer.renderTextLayer;
   exports.AnnotationLayer =
     pdfjsLibs.pdfjsDisplayAnnotationLayer.AnnotationLayer;
@@ -58,6 +61,16 @@
   exports.SVGGraphics = pdfjsLibs.pdfjsDisplaySVG.SVGGraphics;
   exports.UnexpectedResponseException =
     pdfjsLibs.pdfjsSharedUtil.UnexpectedResponseException;
+  exports.OPS = pdfjsLibs.pdfjsSharedUtil.OPS;
+  exports.UNSUPPORTED_FEATURES = pdfjsLibs.pdfjsSharedUtil.UNSUPPORTED_FEATURES;
+  exports.isValidUrl = pdfjsLibs.pdfjsSharedUtil.isValidUrl;
+  exports.createObjectURL = pdfjsLibs.pdfjsSharedUtil.createObjectURL;
+  exports.removeNullCharacters = pdfjsLibs.pdfjsSharedUtil.removeNullCharacters;
+  exports.shadow = pdfjsLibs.pdfjsSharedUtil.shadow;
+  exports.createBlob = pdfjsLibs.pdfjsSharedUtil.createBlob;
+  exports.getFilenameFromUrl =
+    pdfjsLibs.pdfjsDisplayDOMUtils.getFilenameFromUrl;
+  exports.addLinkAttributes = pdfjsLibs.pdfjsDisplayDOMUtils.addLinkAttributes;
 //#else
   exports.WorkerMessageHandler = pdfjsLibs.pdfjsCoreWorker.WorkerMessageHandler;
 //#endif
diff --git a/web/annotation_layer_builder.js b/web/annotation_layer_builder.js
index 6d985b8..d2bf28b 100644
--- a/web/annotation_layer_builder.js
+++ b/web/annotation_layer_builder.js
@@ -12,7 +12,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-/*globals PDFJS, mozL10n, SimpleLinkService */
+/*globals pdfjsLib, mozL10n, SimpleLinkService */
 
 'use strict';
 
@@ -68,7 +68,7 @@ var AnnotationLayerBuilder = (function AnnotationLayerBuilderClosure() {
         if (self.div) {
           // If an annotationLayer already exists, refresh its children's
           // transformation matrices.
-          PDFJS.AnnotationLayer.update(parameters);
+          pdfjsLib.AnnotationLayer.update(parameters);
         } else {
           // Create an annotation layer div and render the annotations
           // if there is at least one annotation.
@@ -81,7 +81,7 @@ var AnnotationLayerBuilder = (function AnnotationLayerBuilderClosure() {
           self.pageDiv.appendChild(self.div);
           parameters.div = self.div;
 
-          PDFJS.AnnotationLayer.render(parameters);
+          pdfjsLib.AnnotationLayer.render(parameters);
           if (typeof mozL10n !== 'undefined') {
             mozL10n.translate(self.div);
           }
diff --git a/web/app.js b/web/app.js
index 0f65a88..a6c027a 100644
--- a/web/app.js
+++ b/web/app.js
@@ -12,7 +12,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-/* globals PDFJS, PDFBug, FirefoxCom, Stats, ProgressBar, DownloadManager,
+/* globals pdfjsLib, PDFBug, FirefoxCom, Stats, ProgressBar, DownloadManager,
            getPDFFileNameFromURL, PDFHistory, Preferences, SidebarView,
            ViewHistory, Stats, PDFThumbnailViewer, URL, noContextMenuHandler,
            SecondaryToolbar, PasswordPrompt, PDFPresentationMode, PDFSidebar,
@@ -20,8 +20,7 @@
            PDFOutlineViewer, PDFAttachmentViewer, OverlayManager,
            PDFFindController, PDFFindBar, PDFViewer, PDFRenderingQueue,
            PresentationModeState, parseQueryString, RenderingStates,
-           UNKNOWN_SCALE, DEFAULT_SCALE_VALUE, DEFAULT_URL, mozL10n,
-           IGNORE_CURRENT_POSITION_ON_ZOOM: true */
+           UNKNOWN_SCALE, DEFAULT_SCALE_VALUE, DEFAULT_URL, mozL10n */
 
 'use strict';
 
@@ -108,7 +107,7 @@ var PDFViewerApplication = {
 
   // called once when the document is loaded
   initialize: function pdfViewInitialize() {
-    configure(PDFJS);
+    configure(pdfjsLib.PDFJS);
 
     var pdfRenderingQueue = new PDFRenderingQueue();
     pdfRenderingQueue.onIdle = this.cleanup.bind(this);
@@ -263,6 +262,7 @@ var PDFViewerApplication = {
     this.pdfSidebar.onToggled = this.forceRendering.bind(this);
 
     var self = this;
+    var PDFJS = pdfjsLib.PDFJS;
     var initializedPromise = Promise.all([
       Preferences.get('enableWebGL').then(function resolved(value) {
         PDFJS.disableWebGL = !value;
@@ -369,7 +369,7 @@ var PDFViewerApplication = {
     var canvas = document.createElement('canvas');
     var value = 'mozPrintCallback' in canvas;
 
-    return PDFJS.shadow(this, 'supportsPrinting', value);
+    return pdfjsLib.shadow(this, 'supportsPrinting', value);
   },
 
   get supportsFullscreen() {
@@ -383,11 +383,11 @@ var PDFViewerApplication = {
         document.msFullscreenEnabled === false) {
       support = false;
     }
-    if (support && PDFJS.disableFullscreen === true) {
+    if (support && pdfjsLib.PDFJS.disableFullscreen === true) {
       support = false;
     }
 
-    return PDFJS.shadow(this, 'supportsFullscreen', support);
+    return pdfjsLib.shadow(this, 'supportsFullscreen', support);
   },
 
   get supportsIntegratedFind() {
@@ -396,7 +396,7 @@ var PDFViewerApplication = {
 //  support = FirefoxCom.requestSync('supportsIntegratedFind');
 //#endif
 
-    return PDFJS.shadow(this, 'supportsIntegratedFind', support);
+    return pdfjsLib.shadow(this, 'supportsIntegratedFind', support);
   },
 
   get supportsDocumentFonts() {
@@ -405,7 +405,7 @@ var PDFViewerApplication = {
 //  support = FirefoxCom.requestSync('supportsDocumentFonts');
 //#endif
 
-    return PDFJS.shadow(this, 'supportsDocumentFonts', support);
+    return pdfjsLib.shadow(this, 'supportsDocumentFonts', support);
   },
 
   get supportsDocumentColors() {
@@ -414,13 +414,13 @@ var PDFViewerApplication = {
 //  support = FirefoxCom.requestSync('supportsDocumentColors');
 //#endif
 
-    return PDFJS.shadow(this, 'supportsDocumentColors', support);
+    return pdfjsLib.shadow(this, 'supportsDocumentColors', support);
   },
 
   get loadingBar() {
     var bar = new ProgressBar('#loadingBar', {});
 
-    return PDFJS.shadow(this, 'loadingBar', bar);
+    return pdfjsLib.shadow(this, 'loadingBar', bar);
   },
 
   get supportedMouseWheelZoomModifierKeys() {
@@ -432,16 +432,17 @@ var PDFViewerApplication = {
 //  support = FirefoxCom.requestSync('supportedMouseWheelZoomModifierKeys');
 //#endif
 
-    return PDFJS.shadow(this, 'supportedMouseWheelZoomModifierKeys', support);
+    return pdfjsLib.shadow(this, 'supportedMouseWheelZoomModifierKeys',
+                           support);
   },
 
 //#if (FIREFOX || MOZCENTRAL)
   initPassiveLoading: function pdfViewInitPassiveLoading() {
     function FirefoxComDataRangeTransport(length, initialData) {
-      PDFJS.PDFDataRangeTransport.call(this, length, initialData);
+      pdfjsLib.PDFDataRangeTransport.call(this, length, initialData);
     }
     FirefoxComDataRangeTransport.prototype =
-      Object.create(PDFJS.PDFDataRangeTransport.prototype);
+      Object.create(pdfjsLib.PDFDataRangeTransport.prototype);
     FirefoxComDataRangeTransport.prototype.requestDataRange =
         function FirefoxComDataRangeTransport_requestDataRange(begin, end) {
       FirefoxCom.request('requestDataRange', { begin: begin, end: end });
@@ -507,7 +508,8 @@ var PDFViewerApplication = {
   setTitleUsingUrl: function pdfViewSetTitleUsingUrl(url) {
     this.url = url;
     try {
-      this.setTitle(decodeURIComponent(PDFJS.getFilenameFromUrl(url)) || url);
+      this.setTitle(decodeURIComponent(
+        pdfjsLib.getFilenameFromUrl(url)) || url);
     } catch (e) {
       // decodeURIComponent may throw URIError,
       // fall back to using the unprocessed url in that case
@@ -618,7 +620,7 @@ var PDFViewerApplication = {
     var self = this;
     self.downloadComplete = false;
 
-    var loadingTask = PDFJS.getDocument(parameters);
+    var loadingTask = pdfjsLib.getDocument(parameters);
     this.pdfLoadingTask = loadingTask;
 
     loadingTask.onPassword = function passwordNeeded(updatePassword, reason) {
@@ -643,15 +645,15 @@ var PDFViewerApplication = {
         var loadingErrorMessage = mozL10n.get('loading_error', null,
           'An error occurred while loading the PDF.');
 
-        if (exception instanceof PDFJS.InvalidPDFException) {
+        if (exception instanceof pdfjsLib.InvalidPDFException) {
           // change error message also for other builds
           loadingErrorMessage = mozL10n.get('invalid_file_error', null,
                                             'Invalid or corrupted PDF file.');
-        } else if (exception instanceof PDFJS.MissingPDFException) {
+        } else if (exception instanceof pdfjsLib.MissingPDFException) {
           // special message for missing PDF's
           loadingErrorMessage = mozL10n.get('missing_file_error', null,
                                             'Missing PDF file.');
-        } else if (exception instanceof PDFJS.UnexpectedResponseException) {
+        } else if (exception instanceof pdfjsLib.UnexpectedResponseException) {
           loadingErrorMessage = mozL10n.get('unexpected_response_error', null,
                                             'Unexpected server response.');
         }
@@ -697,7 +699,7 @@ var PDFViewerApplication = {
 
     this.pdfDocument.getData().then(
       function getDataSuccess(data) {
-        var blob = PDFJS.createBlob(data, 'application/pdf');
+        var blob = pdfjsLib.createBlob(data, 'application/pdf');
         downloadManager.download(blob, url, filename);
       },
       downloadByUrl // Error occurred try downloading with just the url.
@@ -737,7 +739,7 @@ var PDFViewerApplication = {
    */
   error: function pdfViewError(message, moreInfo) {
     var moreInfoText = mozL10n.get('error_version_info',
-      {version: PDFJS.version || '?', build: PDFJS.build || '?'},
+      {version: pdfjsLib.version || '?', build: pdfjsLib.build || '?'},
       'PDF.js v{{version}} (build: {{build}})') + '\n';
     if (moreInfo) {
       moreInfoText +=
@@ -813,7 +815,7 @@ var PDFViewerApplication = {
       // the loading bar will not be completely filled, nor will it be hidden.
       // To prevent displaying a partially filled loading bar permanently, we
       // hide it when no data has been loaded during a certain amount of time.
-      if (PDFJS.disableAutoFetch && percent) {
+      if (pdfjsLib.PDFJS.disableAutoFetch && percent) {
         if (this.disableAutoFetchLoadingBarTimeout) {
           clearTimeout(this.disableAutoFetchLoadingBarTimeout);
           this.disableAutoFetchLoadingBarTimeout = null;
@@ -881,7 +883,7 @@ var PDFViewerApplication = {
 
       self.loadingBar.setWidth(document.getElementById('viewer'));
 
-      if (!PDFJS.disableHistory && !self.isViewerEmbedded) {
+      if (!pdfjsLib.PDFJS.disableHistory && !self.isViewerEmbedded) {
         // The browsing history is only enabled when the viewer is standalone,
         // i.e. not when it is embedded in a web page.
         if (!self.preferenceShowPreviousViewOnLoad) {
@@ -954,7 +956,7 @@ var PDFViewerApplication = {
         pdfDocument.getJavaScript().then(function(javaScript) {
           if (javaScript.length) {
             console.warn('Warning: JavaScript is not supported');
-            self.fallback(PDFJS.UNSUPPORTED_FEATURES.javaScript);
+            self.fallback(pdfjsLib.UNSUPPORTED_FEATURES.javaScript);
           }
           // Hack to support auto printing.
           var regex = /\bprint\s*\(/;
@@ -991,8 +993,8 @@ var PDFViewerApplication = {
       console.log('PDF ' + pdfDocument.fingerprint + ' [' +
                   info.PDFFormatVersion + ' ' + (info.Producer || '-').trim() +
                   ' / ' + (info.Creator || '-').trim() + ']' +
-                  ' (PDF.js: ' + (PDFJS.version || '-') +
-                  (!PDFJS.disableWebGL ? ' [WebGL]' : '') + ')');
+                  ' (PDF.js: ' + (pdfjsLib.version || '-') +
+                  (!pdfjsLib.PDFJS.disableWebGL ? ' [WebGL]' : '') + ')');
 
       var pdfTitle;
       if (metadata && metadata.has('dc:title')) {
@@ -1013,7 +1015,7 @@ var PDFViewerApplication = {
 
       if (info.IsAcroFormPresent) {
         console.warn('Warning: AcroForm/XFA is not supported');
-        self.fallback(PDFJS.UNSUPPORTED_FEATURES.forms);
+        self.fallback(pdfjsLib.UNSUPPORTED_FEATURES.forms);
       }
 
 //#if !PRODUCTION
@@ -1296,9 +1298,7 @@ function webViewerInitialized() {
 //document.getElementById('secondaryOpenFile').setAttribute('hidden', 'true');
 //#endif
 
-//#if !(FIREFOX || MOZCENTRAL)
-  var locale = PDFJS.locale || navigator.language;
-//#endif
+  var PDFJS = pdfjsLib.PDFJS;
 
 //#if !PRODUCTION
   if (true) {
@@ -1337,7 +1337,7 @@ function webViewerInitialized() {
       PDFJS.verbosity = hashParams['verbosity'] | 0;
     }
     if ('ignorecurrentpositiononzoom' in hashParams) {
-      IGNORE_CURRENT_POSITION_ON_ZOOM =
+      PDFJS.ignoreCurrentPositionOnZoom =
         (hashParams['ignorecurrentpositiononzoom'] === 'true');
     }
 //#if !PRODUCTION
@@ -1348,7 +1348,7 @@ function webViewerInitialized() {
 //#endif
 //#if !(FIREFOX || MOZCENTRAL)
     if ('locale' in hashParams) {
-      locale = hashParams['locale'];
+      PDFJS.locale = hashParams['locale'];
     }
 //#endif
     if ('textlayer' in hashParams) {
@@ -1374,7 +1374,7 @@ function webViewerInitialized() {
   }
 
 //#if !(FIREFOX || MOZCENTRAL)
-  mozL10n.setLanguage(locale);
+  mozL10n.setLanguage(PDFJS.locale);
 //#endif
 //#if (FIREFOX || MOZCENTRAL)
   if (!PDFViewerApplication.supportsDocumentFonts) {
@@ -1518,7 +1518,7 @@ document.addEventListener('pagerendered', function (e) {
     thumbnailView.setImage(pageView);
   }
 
-  if (PDFJS.pdfBug && Stats.enabled && pageView.stats) {
+  if (pdfjsLib.PDFJS.pdfBug && Stats.enabled && pageView.stats) {
     Stats.add(pageNumber, pageView.stats);
   }
 
@@ -1711,7 +1711,7 @@ window.addEventListener('change', function webViewerChange(evt) {
   }
   var file = files[0];
 
-  if (!PDFJS.disableCreateObjectURL &&
+  if (!pdfjsLib.PDFJS.disableCreateObjectURL &&
       typeof URL !== 'undefined' && URL.createObjectURL) {
     PDFViewerApplication.open(URL.createObjectURL(file));
   } else {
@@ -1815,7 +1815,7 @@ window.addEventListener('pagechange', function pagechange(evt) {
   document.getElementById('lastPage').disabled = (page >= numPages);
 
   // we need to update stats
-  if (PDFJS.pdfBug && Stats.enabled) {
+  if (pdfjsLib.PDFJS.pdfBug && Stats.enabled) {
     var pageView = PDFViewerApplication.pdfViewer.getPageView(page - 1);
     if (pageView.stats) {
       Stats.add(page, pageView.stats);
diff --git a/web/chromecom.js b/web/chromecom.js
index 8d40140..f9848f0 100644
--- a/web/chromecom.js
+++ b/web/chromecom.js
@@ -13,7 +13,7 @@
  * limitations under the License.
  */
 
-/* globals chrome, PDFJS, PDFViewerApplication, OverlayManager */
+/* globals chrome, pdfjsLib, PDFViewerApplication, OverlayManager */
 'use strict';
 
 var ChromeCom = (function ChromeComClosure() {
@@ -81,7 +81,7 @@ var ChromeCom = (function ChromeComClosure() {
           return;
         }
       }
-      if (/^filesystem:/.test(file) && !PDFJS.disableWorker) {
+      if (/^filesystem:/.test(file) && !pdfjsLib.PDFJS.disableWorker) {
         // The security origin of filesystem:-URLs are not preserved when the
         // URL is passed to a Web worker, (http://crbug.com/362061), so we have
         // to create an intermediate blob:-URL as a work-around.
diff --git a/web/debugger.js b/web/debugger.js
index 19d2916..bd3e562 100644
--- a/web/debugger.js
+++ b/web/debugger.js
@@ -12,7 +12,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-/* globals PDFJS */
+/* globals pdfjsLib */
 
 'use strict';
 
@@ -307,8 +307,8 @@ var Stepper = (function StepperClosure() {
       this.table = table;
       if (!opMap) {
         opMap = Object.create(null);
-        for (var key in PDFJS.OPS) {
-          opMap[PDFJS.OPS[key]] = key;
+        for (var key in pdfjsLib.OPS) {
+          opMap[pdfjsLib.OPS[key]] = key;
         }
       }
     },
@@ -460,7 +460,7 @@ var Stats = (function Stats() {
     manager: null,
     init: function init() {
       this.panel.setAttribute('style', 'padding: 5px;');
-      PDFJS.enableStats = true;
+      pdfjsLib.PDFJS.enableStats = true;
     },
     enabled: false,
     active: false,
diff --git a/web/download_manager.js b/web/download_manager.js
index 62564e5..dc899e7 100644
--- a/web/download_manager.js
+++ b/web/download_manager.js
@@ -12,7 +12,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-/* globals URL, PDFJS */
+/* globals URL, pdfjsLib */
 
 'use strict';
 
@@ -58,7 +58,7 @@ var DownloadManager = (function DownloadManagerClosure() {
 
   DownloadManager.prototype = {
     downloadUrl: function DownloadManager_downloadUrl(url, filename) {
-      if (!PDFJS.isValidUrl(url, true)) {
+      if (!pdfjsLib.isValidUrl(url, true)) {
         return; // restricted/invalid URL
       }
 
@@ -72,7 +72,8 @@ var DownloadManager = (function DownloadManagerClosure() {
                                     filename);
       }
 
-      var blobUrl = PDFJS.createObjectURL(data, contentType);
+      var blobUrl = pdfjsLib.createObjectURL(data, contentType,
+        pdfjsLib.PDFJS.disableCreateObjectURL);
       download(blobUrl, filename);
     },
 
diff --git a/web/firefoxcom.js b/web/firefoxcom.js
index 70c5bd1..1931f1f 100644
--- a/web/firefoxcom.js
+++ b/web/firefoxcom.js
@@ -12,7 +12,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-/* globals Preferences, PDFJS, Promise */
+/* globals Preferences, pdfjsLib, Promise */
 
 'use strict';
 
@@ -87,7 +87,7 @@ var DownloadManager = (function DownloadManagerClosure() {
 
     downloadData: function DownloadManager_downloadData(data, filename,
                                                         contentType) {
-      var blobUrl = PDFJS.createObjectURL(data, contentType);
+      var blobUrl = pdfjsLib.createObjectURL(data, contentType, false);
 
       FirefoxCom.request('download', {
         blobUrl: blobUrl,
diff --git a/web/password_prompt.js b/web/password_prompt.js
index d2d1e20..4ca9474 100644
--- a/web/password_prompt.js
+++ b/web/password_prompt.js
@@ -12,7 +12,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-/* globals PDFJS, mozL10n, OverlayManager */
+/* globals pdfjsLib, mozL10n, OverlayManager */
 
 'use strict';
 
@@ -55,7 +55,7 @@ var PasswordPrompt = {
       var promptString = mozL10n.get('password_label', null,
         'Enter the password to open this PDF file.');
 
-      if (this.reason === PDFJS.PasswordResponses.INCORRECT_PASSWORD) {
+      if (this.reason === pdfjsLib.PasswordResponses.INCORRECT_PASSWORD) {
         promptString = mozL10n.get('password_invalid', null,
           'Invalid password. Please try again.');
       }
diff --git a/web/pdf_attachment_viewer.js b/web/pdf_attachment_viewer.js
index e5a1d54..68c90d8 100644
--- a/web/pdf_attachment_viewer.js
+++ b/web/pdf_attachment_viewer.js
@@ -12,7 +12,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-/* globals PDFJS */
+/* globals pdfjsLib */
 
 'use strict';
 
@@ -98,12 +98,12 @@ var PDFAttachmentViewer = (function PDFAttachmentViewerClosure() {
 
       for (var i = 0; i < attachmentsCount; i++) {
         var item = attachments[names[i]];
-        var filename = PDFJS.getFilenameFromUrl(item.filename);
+        var filename = pdfjsLib.getFilenameFromUrl(item.filename);
         var div = document.createElement('div');
         div.className = 'attachmentsItem';
         var button = document.createElement('button');
         this._bindLink(button, item.content, filename);
-        button.textContent = PDFJS.removeNullCharacters(filename);
+        button.textContent = pdfjsLib.removeNullCharacters(filename);
         div.appendChild(button);
         this.container.appendChild(div);
       }
diff --git a/web/pdf_find_controller.js b/web/pdf_find_controller.js
index 407cc16..89fae75 100644
--- a/web/pdf_find_controller.js
+++ b/web/pdf_find_controller.js
@@ -12,7 +12,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-/* globals PDFJS, FirefoxCom, Promise, scrollIntoView */
+/* globals FirefoxCom, Promise, scrollIntoView */
 
 'use strict';
 
diff --git a/web/pdf_outline_viewer.js b/web/pdf_outline_viewer.js
index d778f7e..235380c 100644
--- a/web/pdf_outline_viewer.js
+++ b/web/pdf_outline_viewer.js
@@ -12,7 +12,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-/* globals PDFJS */
+/* globals pdfjsLib */
 
 'use strict';
 
@@ -71,7 +71,7 @@ var PDFOutlineViewer = (function PDFOutlineViewerClosure() {
      */
     _bindLink: function PDFOutlineViewer_bindLink(element, item) {
       if (item.url) {
-        PDFJS.addLinkAttributes(element, { url: item.url });
+        pdfjsLib.addLinkAttributes(element, { url: item.url });
         return;
       }
       var linkService = this.linkService;
@@ -180,7 +180,7 @@ var PDFOutlineViewer = (function PDFOutlineViewerClosure() {
           this._bindLink(element, item);
           this._setStyles(element, item);
           element.textContent =
-            PDFJS.removeNullCharacters(item.title) || DEFAULT_TITLE;
+            pdfjsLib.removeNullCharacters(item.title) || DEFAULT_TITLE;
 
           div.appendChild(element);
 
diff --git a/web/pdf_page_view.js b/web/pdf_page_view.js
index a7cfe56..81e1c1b 100644
--- a/web/pdf_page_view.js
+++ b/web/pdf_page_view.js
@@ -12,7 +12,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-/* globals RenderingStates, PDFJS, DEFAULT_SCALE, CSS_UNITS, getOutputScale,
+/* globals RenderingStates, pdfjsLib, DEFAULT_SCALE, CSS_UNITS, getOutputScale,
            TextLayerBuilder, Promise, approximateFraction, roundToDivide */
 
 'use strict';
@@ -162,19 +162,18 @@ var PDFPageView = (function PDFPageViewClosure() {
       });
 
       var isScalingRestricted = false;
-      if (this.canvas && PDFJS.maxCanvasPixels > 0) {
+      if (this.canvas && pdfjsLib.PDFJS.maxCanvasPixels > 0) {
         var outputScale = this.outputScale;
         var pixelsInViewport = this.viewport.width * this.viewport.height;
-        var maxScale = Math.sqrt(PDFJS.maxCanvasPixels / pixelsInViewport);
         if (((Math.floor(this.viewport.width) * outputScale.sx) | 0) *
             ((Math.floor(this.viewport.height) * outputScale.sy) | 0) >
-            PDFJS.maxCanvasPixels) {
+            pdfjsLib.PDFJS.maxCanvasPixels) {
           isScalingRestricted = true;
         }
       }
 
       if (this.canvas) {
-        if (PDFJS.useOnlyCssZoom ||
+        if (pdfjsLib.PDFJS.useOnlyCssZoom ||
             (this.hasRestrictedScaling && isScalingRestricted)) {
           this.cssTransform(this.canvas, true);
 
@@ -208,7 +207,7 @@ var PDFPageView = (function PDFPageViewClosure() {
     },
 
     cssTransform: function PDFPageView_transform(canvas, redrawAnnotations) {
-      var CustomStyle = PDFJS.CustomStyle;
+      var CustomStyle = pdfjsLib.CustomStyle;
 
       // Scale canvas, canvas wrapper, and page container.
       var width = this.viewport.width;
@@ -330,7 +329,7 @@ var PDFPageView = (function PDFPageViewClosure() {
       var outputScale = getOutputScale(ctx);
       this.outputScale = outputScale;
 
-      if (PDFJS.useOnlyCssZoom) {
+      if (pdfjsLib.PDFJS.useOnlyCssZoom) {
         var actualSizeViewport = viewport.clone({scale: CSS_UNITS});
         // Use a scale that will make the canvas be the original intended size
         // of the page.
@@ -339,9 +338,10 @@ var PDFPageView = (function PDFPageViewClosure() {
         outputScale.scaled = true;
       }
 
-      if (PDFJS.maxCanvasPixels > 0) {
+      if (pdfjsLib.PDFJS.maxCanvasPixels > 0) {
         var pixelsInViewport = viewport.width * viewport.height;
-        var maxScale = Math.sqrt(PDFJS.maxCanvasPixels / pixelsInViewport);
+        var maxScale =
+          Math.sqrt(pdfjsLib.PDFJS.maxCanvasPixels / pixelsInViewport);
         if (outputScale.sx > maxScale || outputScale.sy > maxScale) {
           outputScale.sx = maxScale;
           outputScale.sy = maxScale;
@@ -517,7 +517,7 @@ var PDFPageView = (function PDFPageViewClosure() {
     },
 
     beforePrint: function PDFPageView_beforePrint() {
-      var CustomStyle = PDFJS.CustomStyle;
+      var CustomStyle = pdfjsLib.CustomStyle;
       var pdfPage = this.pdfPage;
 
       var viewport = pdfPage.getViewport(1);
diff --git a/web/pdf_viewer.component.js b/web/pdf_viewer.component.js
index 22af0e5..596362c 100644
--- a/web/pdf_viewer.component.js
+++ b/web/pdf_viewer.component.js
@@ -17,14 +17,21 @@
            DefaultTextLayerFactory, AnnotationLayerBuilder, PDFHistory,
            DefaultAnnotationLayerFactory, DownloadManager, ProgressBar */
 
-// Initializing PDFJS global object (if still undefined)
-if (typeof PDFJS === 'undefined') {
-  (typeof window !== 'undefined' ? window : this).PDFJS = {};
-}
-
 (function pdfViewerWrapper() {
   'use strict';
 
+  var root = this;
+  if (!root.pdfjsLib) {
+    Object.defineProperty(root, 'pdfjsLib', {
+      get: function () {
+        return root.pdfjsDistBuildPdf || root.pdfjsDistBuildPdfCombined ||
+               root.pdfjsMainLoader;
+      },
+      enumerable: true,
+      configurable: true
+    });
+  }
+
 //#include ui_utils.js
 //#include pdf_link_service.js
 //#include pdf_viewer.js
diff --git a/web/pdf_viewer.js b/web/pdf_viewer.js
index baf2855..766d88c 100644
--- a/web/pdf_viewer.js
+++ b/web/pdf_viewer.js
@@ -15,7 +15,7 @@
  /*globals watchScroll, PDFPageView, UNKNOWN_SCALE,
            SCROLLBAR_PADDING, VERTICAL_PADDING, MAX_AUTO_SCALE, CSS_UNITS,
            DEFAULT_SCALE, scrollIntoView, getVisibleElements, RenderingStates,
-           PDFJS, Promise, TextLayerBuilder, PDFRenderingQueue,
+           pdfjsLib, Promise, TextLayerBuilder, PDFRenderingQueue,
            AnnotationLayerBuilder, DEFAULT_SCALE_VALUE */
 
 'use strict';
@@ -27,7 +27,6 @@ var PresentationModeState = {
   FULLSCREEN: 3,
 };
 
-var IGNORE_CURRENT_POSITION_ON_ZOOM = false;
 var DEFAULT_CACHE_SIZE = 10;
 
 //#include pdf_rendering_queue.js
@@ -287,7 +286,7 @@ var PDFViewer = (function pdfViewer() {
         var viewport = pdfPage.getViewport(scale * CSS_UNITS);
         for (var pageNum = 1; pageNum <= pagesCount; ++pageNum) {
           var textLayerFactory = null;
-          if (!PDFJS.disableTextLayer) {
+          if (!pdfjsLib.PDFJS.disableTextLayer) {
             textLayerFactory = this;
           }
           var pageView = new PDFPageView({
@@ -309,7 +308,7 @@ var PDFViewer = (function pdfViewer() {
         // starts to create the correct size canvas. Wait until one page is
         // rendered so we don't tie up too many resources early on.
         onePageRendered.then(function () {
-          if (!PDFJS.disableAutoFetch) {
+          if (!pdfjsLib.PDFJS.disableAutoFetch) {
             var getPagesLeft = pagesCount;
             for (var pageNum = 1; pageNum <= pagesCount; ++pageNum) {
               pdfDocument.getPage(pageNum).then(function (pageNum, pdfPage) {
@@ -399,7 +398,7 @@ var PDFViewer = (function pdfViewer() {
 
       if (!noScroll) {
         var page = this._currentPageNumber, dest;
-        if (this._location && !IGNORE_CURRENT_POSITION_ON_ZOOM &&
+        if (this._location && !pdfjsLib.PDFJS.ignoreCurrentPositionOnZoom &&
             !(this.isInPresentationMode || this.isChangingPresentationMode)) {
           page = this._location.pageNumber;
           dest = [null, { name: 'XYZ' }, this._location.left,
diff --git a/web/text_layer_builder.js b/web/text_layer_builder.js
index 6ef8736..e246fa9 100644
--- a/web/text_layer_builder.js
+++ b/web/text_layer_builder.js
@@ -12,7 +12,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-/* globals PDFJS */
+/* globals pdfjsLib */
 
 'use strict';
 
@@ -78,7 +78,7 @@ var TextLayerBuilder = (function TextLayerBuilderClosure() {
 
       this.textDivs = [];
       var textLayerFrag = document.createDocumentFragment();
-      this.textLayerRenderTask = PDFJS.renderTextLayer({
+      this.textLayerRenderTask = pdfjsLib.renderTextLayer({
         textContent: this.textContent,
         container: textLayerFrag,
         viewport: this.viewport,
diff --git a/web/ui_utils.js b/web/ui_utils.js
index 1a031eb..0f54adc 100644
--- a/web/ui_utils.js
+++ b/web/ui_utils.js
@@ -27,7 +27,7 @@ var VERTICAL_PADDING = 5;
 var mozL10n = document.mozL10n || document.webL10n;
 
 if (typeof PDFJS === 'undefined') {
-  window.PDFJS = {};
+  (typeof window !== 'undefined' ? window : this).PDFJS = {};
 }
 
 /**
@@ -54,6 +54,34 @@ PDFJS.maxCanvasPixels = (PDFJS.maxCanvasPixels === undefined ?
                          16777216 : PDFJS.maxCanvasPixels);
 
 /**
+ * Disables saving of the last position of the viewed PDF.
+ * @var {boolean}
+ */
+PDFJS.disableHistory = (PDFJS.disableHistory === undefined ?
+                        false : PDFJS.disableHistory);
+
+/**
+ * Disables creation of the text layer that used for text selection and search.
+ * @var {boolean}
+ */
+PDFJS.disableTextLayer = (PDFJS.disableTextLayer === undefined ?
+                          false : PDFJS.disableTextLayer);
+
+/**
+ * Disables maintaining the current position in the document when zooming.
+ */
+PDFJS.ignoreCurrentPositionOnZoom = (PDFJS.ignoreCurrentPositionOnZoom ===
+  undefined ? false : PDFJS.ignoreCurrentPositionOnZoom);
+
+//#if !(FIREFOX || MOZCENTRAL)
+/**
+ * Interface locale settings.
+ * @var {string}
+ */
+PDFJS.locale = (PDFJS.locale === undefined ? navigator.language : PDFJS.locale);
+//#endif
+
+/**
  * Returns scale factor for the canvas. It makes sense for the HiDPI displays.
  * @return {Object} The object with horizontal (sx) and vertical (sy)
                     scales. The scaled property is set to false if scaling is
diff --git a/web/viewer.js b/web/viewer.js
index 9709d35..20b6371 100644
--- a/web/viewer.js
+++ b/web/viewer.js
@@ -41,9 +41,11 @@ function webViewerLoad() {
 //#if !PRODUCTION
   require.config({paths: {'pdfjs': '../src'}});
   require(['pdfjs/main_loader'], function (loader) {
+    window.pdfjsLib = loader;
     PDFViewerApplication.run();
   });
 //#else
+//window.pdfjsLib = window.pdfjsDistBuildPdf;
 //PDFViewerApplication.run();
 //#endif
 }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/pdf.js.git



More information about the Pkg-javascript-commits mailing list