diff --git a/web/app.js b/web/app.js index 885edab51..169af9ff1 100644 --- a/web/app.js +++ b/web/app.js @@ -1775,6 +1775,13 @@ const PDFViewerApplication = { eventBus._on("findfromurlhash", webViewerFindFromUrlHash); eventBus._on("updatefindmatchescount", webViewerUpdateFindMatchesCount); eventBus._on("updatefindcontrolstate", webViewerUpdateFindControlState); + + if (AppOptions.get("pdfBug")) { + _boundEvents.reportPageStatsPDFBug = reportPageStatsPDFBug; + + eventBus._on("pagerendered", _boundEvents.reportPageStatsPDFBug); + eventBus._on("pagechanging", _boundEvents.reportPageStatsPDFBug); + } if (typeof PDFJSDev === "undefined" || PDFJSDev.test("GENERIC")) { eventBus._on("fileinputchange", webViewerFileInputChange); eventBus._on("openfile", webViewerOpenFile); @@ -1855,6 +1862,13 @@ const PDFViewerApplication = { eventBus._off("findfromurlhash", webViewerFindFromUrlHash); eventBus._off("updatefindmatchescount", webViewerUpdateFindMatchesCount); eventBus._off("updatefindcontrolstate", webViewerUpdateFindControlState); + + if (_boundEvents.reportPageStatsPDFBug) { + eventBus._off("pagerendered", _boundEvents.reportPageStatsPDFBug); + eventBus._off("pagechanging", _boundEvents.reportPageStatsPDFBug); + + _boundEvents.reportPageStatsPDFBug = null; + } if (typeof PDFJSDev === "undefined" || PDFJSDev.test("GENERIC")) { eventBus._off("fileinputchange", webViewerFileInputChange); eventBus._off("openfile", webViewerOpenFile); @@ -1966,6 +1980,20 @@ function loadAndEnablePDFBug(enabledTabs) { }); } +function reportPageStatsPDFBug({ pageNumber }) { + if (typeof Stats === "undefined" || !Stats.enabled) { + return; + } + const pageView = PDFViewerApplication.pdfViewer.getPageView( + /* index = */ pageNumber - 1 + ); + const pageStats = pageView && pageView.pdfPage && pageView.pdfPage.stats; + if (!pageStats) { + return; + } + Stats.add(pageNumber, pageStats); +} + function webViewerInitialized() { const appConfig = PDFViewerApplication.appConfig; let file; @@ -2150,10 +2178,6 @@ function webViewerPageRendered({ pageNumber, timestamp, error }) { thumbnailView.setImage(pageView); } - if (typeof Stats !== "undefined" && Stats.enabled && pageView.stats) { - Stats.add(pageNumber, pageView.stats); - } - if (error) { PDFViewerApplication.l10n .get( @@ -2534,14 +2558,6 @@ function webViewerPageChanging(evt) { if (PDFViewerApplication.pdfSidebar.isThumbnailViewVisible) { PDFViewerApplication.pdfThumbnailViewer.scrollThumbnailIntoView(page); } - - // We need to update stats. - if (typeof Stats !== "undefined" && Stats.enabled) { - const pageView = PDFViewerApplication.pdfViewer.getPageView(page - 1); - if (pageView && pageView.stats) { - Stats.add(page, pageView.stats); - } - } } function webViewerVisibilityChange(evt) { diff --git a/web/pdf_page_view.js b/web/pdf_page_view.js index 90f780df3..658b06b19 100644 --- a/web/pdf_page_view.js +++ b/web/pdf_page_view.js @@ -139,7 +139,6 @@ class PDFPageView { scale: this.scale * CSS_UNITS, rotation: totalRotation, }); - this.stats = pdfPage.stats; this.reset(); } @@ -524,8 +523,6 @@ class PDFPageView { } this._resetZoomLayer(/* removeFromDOM = */ true); - this.stats = pdfPage.stats; - this.eventBus.dispatch("pagerendered", { source: this, pageNumber: this.id,