Bug 580956: 'Undo Close Tab' should not be hidden when there are none to undo. r=dao

--HG--
extra : rebase_source : ae5bdfa5f4c169127f4b59e805a333ff148c3ca2
This commit is contained in:
Frank Yan 2010-07-29 14:36:42 -07:00
parent 88a2e10a8a
commit 75a9921fa1
4 changed files with 31 additions and 5 deletions

View File

@ -7766,13 +7766,11 @@ var TabContextMenu = {
menuItems[i].disabled = disabled;
// Session store
// XXXzeniko should't we just disable this item as we disable
// the tabbrowser-multiple items above - for consistency?
document.getElementById("context_undoCloseTab").hidden =
document.getElementById("context_undoCloseTab").disabled =
Cc["@mozilla.org/browser/sessionstore;1"].
getService(Ci.nsISessionStore).
getClosedTabCount(window) == 0;
// Only one of pin/unpin should be visible
document.getElementById("context_pinTab").hidden = this.contextTab.pinned;
document.getElementById("context_unpinTab").hidden = !this.contextTab.pinned;

View File

@ -140,7 +140,7 @@
<menuitem id="context_undoCloseTab"
label="&undoCloseTab.label;"
accesskey="&undoCloseTab.accesskey;"
command="History:UndoCloseTab"/>
observes="History:UndoCloseTab"/>
<menuitem id="context_closeTab" label="&closeTab.label;" accesskey="&closeTab.accesskey;"
oncommand="gBrowser.removeTab(TabContextMenu.contextTab);"/>
</menupopup>

View File

@ -137,6 +137,7 @@ _BROWSER_FILES = \
browser_bug562649.js \
browser_bug563588.js \
browser_bug577121.js \
browser_bug580956.js \
browser_contextSearchTabPosition.js \
browser_ctrlTab.js \
browser_discovery.js \

View File

@ -0,0 +1,27 @@
function numClosedTabs()
Cc["@mozilla.org/browser/sessionstore;1"].
getService(Ci.nsISessionStore).
getClosedTabCount(window);
function isUndoCloseEnabled() {
document.popupNode = gBrowser.tabs[0];
TabContextMenu.updateContextMenu(document.getElementById("tabContextMenu"));
return !document.getElementById("context_undoCloseTab").disabled;
}
function test() {
waitForExplicitFinish();
gPrefService.setIntPref("browser.sessionstore.max_tabs_undo", 0);
gPrefService.clearUserPref("browser.sessionstore.max_tabs_undo");
is(numClosedTabs(), 0, "There should be 0 closed tabs.");
ok(!isUndoCloseEnabled(), "Undo Close Tab should be disabled.");
var tab = gBrowser.addTab("http://mochi.test:8888/");
var browser = gBrowser.getBrowserForTab(tab);
browser.addEventListener("load", function() {
gBrowser.removeTab(tab);
ok(isUndoCloseEnabled(), "Undo Close Tab should be enabled.");
finish();
}, true);
}