summaryrefslogtreecommitdiffstats
path: root/application
diff options
context:
space:
mode:
authorJustOff <Off.Just.Off@gmail.com>2018-09-16 19:46:33 +0300
committerJustOff <Off.Just.Off@gmail.com>2018-09-16 19:46:33 +0300
commit465c0a564647d4b33bd456a276afd61affd06365 (patch)
treeeaccb2f55bfc14fb4283ce6a016e89d0293f6d94 /application
parent08dd8ff76063097d7ceea3ec2877028e57ede211 (diff)
downloadUXP-465c0a564647d4b33bd456a276afd61affd06365.tar
UXP-465c0a564647d4b33bd456a276afd61affd06365.tar.gz
UXP-465c0a564647d4b33bd456a276afd61affd06365.tar.lz
UXP-465c0a564647d4b33bd456a276afd61affd06365.tar.xz
UXP-465c0a564647d4b33bd456a276afd61affd06365.zip
[PALEMOON] Skip notifications for background tabs when restoring a session
Diffstat (limited to 'application')
-rw-r--r--application/palemoon/base/content/tabbrowser.xml13
-rw-r--r--application/palemoon/components/sessionstore/SessionStore.jsm7
2 files changed, 17 insertions, 3 deletions
diff --git a/application/palemoon/base/content/tabbrowser.xml b/application/palemoon/base/content/tabbrowser.xml
index 3de1c6be2..93818e290 100644
--- a/application/palemoon/base/content/tabbrowser.xml
+++ b/application/palemoon/base/content/tabbrowser.xml
@@ -1429,6 +1429,7 @@
var aRelatedToCurrent;
var aSkipAnimation;
var aOriginPrincipal;
+ var aSkipBackgroundNotify;
if (arguments.length == 2 &&
typeof arguments[1] == "object" &&
!(arguments[1] instanceof Ci.nsIURI)) {
@@ -1444,6 +1445,7 @@
aRelatedToCurrent = params.relatedToCurrent;
aSkipAnimation = params.skipAnimation;
aOriginPrincipal = params.originPrincipal;
+ aSkipBackgroundNotify = params.skipBackgroundNotify;
}
// if we're adding tabs, we're past interrupt mode, ditch the owner
@@ -1467,6 +1469,11 @@
t.setAttribute("crop", "end");
t.setAttribute("validate", "never"); //PMed
t.setAttribute("onerror", "this.removeAttribute('image');");
+
+ if (aSkipBackgroundNotify) {
+ t.setAttribute("skipbackgroundnotify", true);
+ }
+
t.className = "tabbrowser-tab";
this.tabContainer._unlockTabSizing();
@@ -4143,7 +4150,11 @@
this._fillTrailingGap();
this._handleTabSelect();
} else {
- this._notifyBackgroundTab(tab);
+ if (tab.hasAttribute("skipbackgroundnotify")) {
+ tab.removeAttribute("skipbackgroundnotify");
+ } else {
+ this._notifyBackgroundTab(tab);
+ }
}
// XXXmano: this is a temporary workaround for bug 345399
diff --git a/application/palemoon/components/sessionstore/SessionStore.jsm b/application/palemoon/components/sessionstore/SessionStore.jsm
index c5e55321c..e19a578f4 100644
--- a/application/palemoon/components/sessionstore/SessionStore.jsm
+++ b/application/palemoon/components/sessionstore/SessionStore.jsm
@@ -2739,7 +2739,9 @@ var SessionStoreInternal = {
for (var t = 0; t < newTabCount; t++) {
tabs.push(t < openTabCount ?
tabbrowser.tabs[t] :
- tabbrowser.addTab("about:blank", {skipAnimation: true}));
+ tabbrowser.addTab("about:blank",
+ {skipAnimation: true,
+ skipBackgroundNotify: true}));
// when resuming at startup: add additionally requested pages to the end
if (!aOverwriteTabs && root._firstTabs) {
tabbrowser.moveTabTo(tabs[t], t);
@@ -4684,7 +4686,8 @@ var TabAttributes = {
// 'image' should not be accessed directly but handled by using the
// gBrowser.getIcon()/setIcon() methods.
// 'pending' is used internal by sessionstore and managed accordingly.
- _skipAttrs: new Set(["image", "pending"]),
+ // 'skipbackgroundnotify' is used internal by tabbrowser.xml.
+ _skipAttrs: new Set(["image", "pending", "skipbackgroundnotify"]),
persist: function (name) {
if (this._attrs.has(name) || this._skipAttrs.has(name)) {