[Pkg-javascript-commits] [pdf.js] 115/204: Removes any usage of PDFView in the PageView

David Prévot taffit at moszumanska.debian.org
Sat Oct 25 18:50:40 UTC 2014


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

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

commit f1851c6393a233b0ad9019fa2dd8f76557b4a89b
Author: Yury Delendik <ydelendik at mozilla.com>
Date:   Mon Sep 15 14:57:12 2014 -0500

    Removes any usage of PDFView in the PageView
---
 web/page_view.js  | 51 +++++++++------------------------------------------
 web/pdf_viewer.js | 22 +++++++++++++++++++++-
 web/viewer.js     | 36 +++++++++++++++++++++++++++++++-----
 3 files changed, 61 insertions(+), 48 deletions(-)

diff --git a/web/page_view.js b/web/page_view.js
index 583cba5..86572cb 100644
--- a/web/page_view.js
+++ b/web/page_view.js
@@ -14,10 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-/* globals RenderingStates, PDFView, PDFJS, mozL10n, CustomStyle,
+/* globals RenderingStates, PDFJS, mozL10n, CustomStyle,
            SCROLLBAR_PADDING, CSS_UNITS, UNKNOWN_SCALE, DEFAULT_SCALE,
-           getOutputScale, TextLayerBuilder, scrollIntoView, Stats,
-           PresentationModeState */
+           getOutputScale, scrollIntoView, Stats, PresentationModeState */
 
 'use strict';
 
@@ -509,6 +508,7 @@ var PageView = function pageView(container, id, scale, defaultViewport,
     canvas._viewport = viewport;
 
     var textLayerDiv = null;
+    var textLayer = null;
     if (!PDFJS.disableTextLayer) {
       textLayerDiv = document.createElement('div');
       textLayerDiv.className = 'textLayer';
@@ -520,18 +520,12 @@ var PageView = function pageView(container, id, scale, defaultViewport,
       } else {
         div.appendChild(textLayerDiv);
       }
+
+      textLayer = this.viewer.createTextLayerBuilder(textLayerDiv, this.id - 1,
+                                                     this.viewport);
     }
-    var isViewerInPresentationMode =
-      this.viewer.presentationModeState === PresentationModeState.FULLSCREEN;
-    var textLayer = this.textLayer =
-      textLayerDiv ? new TextLayerBuilder({
-        textLayerDiv: textLayerDiv,
-        pageIndex: this.id - 1,
-        lastScrollSource: this.linkService,
-        viewport: this.viewport,
-        isViewerInPresentationMode: isViewerInPresentationMode,
-        findController: PDFView.findController
-      }) : null;
+    this.textLayer = textLayer;
+
     // TODO(mack): use data attributes to store these
     ctx._scaleX = outputScale.sx;
     ctx._scaleY = outputScale.sy;
@@ -566,22 +560,7 @@ var PageView = function pageView(container, id, scale, defaultViewport,
         self.zoomLayer = null;
       }
 
-//#if (FIREFOX || MOZCENTRAL)
-//    if (self.textLayer && self.textLayer.textDivs &&
-//        self.textLayer.textDivs.length > 0 &&
-//        !PDFView.supportsDocumentColors) {
-//      console.error(mozL10n.get('document_colors_disabled', null,
-//        'PDF documents are not allowed to use their own colors: ' +
-//        '\'Allow pages to choose their own colors\' ' +
-//        'is deactivated in the browser.'));
-//      PDFView.fallback();
-//    }
-//#endif
-      if (error) {
-        PDFView.error(mozL10n.get('rendering_error', null,
-          'An error occurred while rendering the page.'), error);
-      }
-
+      self.error = error;
       self.stats = pdfPage.stats;
       self.updateStats();
       if (self.onAfterDraw) {
@@ -594,18 +573,6 @@ var PageView = function pageView(container, id, scale, defaultViewport,
       });
       div.dispatchEvent(event);
 
-//#if (FIREFOX || MOZCENTRAL)
-//    FirefoxCom.request('reportTelemetry', JSON.stringify({
-//      type: 'pageInfo'
-//    }));
-//    // It is a good time to report stream and font types
-//    PDFView.pdfDocument.getStats().then(function (stats) {
-//      FirefoxCom.request('reportTelemetry', JSON.stringify({
-//        type: 'documentStats',
-//        stats: stats
-//      }));
-//    });
-//#endif
       callback();
     }
 
