@ -13,17 +13,15 @@
@@ -13,17 +13,15 @@
* limitations under the License .
* /
import { createPromiseCapability , PDFJS } from './pdfjs' ;
import {
CSS _UNITS , DEFAULT _SCALE , DEFAULT _SCALE _VALUE , getVisibleElements ,
MAX _AUTO _SCALE , RendererType , SCROLLBAR _PADDING , scrollIntoView ,
UNKNOWN _SCALE , VERTICAL _PADDING , watchScroll
} from './ui_utils' ;
import {
PDFRenderingQueue , RenderingStates ,
} from './pdf_rendering_queue' ;
import { PDFRenderingQueue , RenderingStates } from './pdf_rendering_queue' ;
import { AnnotationLayerBuilder } from './annotation_layer_builder' ;
import { domEvents } from './dom_events' ;
import { PDFJS } from './pdfjs' ;
import { PDFPageView } from './pdf_page_view' ;
import { SimpleLinkService } from './pdf_link_service' ;
import { TextLayerBuilder } from './text_layer_builder' ;
@ -313,41 +311,34 @@ var PDFViewer = (function pdfViewer() {
@@ -313,41 +311,34 @@ var PDFViewer = (function pdfViewer() {
if ( ! pdfDocument ) {
return ;
}
var pagesCount = pdfDocument . numPages ;
var self = this ;
var resolvePagesPromise ;
var pagesPromise = new Promise ( function ( resolve ) {
resolvePagesPromise = resolve ;
} ) ;
this . pagesPromise = pagesPromise ;
pagesPromise . then ( function ( ) {
self . _pageViewsReady = true ;
self . eventBus . dispatch ( 'pagesloaded' , {
source : self ,
pagesCount : pagesCount
var pagesCapability = createPromiseCapability ( ) ;
this . pagesPromise = pagesCapability . promise ;
pagesCapability . promise . then ( ( ) => {
this . _pageViewsReady = true ;
this . eventBus . dispatch ( 'pagesloaded' , {
source : this ,
pagesCount ,
} ) ;
} ) ;
var isOnePageRenderedResolved = false ;
var resolveOnePageRendered = null ;
var onePageRendered = new Promise ( function ( resolve ) {
resolveOnePageRendered = resolve ;
} ) ;
this . onePageRendered = onePageRendered ;
var onePageRenderedCapability = createPromiseCapability ( ) ;
this . onePageRendered = onePageRenderedCapability . promise ;
var bindOnAfterAndBeforeDraw = function ( pageView ) {
pageView . onBeforeDraw = function pdfViewLoadOnBeforeDraw ( ) {
var bindOnAfterAndBeforeDraw = ( pageView ) => {
pageView . onBeforeDraw = ( ) => {
// Add the page to the buffer at the start of drawing. That way it can
// be evicted from the buffer and destroyed even if we pause its
// rendering.
self . _buffer . push ( this ) ;
this . _buffer . push ( pageView ) ;
} ;
pageView . onAfterDraw = function pdfViewLoadOnAfterDraw ( ) {
pageView . onAfterDraw = ( ) => {
if ( ! isOnePageRenderedResolved ) {
isOnePageRenderedResolved = true ;
res olveO nePageRendered( ) ;
onePageRenderedCapability . resolve ( ) ;
}
} ;
} ;
@ -357,7 +348,7 @@ var PDFViewer = (function pdfViewer() {
@@ -357,7 +348,7 @@ var PDFViewer = (function pdfViewer() {
// Fetch a single page so we can get a viewport that will be the default
// viewport for all pages
return firstPagePromise . then ( function ( pdfPage ) {
return firstPagePromise . then ( ( pdfPage ) => {
var scale = this . currentScale ;
var viewport = pdfPage . getViewport ( scale * CSS _UNITS ) ;
for ( var pageNum = 1 ; pageNum <= pagesCount ; ++ pageNum ) {
@ -382,34 +373,31 @@ var PDFViewer = (function pdfViewer() {
@@ -382,34 +373,31 @@ var PDFViewer = (function pdfViewer() {
this . _pages . push ( pageView ) ;
}
var linkService = this . linkService ;
// Fetch all the pages since the viewport is needed before printing
// 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 ) {
var getPagesLeft = pagesCount ;
for ( var pageNum = 1 ; pageNum <= pagesCount ; ++ pageNum ) {
pdfDocument . getPage ( pageNum ) . then ( function ( pageNum , pdfPage ) {
var pageView = self . _pages [ pageNum - 1 ] ;
if ( ! pageView . pdfPage ) {
pageView . setPdfPage ( pdfPage ) ;
}
linkService . cachePageRef ( pageNum , pdfPage . ref ) ;
getPagesLeft -- ;
if ( ! getPagesLeft ) {
resolvePagesPromise ( ) ;
}
} . bind ( null , pageNum ) ) ;
}
} else {
onePageRenderedCapability . promise . then ( ( ) => {
if ( PDFJS . disableAutoFetch ) {
// XXX: Printing is semi-broken with auto fetch disabled.
resolvePagesPromise ( ) ;
pagesCapability . resolve ( ) ;
return ;
}
var getPagesLeft = pagesCount ;
for ( var pageNum = 1 ; pageNum <= pagesCount ; ++ pageNum ) {
pdfDocument . getPage ( pageNum ) . then ( function ( pageNum , pdfPage ) {
var pageView = this . _pages [ pageNum - 1 ] ;
if ( ! pageView . pdfPage ) {
pageView . setPdfPage ( pdfPage ) ;
}
this . linkService . cachePageRef ( pageNum , pdfPage . ref ) ;
if ( -- getPagesLeft === 0 ) {
pagesCapability . resolve ( ) ;
}
} . bind ( this , pageNum ) ) ;
}
} ) ;
self . eventBus . dispatch ( 'pagesinit' , { source : self } ) ;
this . eventBus . dispatch ( 'pagesinit' , { source : this } ) ;
if ( this . defaultRenderingQueue ) {
this . update ( ) ;
@ -418,7 +406,7 @@ var PDFViewer = (function pdfViewer() {
@@ -418,7 +406,7 @@ var PDFViewer = (function pdfViewer() {
if ( this . findController ) {
this . findController . resolveFirstPage ( ) ;
}
} . bind ( this ) ) ;
} ) ;
} ,
/ * *