Bug 992747 - toolbar visibility setting doesn't work for non-customizable toolbars, r=jaws

This commit is contained in:
Gijs Kruitbosch 2014-04-09 01:35:58 +01:00
parent 3274f8fade
commit 4cf3eff62a
3 changed files with 33 additions and 12 deletions

View File

@ -2400,20 +2400,14 @@ let CustomizableUIInternal = {
},
setToolbarVisibility: function(aToolbarId, aIsVisible) {
let area = gAreas.get(aToolbarId);
if (area.get("type") != CustomizableUI.TYPE_TOOLBAR) {
return;
}
let areaNodes = gBuildAreas.get(aToolbarId);
if (!areaNodes) {
return;
}
// We only persist the attribute the first time.
let isFirstChangedToolbar = true;
for (let areaNode of areaNodes) {
let window = areaNode.ownerDocument.defaultView;
window.setToolbarVisibility(areaNode, aIsVisible, isFirstChangedToolbar);
isFirstChangedToolbar = false;
for (let window of CustomizableUI.windows) {
let toolbar = window.document.getElementById(aToolbarId);
if (toolbar) {
window.setToolbarVisibility(toolbar, aIsVisible, isFirstChangedToolbar);
isFirstChangedToolbar = false;
}
}
},
};

View File

@ -104,4 +104,5 @@ skip-if = os == "linux"
[browser_987177_xul_wrapper_updating.js]
[browser_987492_window_api.js]
[browser_989289_force_icons_mode_attribute.js]
[browser_992747_toggle_noncustomizable_toolbar.js]
[browser_panel_toggle.js]

View File

@ -0,0 +1,26 @@
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
"use strict";
const TOOLBARID = "test-noncustomizable-toolbar-for-toggling";
function test() {
let tb = document.createElementNS(kNSXUL, "toolbar");
tb.id = TOOLBARID;
gNavToolbox.appendChild(tb);
try {
CustomizableUI.setToolbarVisibility(TOOLBARID, false);
} catch (ex) {
ok(false, "Should not throw exceptions trying to set toolbar visibility.");
}
is(tb.getAttribute("collapsed"), "true", "Toolbar should be collapsed");
try {
CustomizableUI.setToolbarVisibility(TOOLBARID, true);
} catch (ex) {
ok(false, "Should not throw exceptions trying to set toolbar visibility.");
}
is(tb.getAttribute("collapsed"), "false", "Toolbar should be uncollapsed");
tb.remove();
};