Bug 1360932 - Registered lazy tabs as switch-to-tab candidates. r=dao

MozReview-Commit-ID: 323l6pHQQAT
This commit is contained in:
Kevin Jones
2017-05-12 05:34:43 +02:00
parent 2d469ed3e9
commit 2028999eac
2 changed files with 32 additions and 6 deletions
+17 -2
View File
@@ -2279,9 +2279,17 @@
var t = document.createElementNS(NS_XUL, "tab");
var uriIsAboutBlank = !aURI || aURI == "about:blank";
aURI = aURI || "about:blank";
if (!aURI || isBlankPageURL(aURI)) {
let lazyBrowserURI;
if (aCreateLazyBrowser && aURI != "about:blank") {
lazyBrowserURI = Services.io.newURI(aURI);
aURI = "about:blank";
}
var uriIsAboutBlank = aURI == "about:blank";
if (isBlankPageURL(aURI)) {
t.setAttribute("label", this.mStringBundle.getString("tabs.emptyTabTitle"));
} else if (aURI.toLowerCase().startsWith("javascript:")) {
// This can go away when bug 672618 or bug 55696 are fixed.
@@ -2393,6 +2401,13 @@
// If the caller opts in, create a lazy browser.
if (aCreateLazyBrowser) {
this._createLazyBrowser(t);
if (lazyBrowserURI) {
// Lazy browser must be explicitly registered so tab will appear as
// a switch-to-tab candidate in autocomplete.
this._unifiedComplete.registerOpenPage(lazyBrowserURI, aUserContextId);
b.registeredOpenURI = lazyBrowserURI;
}
} else {
this._insertBrowser(t);
}
@@ -3278,10 +3278,21 @@ var SessionStoreInternal = {
this._prefBranch.getBoolPref("sessionstore.restore_on_demand");
for (var t = 0; t < newTabCount; t++) {
let userContextId = winData.tabs[t].userContextId;
let tabData = winData.tabs[t];
let userContextId = tabData.userContextId;
let select = t == selectTab - 1;
let createLazyBrowser = restoreTabsLazily && !select && !winData.tabs[t].pinned;
let tab = tabbrowser.addTab("about:blank",
let createLazyBrowser = restoreTabsLazily && !select && !tabData.pinned;
let url = "about:blank";
if (createLazyBrowser) {
// Let tabbrowser know the future URI because progress listeners won't
// get onLocationChange notification before the browser is inserted.
let activeIndex = (tabData.index || tabData.entries.length) - 1;
url = tabData.entries[activeIndex].url;
}
let tab = tabbrowser.addTab(url,
{ createLazyBrowser,
skipAnimation: true,
userContextId,
@@ -3301,7 +3312,7 @@ var SessionStoreInternal = {
tabs.push(tab);
if (winData.tabs[t].hidden) {
if (tabData.hidden) {
tabbrowser.hideTab(tabs[t]);
}
}