author | Jan Henning <jh+bugzilla@buttercookie.de> |
Thu, 14 Sep 2017 21:09:44 +0200 | |
changeset 431573 | 0f3603bb20458ab0419ffa8df7e4a2a8c7fd5d12 |
parent 431572 | 89aa265c6be94b04701a4b6ecc3a51f135f42030 |
child 431574 | 7707e5ec573c6bfadde7e3e7812a56603bbc38e8 |
push id | 7785 |
push user | ryanvm@gmail.com |
push date | Thu, 21 Sep 2017 13:39:55 +0000 |
treeherder | mozilla-beta@06d4034a8a03 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | jwu |
bugs | 1391421 |
milestone | 57.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/mobile/android/chrome/content/browser.js +++ b/mobile/android/chrome/content/browser.js @@ -1208,22 +1208,16 @@ var BrowserApp = { } else { this._tabs.push(newTab); } let selected = "selected" in aParams ? aParams.selected : true; if (selected) this.selectedTab = newTab; - let pinned = "pinned" in aParams ? aParams.pinned : false; - if (pinned) { - let ss = Cc["@mozilla.org/browser/sessionstore;1"].getService(Ci.nsISessionStore); - ss.setTabValue(newTab, "appOrigin", aURI); - } - let evt = document.createEvent("UIEvents"); evt.initUIEvent("TabOpen", true, false, window, null); newTab.browser.dispatchEvent(evt); return newTab; }, // Use this method to close a tab from JS. This method sends a message @@ -3382,17 +3376,17 @@ nsBrowserAccess.prototype = { } catch(e) { } } let ss = Cc["@mozilla.org/browser/sessionstore;1"].getService(Ci.nsISessionStore); let pinned = false; if (aURI && aWhere == Ci.nsIBrowserDOMWindow.OPEN_SWITCHTAB) { pinned = true; - let spec = aURI.spec; + let spec = aURI.displaySpec; let tabs = BrowserApp.tabs; for (let i = 0; i < tabs.length; i++) { let appOrigin = ss.getTabValue(tabs[i], "appOrigin"); if (appOrigin == spec) { let tab = tabs[i]; BrowserApp.selectTab(tab); return tab.browser; } @@ -3670,16 +3664,22 @@ Tab.prototype = { }], index: 1, desktopMode: this.desktopMode, isPrivate: isPrivate, tabId: this.id, parentId: this.parentId }; + let pinned = "pinned" in aParams ? aParams.pinned : false; + if (pinned && uri) { + let ss = Cc["@mozilla.org/browser/sessionstore;1"].getService(Ci.nsISessionStore); + ss.setTabValue(this, "appOrigin", uri); + } + if (aParams.delayLoad) { // If this is a zombie tab, mark the browser for delay loading, which will // restore the tab when selected using the session data added above this.browser.__SS_restore = true; this.browser.setAttribute("pending", "true"); } else { let flags = "flags" in aParams ? aParams.flags : Ci.nsIWebNavigation.LOAD_FLAGS_NONE; let postData = ("postData" in aParams && aParams.postData) ? aParams.postData.value : null;