[Pkg-mozext-commits] [tabmixplus] 07/28: Calling SessionStore.getTabState before Firefox 28 with pending 'about:config' tab throw 'TypeError: browser.contentDocument.getElementById(...) is null' in SessionStore._updateTextAndScrollDataForTab or TextAndScrollData.jsm

David Prévot taffit at moszumanska.debian.org
Sun Jul 5 15:02:33 UTC 2015


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository tabmixplus.

commit 1733803d15ca39558c2f8b2062b70ff550253ef0
Author: onemen <tabmix.onemen at gmail.com>
Date:   Sun Jun 21 14:19:25 2015 +0300

    Calling SessionStore.getTabState before Firefox 28 with pending 'about:config' tab throw 'TypeError: browser.contentDocument.getElementById(...) is null' in SessionStore._updateTextAndScrollDataForTab or TextAndScrollData.jsm
---
 chrome/content/session/session.js | 21 +++++++++++++++------
 1 file changed, 15 insertions(+), 6 deletions(-)

diff --git a/chrome/content/session/session.js b/chrome/content/session/session.js
index ff34773..c47473c 100644
--- a/chrome/content/session/session.js
+++ b/chrome/content/session/session.js
@@ -2854,8 +2854,9 @@ try{
    saveTab: function SM_saveTab(aTab, rdfLabelTabs, tabContainer, needToAppend) {
       if (this.isTabPrivate(aTab))
          return false;
-      var aBrowser = gBrowser.getBrowserForTab(aTab);
-      if (gBrowser.isBlankBrowser(aBrowser)) return false;
+      var browser = gBrowser.getBrowserForTab(aTab);
+      if (gBrowser.isBlankBrowser(browser))
+         return false;
 
       // clear sanitized flag
       if (this.prefBranch.prefHasUserValue("sanitized")) {
@@ -2864,18 +2865,24 @@ try{
          this.setLiteral(this._rdfRoot + "/closedSession/thisSession", "status", "crash");
       }
 
-      var sessionHistory = aBrowser.webNavigation.sessionHistory;
+      var sessionHistory = browser.webNavigation.sessionHistory;
       if (!sessionHistory)
          return false;
-      var rdfLabelTab = rdfLabelTabs + "/" + aTab.linkedPanel;
-      var rdfNodeTab = this.RDFService.GetResource(rdfLabelTab);
-      var tabState = JSON.parse(TabmixSvc.ss.getTabState(aTab));
+      var tabState;
+      try {
+         tabState = JSON.parse(TabmixSvc.ss.getTabState(aTab));
+      } catch(ex) {
+         if (!Tabmix.isVersion(280) && browser.userTypedValue == "about:config" && browser.__SS_data)
+            tabState = browser.__SS_data;
+      }
       var data = this.serializeHistory(tabState);
       if (!data)
          return false;
       data.pos = aTab._tPos;
       data.image = tabState.image;
       data.properties = TabmixSessionData.getTabProperties(aTab, true);
+      var rdfLabelTab = rdfLabelTabs + "/" + aTab.linkedPanel;
+      var rdfNodeTab = this.RDFService.GetResource(rdfLabelTab);
       this.saveTabData(rdfNodeTab, data);
       this.saveTabviewTab(rdfNodeTab, aTab);
 
@@ -2916,6 +2923,8 @@ try{
    *                current history scroll position
    */
    serializeHistory: function(state) {
+      if (!state)
+         return null;
       // Ensure sure that all entries have url
       var entries = state.entries.filter(function(e) e.url);
       if (!entries.length)

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/tabmixplus.git



More information about the Pkg-mozext-commits mailing list