diff --git a/web/viewer.js b/web/viewer.js index 2f3642647..ccf940fac 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -111,6 +111,7 @@ var PDFViewerApplication = { preferenceSidebarViewOnLoad: SidebarView.NONE, preferencePdfBugEnabled: false, preferenceShowPreviousViewOnLoad: true, + preferenceDefaultZoomValue: '', isViewerEmbedded: (window.parent !== window), url: '', @@ -231,9 +232,9 @@ var PDFViewerApplication = { }), Preferences.get('showPreviousViewOnLoad').then(function resolved(value) { self.preferenceShowPreviousViewOnLoad = value; - if (!value && window.history.state) { - window.history.replaceState(null, ''); - } + }), + Preferences.get('defaultZoomValue').then(function resolved(value) { + self.preferenceDefaultZoomValue = value; }), Preferences.get('disableTextLayer').then(function resolved(value) { if (PDFJS.disableTextLayer === true) { @@ -259,7 +260,6 @@ var PDFViewerApplication = { Preferences.get('useOnlyCssZoom').then(function resolved(value) { PDFJS.useOnlyCssZoom = value; }) - // TODO move more preferences and other async stuff here ]).catch(function (reason) { }); @@ -881,48 +881,39 @@ var PDFViewerApplication = { if (!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 && window.history.state) { + window.history.replaceState(null, ''); + } PDFHistory.initialize(self.documentFingerprint, self); } - }); - // Fetch the necessary preference values. - var defaultZoomValue; - var defaultZoomValuePromise = - Preferences.get('defaultZoomValue').then(function (prefValue) { - defaultZoomValue = prefValue; - }); - - var storePromise = store.initializedPromise; - Promise.all([firstPagePromise, storePromise, defaultZoomValuePromise]).then( - function resolved() { - var storedHash = null; - if (PDFViewerApplication.preferenceShowPreviousViewOnLoad && - store.get('exists', false)) { - var pageNum = store.get('page', '1'); - var zoom = defaultZoomValue || - store.get('zoom', self.pdfViewer.currentScale); - var left = store.get('scrollLeft', '0'); - var top = store.get('scrollTop', '0'); - - storedHash = 'page=' + pageNum + '&zoom=' + zoom + ',' + - left + ',' + top; - } else if (defaultZoomValue) { - storedHash = 'page=1&zoom=' + defaultZoomValue; - } - self.setInitialView(storedHash, scale); + store.initializedPromise.then(function resolved() { + var storedHash = null; + if (self.preferenceShowPreviousViewOnLoad && + store.get('exists', false)) { + var pageNum = store.get('page', '1'); + var zoom = self.preferenceDefaultZoomValue || + store.get('zoom', self.pdfViewer.currentScale); + var left = store.get('scrollLeft', '0'); + var top = store.get('scrollTop', '0'); + + storedHash = 'page=' + pageNum + '&zoom=' + zoom + ',' + + left + ',' + top; + } else if (self.preferenceDefaultZoomValue) { + storedHash = 'page=1&zoom=' + self.preferenceDefaultZoomValue; + } + self.setInitialView(storedHash, scale); - // Make all navigation keys work on document load, - // unless the viewer is embedded in a web page. - if (!self.isViewerEmbedded) { - self.pdfViewer.focus(); + // Make all navigation keys work on document load, + // unless the viewer is embedded in a web page. + if (!self.isViewerEmbedded) { + self.pdfViewer.focus(); //#if (FIREFOX || MOZCENTRAL) -// self.pdfViewer.blur(); +// self.pdfViewer.blur(); //#endif - } - }, function rejected(reason) { - console.error(reason); - - firstPagePromise.then(function () { + } + }, function rejected(reason) { + console.error(reason); self.setInitialView(null, scale); }); });