diff --git a/web/pdf_viewer.js b/web/pdf_viewer.js
index 1f5ac7c..e5f49d2 100644
--- a/web/pdf_viewer.js
+++ b/web/pdf_viewer.js
@@ -17,7 +17,7 @@
  /*globals watchScroll, Cache, DEFAULT_CACHE_SIZE, PageView, UNKNOWN_SCALE,
            IGNORE_CURRENT_POSITION_ON_ZOOM, SCROLLBAR_PADDING, VERTICAL_PADDING,
            MAX_AUTO_SCALE, getVisibleElements, RenderingStates, Promise,
-           CSS_UNITS, PDFJS */
+           CSS_UNITS, PDFJS, TextLayerBuilder */
 
 'use strict';
 
@@ -36,6 +36,7 @@ var PDFViewer = (function pdfViewer() {
     this.linkService = options.linkService;
 
     this.scroll = watchScroll(this.container, this._scrollUpdate.bind(this));
+    this.lastScroll = 0;
     this.updateInProgress = false;
     this.presentationModeState = PresentationModeState.UNKNOWN;
     this.resetView();
@@ -180,6 +181,8 @@ var PDFViewer = (function pdfViewer() {
     },
 
     _scrollUpdate: function () {
+      this.lastScroll = Date.now();
+
       if (this.pagesCount === 0) {
         return;
       }
@@ -411,6 +414,23 @@ var PDFViewer = (function pdfViewer() {
         return page.getTextContent();
       });
     },
+
+    createTextLayerBuilder: function (textLayerDiv, pageIndex, viewport) {
+      var isViewerInPresentationMode =
+        this.presentationModeState === PresentationModeState.FULLSCREEN;
+      return new TextLayerBuilder({
+        textLayerDiv: textLayerDiv,
+        pageIndex: pageIndex,
+        viewport: viewport,
+        lastScrollSource: this,
+        isViewerInPresentationMode: isViewerInPresentationMode,
+        findController: this.findController
+      });
+    },
+
+    setFindController: function (findController) {
+      this.findController = findController;
+    },
   };
 
   return PDFViewer;
diff --git a/web/viewer.js b/web/viewer.js
index 00ba94f..4d01548 100644
--- a/web/viewer.js
+++ b/web/viewer.js
@@ -104,7 +104,6 @@ var PDFView = {
   pageRotation: 0,
   mouseScrollTimeStamp: 0,
   mouseScrollDelta: 0,
-  lastScroll: 0,
   isViewerEmbedded: (window.parent !== window),
   url: '',
 
@@ -138,6 +137,7 @@ var PDFView = {
       pdfViewer: this.pdfViewer,
       integratedFind: this.supportsIntegratedFind
     });
+    this.pdfViewer.setFindController(this.findController);
 
     this.findBar = new PDFFindBar({
       bar: document.getElementById('findbar'),
@@ -211,10 +211,6 @@ var PDFView = {
       pageCountField: document.getElementById('pageCountField')
     });
 
-    container.addEventListener('scroll', function() {
-      self.lastScroll = Date.now();
-    }, false);
-
     var initializedPromise = Promise.all([
       Preferences.get('enableWebGL').then(function resolved(value) {
         PDFJS.disableWebGL = !value;
@@ -1666,6 +1662,36 @@ document.addEventListener('pagerendered', function (e) {
   var pageView = PDFView.pdfViewer.getPageView(pageIndex);
   var thumbnailView = PDFView.pdfThumbnailViewer.getThumbnail(pageIndex);
   thumbnailView.setImage(pageView.canvas);
+
+//#if (FIREFOX || MOZCENTRAL)
+//if (pageView.textLayer && pageView.textLayer.textDivs &&
+//    pageView.textLayer.textDivs.length > 0 &&
+//    !PDFView.supportsDocumentColors) {
+//  console.error(mozL10n.get('document_colors_disabled', null,
+//    'PDF documents are not allowed to use their own colors: ' +
+//    '\'Allow pages to choose their own colors\' ' +
+//    'is deactivated in the browser.'));
+//  PDFView.fallback();
+//}
+//#endif
+
+  if (pageView.error) {
+    PDFView.error(mozL10n.get('rendering_error', null,
+      'An error occurred while rendering the page.'), pageView.error);
+  }
+
+//#if (FIREFOX || MOZCENTRAL)
+//FirefoxCom.request('reportTelemetry', JSON.stringify({
+//  type: 'pageInfo'
+//}));
+//// It is a good time to report stream and font types
+//PDFView.pdfDocument.getStats().then(function (stats) {
+//  FirefoxCom.request('reportTelemetry', JSON.stringify({
+//    type: 'documentStats',
+//    stats: stats
+//  }));
+//});
+//#endif
 }, true);
 
 window.addEventListener('presentationmodechanged', function (e) {

-- 
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