[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