Back out patch from bug 392870 due to perf regression.

This commit is contained in:
reed@reedloden.com 2007-11-22 00:52:41 -08:00
parent e0b7f4b2d8
commit 163f2b9e1f
4 changed files with 56 additions and 19 deletions

View File

@ -268,10 +268,6 @@ 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);

View File

@ -1328,6 +1328,7 @@ AutoHideTabbarPrefListener.prototype =
catch (e) {
}
gBrowser.setStripVisibilityTo(aVisible);
gPrefService.setBoolPref("browser.tabs.forceHide", false);
}
}
}
@ -1700,8 +1701,17 @@ function BrowserCloseTabOrWindow()
}
#endif
// If the current tab is the last one, this will close the window.
gBrowser.removeCurrentTab();
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);
}
function BrowserTryToCloseWindow()

View File

@ -1165,6 +1165,8 @@
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);
@ -1338,22 +1340,18 @@
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();
@ -1361,6 +1359,19 @@
}
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
@ -1537,8 +1548,9 @@
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 && !tabStripHide)
if (!autoHide && !forceHide && !tabStripHide)
this.setStripVisibilityTo(true);
}

View File

@ -172,10 +172,29 @@ 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);