Move the PDFHistory initialization into a helper method in PDFViewerApplication
				
					
				
			This avoids having the initialization code "spread out", and will become even simpler once the `TODO` is addressed (which I'm planning on fixing as soon as possible).
This commit is contained in:
		
							parent
							
								
									4d4c98d1eb
								
							
						
					
					
						commit
						9d8342002c
					
				
							
								
								
									
										61
									
								
								web/app.js
									
									
									
									
									
								
							
							
						
						
									
										61
									
								
								web/app.js
									
									
									
									
									
								
							@ -907,22 +907,6 @@ let PDFViewerApplication = {
 | 
				
			|||||||
    firstPagePromise.then((pdfPage) => {
 | 
					    firstPagePromise.then((pdfPage) => {
 | 
				
			||||||
      this.loadingBar.setWidth(this.appConfig.viewerContainer);
 | 
					      this.loadingBar.setWidth(this.appConfig.viewerContainer);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      if (!AppOptions.get('disableHistory') && !this.isViewerEmbedded) {
 | 
					 | 
				
			||||||
        // The browsing history is only enabled when the viewer is standalone,
 | 
					 | 
				
			||||||
        // i.e. not when it is embedded in a web page.
 | 
					 | 
				
			||||||
        this.pdfHistory.initialize({
 | 
					 | 
				
			||||||
          fingerprint: pdfDocument.fingerprint,
 | 
					 | 
				
			||||||
          resetHistory: AppOptions.get('viewOnLoad') === ViewOnLoad.INITIAL,
 | 
					 | 
				
			||||||
          updateUrl: AppOptions.get('historyUpdateUrl'),
 | 
					 | 
				
			||||||
        });
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (this.pdfHistory.initialBookmark) {
 | 
					 | 
				
			||||||
          this.initialBookmark = this.pdfHistory.initialBookmark;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
          this.initialRotation = this.pdfHistory.initialRotation;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
      const storePromise = store.getMultiple({
 | 
					      const storePromise = store.getMultiple({
 | 
				
			||||||
        page: null,
 | 
					        page: null,
 | 
				
			||||||
        zoom: DEFAULT_SCALE_VALUE,
 | 
					        zoom: DEFAULT_SCALE_VALUE,
 | 
				
			||||||
@ -939,15 +923,11 @@ let PDFViewerApplication = {
 | 
				
			|||||||
      ]).then(async ([values = {}, pageMode, openActionDest]) => {
 | 
					      ]).then(async ([values = {}, pageMode, openActionDest]) => {
 | 
				
			||||||
        const viewOnLoad = AppOptions.get('viewOnLoad');
 | 
					        const viewOnLoad = AppOptions.get('viewOnLoad');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Always let the browser history/document hash take precedence.
 | 
					        this._initializePdfHistory({
 | 
				
			||||||
        if (openActionDest && !this.initialBookmark &&
 | 
					          fingerprint: pdfDocument.fingerprint,
 | 
				
			||||||
            viewOnLoad === ViewOnLoad.UNKNOWN) {
 | 
					          viewOnLoad,
 | 
				
			||||||
          this.initialBookmark = JSON.stringify(openActionDest);
 | 
					          initialDest: openActionDest,
 | 
				
			||||||
          // TODO: Re-factor the `PDFHistory` initialization to remove this hack
 | 
					        });
 | 
				
			||||||
          // that's currently necessary to prevent weird initial history state.
 | 
					 | 
				
			||||||
          this.pdfHistory.push({ explicitDest: openActionDest,
 | 
					 | 
				
			||||||
                                 pageNumber: null, });
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        const initialBookmark = this.initialBookmark;
 | 
					        const initialBookmark = this.initialBookmark;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Initialize the default values, from user preferences.
 | 
					        // Initialize the default values, from user preferences.
 | 
				
			||||||
@ -1164,6 +1144,37 @@ let PDFViewerApplication = {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /**
 | 
				
			||||||
 | 
					   * @private
 | 
				
			||||||
 | 
					   */
 | 
				
			||||||
 | 
					  _initializePdfHistory({ fingerprint, viewOnLoad, initialDest = null, }) {
 | 
				
			||||||
 | 
					    if (AppOptions.get('disableHistory') || this.isViewerEmbedded) {
 | 
				
			||||||
 | 
					      // The browsing history is only enabled when the viewer is standalone,
 | 
				
			||||||
 | 
					      // i.e. not when it is embedded in a web page.
 | 
				
			||||||
 | 
					      return;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    this.pdfHistory.initialize({
 | 
				
			||||||
 | 
					      fingerprint,
 | 
				
			||||||
 | 
					      resetHistory: viewOnLoad === ViewOnLoad.INITIAL,
 | 
				
			||||||
 | 
					      updateUrl: AppOptions.get('historyUpdateUrl'),
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (this.pdfHistory.initialBookmark) {
 | 
				
			||||||
 | 
					      this.initialBookmark = this.pdfHistory.initialBookmark;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      this.initialRotation = this.pdfHistory.initialRotation;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Always let the browser history/document hash take precedence.
 | 
				
			||||||
 | 
					    if (initialDest && !this.initialBookmark &&
 | 
				
			||||||
 | 
					        viewOnLoad === ViewOnLoad.UNKNOWN) {
 | 
				
			||||||
 | 
					      this.initialBookmark = JSON.stringify(initialDest);
 | 
				
			||||||
 | 
					      // TODO: Re-factor the `PDFHistory` initialization to remove this hack
 | 
				
			||||||
 | 
					      // that's currently necessary to prevent weird initial history state.
 | 
				
			||||||
 | 
					      this.pdfHistory.push({ explicitDest: initialDest, pageNumber: null, });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  setInitialView(storedHash, { rotation, sidebarView,
 | 
					  setInitialView(storedHash, { rotation, sidebarView,
 | 
				
			||||||
                               scrollMode, spreadMode, } = {}) {
 | 
					                               scrollMode, spreadMode, } = {}) {
 | 
				
			||||||
    const setRotation = (angle) => {
 | 
					    const setRotation = (angle) => {
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user