From 48399a3ec7bb9762c28027d4993638908f3e781a Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Fri, 25 Apr 2014 20:13:17 +0200 Subject: [PATCH 1/2] Add writeToStorage method to ViewHistory --- web/view_history.js | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/web/view_history.js b/web/view_history.js index f785631f8..ec813969d 100644 --- a/web/view_history.js +++ b/web/view_history.js @@ -86,30 +86,33 @@ var ViewHistory = (function ViewHistoryClosure() { this.database = database; }, - set: function ViewHistory_set(name, val) { - if (!this.isInitializedPromiseResolved) { - return; - } - var file = this.file; - file[name] = val; - var database = JSON.stringify(this.database); + _writeToStorage: function ViewHistory_writeToStorage() { + var databaseStr = JSON.stringify(this.database); //#if B2G -// asyncStorage.setItem('database', database); +// asyncStorage.setItem('database', databaseStr); //#endif //#if FIREFOX || MOZCENTRAL // try { // // See comment in try-catch block above. -// sessionStorage.setItem('pdfjsHistory', database); +// sessionStorage.setItem('pdfjsHistory', databaseStr); // } catch (ex) {} //#endif //#if !(FIREFOX || MOZCENTRAL || B2G) - localStorage.setItem('database', database); + localStorage.setItem('database', databaseStr); //#endif }, + set: function ViewHistory_set(name, val) { + if (!this.isInitializedPromiseResolved) { + return; + } + this.file[name] = val; + this._writeToStorage(); + }, + get: function ViewHistory_get(name, defaultValue) { if (!this.isInitializedPromiseResolved) { return defaultValue; From 69eafaa58fa6d6440bf43066c9476567920150ea Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Fri, 25 Apr 2014 20:28:26 +0200 Subject: [PATCH 2/2] Add support for setting multiple values at once in ViewHistory --- web/view_history.js | 10 ++++++++++ web/viewer.js | 15 ++++++++------- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/web/view_history.js b/web/view_history.js index ec813969d..5e5f81ed3 100644 --- a/web/view_history.js +++ b/web/view_history.js @@ -113,6 +113,16 @@ var ViewHistory = (function ViewHistoryClosure() { this._writeToStorage(); }, + setMultiple: function ViewHistory_setMultiple(properties) { + if (!this.isInitializedPromiseResolved) { + return; + } + for (var name in properties) { + this.file[name] = properties[name]; + } + this._writeToStorage(); + }, + get: function ViewHistory_get(name, defaultValue) { if (!this.isInitializedPromiseResolved) { return defaultValue; diff --git a/web/viewer.js b/web/viewer.js index c44ca8dd4..3cbe62896 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -1970,13 +1970,14 @@ function updateViewarea() { PDFView.currentPosition = { page: pageNumber, left: intLeft, top: intTop }; } - var store = PDFView.store; - store.initializedPromise.then(function() { - store.set('exists', true); - store.set('page', pageNumber); - store.set('zoom', normalizedScaleValue); - store.set('scrollLeft', intLeft); - store.set('scrollTop', intTop); + PDFView.store.initializedPromise.then(function() { + PDFView.store.setMultiple({ + 'exists': true, + 'page': pageNumber, + 'zoom': normalizedScaleValue, + 'scrollLeft': intLeft, + 'scrollTop': intTop + }); }); var href = PDFView.getAnchorUrl(pdfOpenParams); document.getElementById('viewBookmark').href = href;