From be2c54c8a1044b8f21f86fdb8828572ab72ab859 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A3o=20Gottwald?= Date: Sat, 3 Mar 2018 15:04:51 +0100 Subject: [PATCH] Backed out changeset 0d138609abfd (bug 1344749) MozReview-Commit-ID: 2Mx1CpM0uyH --- browser/app/profile/firefox.js | 8 -- browser/base/content/tabbrowser.js | 26 +++-- browser/base/content/test/tabs/browser.ini | 2 - .../tabs/browser_new_tab_insert_position.js | 94 ------------------- .../content/test/tabs/file_new_tab_page.html | 9 -- .../extensions/ext-browserSettings.js | 25 ----- .../extensions/schemas/browser_settings.json | 4 - .../test/xpcshell/test_ext_browserSettings.js | 21 ----- 8 files changed, 12 insertions(+), 177 deletions(-) delete mode 100644 browser/base/content/test/tabs/browser_new_tab_insert_position.js delete mode 100644 browser/base/content/test/tabs/file_new_tab_page.html diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js index 503f1cb7fb99..51be21fe7201 100644 --- a/browser/app/profile/firefox.js +++ b/browser/app/profile/firefox.js @@ -458,15 +458,7 @@ pref("browser.link.open_newwindow.disabled_in_fullscreen", false); // Tabbed browser pref("browser.tabs.closeWindowWithLastTab", true); -// Open related links to a tab, e.g., link in current tab, at next to the -// current tab if |insertRelatedAfterCurrent| is true. Otherwise, always -// append new tab to the end. pref("browser.tabs.insertRelatedAfterCurrent", true); -// Open all links, e.g., bookmarks, history items at next to current tab -// if |insertAfterCurrent| is true. Otherwise, append new tab to the end -// for non-related links. Note that if this is set to true, it will trump -// the value of browser.tabs.insertRelatedAfterCurrent. -pref("browser.tabs.insertAfterCurrent", false); pref("browser.tabs.warnOnClose", true); pref("browser.tabs.warnOnCloseOtherTabs", true); pref("browser.tabs.warnOnOpen", true); diff --git a/browser/base/content/tabbrowser.js b/browser/base/content/tabbrowser.js index 49f7b24e9e9e..9eaa59d07a74 100644 --- a/browser/base/content/tabbrowser.js +++ b/browser/base/content/tabbrowser.js @@ -2480,22 +2480,20 @@ class TabBrowser { } } - // Move the new tab after another tab if needed. - if ((openerTab && - Services.prefs.getBoolPref("browser.tabs.insertRelatedAfterCurrent")) || - Services.prefs.getBoolPref("browser.tabs.insertAfterCurrent")) { + // If we're opening a tab related to the an existing tab, move it + // to a position after that tab. + if (openerTab && + Services.prefs.getBoolPref("browser.tabs.insertRelatedAfterCurrent")) { - let lastRelatedTab = openerTab && this._lastRelatedTabMap.get(openerTab); - let newTabPos = (lastRelatedTab || openerTab || this.mCurrentTab)._tPos + 1; - - if (lastRelatedTab) - lastRelatedTab.owner = null; - else if (openerTab) - t.owner = openerTab; - this.moveTabTo(t, newTabPos, true); - if (openerTab) + let lastRelatedTab = this._lastRelatedTabMap.get(openerTab); + let newTabPos = (lastRelatedTab || openerTab)._tPos + 1; + if (lastRelatedTab) + lastRelatedTab.owner = null; + else + t.owner = openerTab; + this.moveTabTo(t, newTabPos, true); this._lastRelatedTabMap.set(openerTab, t); - } + } // This field is updated regardless if we actually animate // since it's important that we keep this count correct in all cases. diff --git a/browser/base/content/test/tabs/browser.ini b/browser/base/content/test/tabs/browser.ini index 13befca73aed..e52f64d1e347 100644 --- a/browser/base/content/test/tabs/browser.ini +++ b/browser/base/content/test/tabs/browser.ini @@ -23,8 +23,6 @@ skip-if = !e10s # Test only relevant for e10s. skip-if = !e10s # Pref and test only relevant for e10s. [browser_newwindow_tabstrip_overflow.js] [browser_opened_file_tab_navigated_to_web.js] -[browser_new_tab_insert_position.js] -support-files = file_new_tab_page.html [browser_overflowScroll.js] [browser_pinnedTabs.js] [browser_pinnedTabs_closeByKeyboard.js] diff --git a/browser/base/content/test/tabs/browser_new_tab_insert_position.js b/browser/base/content/test/tabs/browser_new_tab_insert_position.js deleted file mode 100644 index a596d2e275c2..000000000000 --- a/browser/base/content/test/tabs/browser_new_tab_insert_position.js +++ /dev/null @@ -1,94 +0,0 @@ -/* Any copyright is dedicated to the Public Domain. - http://creativecommons.org/publicdomain/zero/1.0/ */ - -async function doTest(aInsertRelatedAfterCurrent, aInsertAfterCurrent) { - const kDescription = "(aInsertRelatedAfterCurrent=" + aInsertRelatedAfterCurrent + - ", aInsertAfterCurrent=" + aInsertAfterCurrent + "): "; - is(gBrowser.tabs.length, 1, kDescription + "one tab is open initially"); - - await SpecialPowers.pushPrefEnv({set: [ - ["browser.tabs.opentabfor.middleclick", true], - ["browser.tabs.loadBookmarksInBackground", false], - ["browser.tabs.insertRelatedAfterCurrent", aInsertRelatedAfterCurrent], - ["browser.tabs.insertAfterCurrent", aInsertAfterCurrent] - ]}); - - // Add a few tabs. - let tabs = []; - function addTab(aURL, aReferrer) { - let tab = BrowserTestUtils.addTab(gBrowser, aURL, {referrerURI: aReferrer}); - tabs.push(tab); - return BrowserTestUtils.browserLoaded(tab.linkedBrowser); - } - - await addTab("http://mochi.test:8888/#0"); - await addTab("http://mochi.test:8888/#1"); - await addTab("http://mochi.test:8888/#2"); - await addTab("http://mochi.test:8888/#3"); - - // Create a new tab page which has a link to "example.com". - let pageURL = getRootDirectory(gTestPath).replace("chrome://mochitests/content", "http://example.com"); - pageURL = `${pageURL}file_new_tab_page.html`; - let newTab = await BrowserTestUtils.openNewForegroundTab(gBrowser, pageURL); - let newTabURISpec = newTab.linkedBrowser.currentURI.spec; - const kNewTabIndex = 1; - gBrowser.moveTabTo(newTab, kNewTabIndex); - - let openTabIndex = aInsertRelatedAfterCurrent || aInsertAfterCurrent ? - kNewTabIndex + 1 : gBrowser.tabs.length; - let openTabDescription = aInsertRelatedAfterCurrent || aInsertAfterCurrent ? - "immediately to the right" : "at rightmost"; - - // Middle click on the cell should open example.com in a new tab. - let newTabPromise = BrowserTestUtils.waitForNewTab(gBrowser, "http://example.com/", true); - await BrowserTestUtils.synthesizeMouseAtCenter("#link_to_example_com", - {button: 1}, gBrowser.selectedBrowser); - let openTab = await newTabPromise; - is(openTab.linkedBrowser.currentURI.spec, "http://example.com/", - "Middle click should open site to correct url."); - is(openTab._tPos, openTabIndex, - kDescription + "Middle click should open site in a new tab " + openTabDescription); - - // Remove the new opened tab which loaded example.com. - gBrowser.removeTab(gBrowser.tabs[openTabIndex]); - - // Go back to the new tab. - gBrowser.selectedTab = newTab; - is(gBrowser.selectedBrowser.currentURI.spec, newTabURISpec, - kDescription + "New tab URI shouldn't be changed"); - - openTabIndex = aInsertAfterCurrent ? kNewTabIndex + 1 : gBrowser.tabs.length; - openTabDescription = aInsertAfterCurrent ? "immediately to the right" : "at rightmost"; - - // Open about:mozilla in new tab from the URL bar. - gURLBar.focus(); - gURLBar.select(); - newTabPromise = BrowserTestUtils.waitForNewTab(gBrowser, "about:mozilla"); - EventUtils.sendString("about:mozilla"); - EventUtils.synthesizeKey("KEY_Alt", { altKey: true, code: "AltLeft", type: "keydown" }); - EventUtils.synthesizeKey("KEY_Enter", { altKey: true, code: "Enter" }); - EventUtils.synthesizeKey("KEY_Alt", { altKey: false, code: "AltLeft", type: "keyup" }); - openTab = await newTabPromise; - - is(newTab.linkedBrowser.currentURI.spec, newTabURISpec, - kDescription + "example.com should be loaded in current tab."); - is(openTab.linkedBrowser.currentURI.spec, "about:mozilla", - kDescription + "about:mozilla should be loaded in the new tab."); - is(openTab._tPos, openTabIndex, - kDescription + "Alt+Enter in the URL bar should open page in a new tab " + openTabDescription); - - // Remove all tabs opened by this test. - while (gBrowser.tabs[1]) { - gBrowser.removeTab(gBrowser.tabs[1]); - } -} - -add_task(async function() { - // Current default settings. - await doTest(true, false); - // Perhaps, some users would love this settings. - await doTest(true, true); - // Maybe, unrealistic cases, but we should test these cases too. - await doTest(false, true); - await doTest(false, false); -}); diff --git a/browser/base/content/test/tabs/file_new_tab_page.html b/browser/base/content/test/tabs/file_new_tab_page.html deleted file mode 100644 index 650dade4598a..000000000000 --- a/browser/base/content/test/tabs/file_new_tab_page.html +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - go to example.com - - diff --git a/toolkit/components/extensions/ext-browserSettings.js b/toolkit/components/extensions/ext-browserSettings.js index deb0c76b67cb..64900d75e9a4 100644 --- a/toolkit/components/extensions/ext-browserSettings.js +++ b/toolkit/components/extensions/ext-browserSettings.js @@ -125,20 +125,6 @@ ExtensionPreferencesManager.addSetting("imageAnimationBehavior", { }, }); -ExtensionPreferencesManager.addSetting("newTabPosition", { - prefNames: [ - "browser.tabs.insertRelatedAfterCurrent", - "browser.tabs.insertAfterCurrent", - ], - - setCallback(value) { - return { - "browser.tabs.insertAfterCurrent": value === "afterCurrent", - "browser.tabs.insertRelatedAfterCurrent": value === "relatedAfterCurrent", - }; - }, -}); - ExtensionPreferencesManager.addSetting("openBookmarksInNewTabs", { prefNames: [ "browser.tabs.loadBookmarksInTabs", @@ -274,17 +260,6 @@ this.browserSettings = class extends ExtensionAPI { () => { return Services.prefs.getCharPref("image.animation_mode"); }), - newTabPosition: getSettingsAPI( - extension, "newTabPosition", - () => { - if (Services.prefs.getBoolPref("browser.tabs.insertAfterCurrent")) { - return "afterCurrent"; - } - if (Services.prefs.getBoolPref("browser.tabs.insertRelatedAfterCurrent")) { - return "relatedAfterCurrent"; - } - return "atEnd"; - }), newTabPageOverride: getSettingsAPI( extension, NEW_TAB_OVERRIDE_SETTING, () => { diff --git a/toolkit/components/extensions/schemas/browser_settings.json b/toolkit/components/extensions/schemas/browser_settings.json index f04774e5245e..6194a82e1b53 100644 --- a/toolkit/components/extensions/schemas/browser_settings.json +++ b/toolkit/components/extensions/schemas/browser_settings.json @@ -133,10 +133,6 @@ "$ref": "types.Setting", "description": "Returns the value of the overridden new tab page. Read-only." }, - "newTabPosition": { - "$ref": "types.Setting", - "description": "Controls where new tabs are opened. `afterCurrent` will open all new tabs next to the current tab, `relatedAfterCurrent` will open only related tabs next to the current tab, and `atEnd` will open all tabs at the end of the tab strip. The default is `relatedAfterCurrent`." - }, "openBookmarksInNewTabs": { "$ref": "types.Setting", "description": "This boolean setting controls whether bookmarks are opened in the current tab or in a new tab." diff --git a/toolkit/components/extensions/test/xpcshell/test_ext_browserSettings.js b/toolkit/components/extensions/test/xpcshell/test_ext_browserSettings.js index 9b77e0f47ec8..839cfeaabca0 100644 --- a/toolkit/components/extensions/test/xpcshell/test_ext_browserSettings.js +++ b/toolkit/components/extensions/test/xpcshell/test_ext_browserSettings.js @@ -47,8 +47,6 @@ add_task(async function test_browser_settings() { "network.proxy.no_proxies_on": "localhost, 127.0.0.1", "network.proxy.autoconfig_url": "", "signon.autologin.proxy": false, - "browser.tabs.insertRelatedAfterCurrent": true, - "browser.tabs.insertAfterCurrent": false, }; async function background() { @@ -166,25 +164,6 @@ add_task(async function test_browser_settings() { {"ui.context_menus.after_mouseup": false}); } - await testSetting( - "newTabPosition", "afterCurrent", - { - "browser.tabs.insertRelatedAfterCurrent": false, - "browser.tabs.insertAfterCurrent": true, - }); - await testSetting( - "newTabPosition", "atEnd", - { - "browser.tabs.insertRelatedAfterCurrent": false, - "browser.tabs.insertAfterCurrent": false, - }); - await testSetting( - "newTabPosition", "relatedAfterCurrent", - { - "browser.tabs.insertRelatedAfterCurrent": true, - "browser.tabs.insertAfterCurrent": false, - }); - await testSetting( "openBookmarksInNewTabs", true, {"browser.tabs.loadBookmarksInTabs": true});