From b570b85cc8257faa80b8d4c487dc6df4351b43c1 Mon Sep 17 00:00:00 2001 From: "reed@reedloden.com" Date: Thu, 8 Nov 2007 18:19:30 -0800 Subject: [PATCH] Bug 392870 - "Easy discoverability of Tabbed Browsing for new users" [p=dao r=mconnor r=Neil a=blocking-firefox3+] --- browser/app/profile/firefox.js | 4 +++ browser/base/content/browser.js | 14 ++--------- browser/base/content/tabbrowser.xml | 38 ++++++++++------------------- modules/libpref/src/init/all.js | 19 --------------- 4 files changed, 19 insertions(+), 56 deletions(-) diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js index 94c3d402f7dd..20c104ccc523 100644 --- a/browser/app/profile/firefox.js +++ b/browser/app/profile/firefox.js @@ -266,6 +266,10 @@ pref("browser.link.open_newwindow", 3); pref("browser.link.open_newwindow.restriction", 2); // Tab browser preferences. +pref("browser.tabs.autoHide", false); +pref("browser.tabs.warnOnClose", true); +pref("browser.tabs.warnOnOpen", true); +pref("browser.tabs.maxOpenBeforeWarn", 15); pref("browser.tabs.loadInBackground", true); pref("browser.tabs.loadFolderAndReplace", true); pref("browser.tabs.opentabfor.middleclick", true); diff --git a/browser/base/content/browser.js b/browser/base/content/browser.js index 808e365b642a..a028da137fbc 100644 --- a/browser/base/content/browser.js +++ b/browser/base/content/browser.js @@ -1374,7 +1374,6 @@ AutoHideTabbarPrefListener.prototype = catch (e) { } gBrowser.setStripVisibilityTo(aVisible); - gPrefService.setBoolPref("browser.tabs.forceHide", false); } } } @@ -1747,17 +1746,8 @@ function BrowserCloseTabOrWindow() } #endif - if (gBrowser.tabContainer.childNodes.length > 1 || - window.toolbar.visible && !gPrefService.getBoolPref("browser.tabs.autoHide")) { - // Just close the tab (and focus the address bar if it was the last one). - var isLastTab = gBrowser.tabContainer.childNodes.length == 1; - gBrowser.removeCurrentTab(); - if (isLastTab && gURLBar) - setTimeout(function() { gURLBar.focus(); }, 0); - return; - } - - closeWindow(true); + // If the current tab is the last one, this will close the window. + gBrowser.removeCurrentTab(); } function BrowserTryToCloseWindow() diff --git a/browser/base/content/tabbrowser.xml b/browser/base/content/tabbrowser.xml index 6cf9302c1f20..fbe5364db55b 100644 --- a/browser/base/content/tabbrowser.xml +++ b/browser/base/content/tabbrowser.xml @@ -1166,8 +1166,6 @@ if (this.mStrip.collapsed) this.setStripVisibilityTo(true); - this.mPrefs.setBoolPref("browser.tabs.forceHide", false); - // wire up a progress listener for the new browser object. var position = this.mTabContainer.childNodes.length-1; var tabListener = this.mTabProgressListener(t, b, blank); @@ -1341,18 +1339,22 @@ if (aTab.localName != "tab") aTab = this.mCurrentTab; - var l = this.mTabContainer.childNodes.length; - if (l == 1 && this.mPrefs.getBoolPref("browser.tabs.autoHide")) { - // hide the tab bar - this.mPrefs.setBoolPref("browser.tabs.forceHide", true); - this.setStripVisibilityTo(false); - return; - } - var ds = this.getBrowserForTab(aTab).docShell; if (ds.contentViewer && !ds.contentViewer.permitUnload()) return; + var l = this.mTabContainer.childNodes.length; + if (l == 1) { + closeWindow(true); + return; + } + if (l == 2) { + var autohide = this.mPrefs.getBoolPref("browser.tabs.autoHide"); + var tabStripHide = !window.toolbar.visible; + if (autohide || tabStripHide) + this.setStripVisibilityTo(false); + } + // see notes in addTab var _delayedUpdate = function(aTabContainer) { aTabContainer.adjustTabstrip(); @@ -1360,19 +1362,6 @@ } setTimeout(_delayedUpdate, 0, this.mTabContainer); - if (l == 1) { - // add a new blank tab to replace the one we're about to close - // (this ensures that the remaining tab is as good as new) - this.addTab("about:blank"); - l++; - } - else if (l == 2) { - var autohide = this.mPrefs.getBoolPref("browser.tabs.autoHide"); - var tabStripHide = !window.toolbar.visible; - if (autohide || tabStripHide) - this.setStripVisibilityTo(false); - } - // We're committed to closing the tab now. // Dispatch a notification. // We dispatch it before any teardown so that event listeners can @@ -1549,9 +1538,8 @@ if (!this.mAddProgressListenerWasCalled) { this.mAddProgressListenerWasCalled = true; var autoHide = this.mPrefs.getBoolPref("browser.tabs.autoHide"); - var forceHide = this.mPrefs.getBoolPref("browser.tabs.forceHide"); var tabStripHide = !window.toolbar.visible; - if (!autoHide && !forceHide && !tabStripHide) + if (!autoHide && !tabStripHide) this.setStripVisibilityTo(true); } diff --git a/modules/libpref/src/init/all.js b/modules/libpref/src/init/all.js index 1b71396eb3fb..e0767cc4376e 100644 --- a/modules/libpref/src/init/all.js +++ b/modules/libpref/src/init/all.js @@ -172,29 +172,10 @@ pref("browser.frames.enabled", true); // form submission pref("browser.forms.submit.backwards_compatible", true); -// xxxbsmedberg more toolkit prefs? -// Tab browser preferences. -pref("browser.tabs.autoHide", true); -pref("browser.tabs.forceHide", false); -pref("browser.tabs.warnOnClose", true); -pref("browser.tabs.warnOnCloseOther", true); -pref("browser.tabs.warnOnOpen", true); -pref("browser.tabs.maxOpenBeforeWarn", 15); -// 0 = append, 1 = replace -pref("browser.tabs.loadGroup", 1); - pref("toolkit.scrollbox.smoothScroll", true); pref("toolkit.scrollbox.scrollIncrement", 20); pref("toolkit.scrollbox.clickToScroll.scrollDelay", 150); -// lets new tab/window load something different than first window -// -1 - use navigator startup preference -// 0 - loads blank page -// 1 - loads home page -// 2 - loads last page visited -pref("browser.tabs.loadOnNewTab", 0); -pref("browser.windows.loadOnNewWindow", 1); - // view source pref("view_source.syntax_highlight", true); pref("view_source.wrap_long_lines", false);