/* 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 kButtonId = "test-886323-removable-moved-node"; const kLazyAreaId = "test-886323-lazy-area-for-removability-testing"; var gNavBar = document.getElementById(CustomizableUI.AREA_NAVBAR); var gLazyArea; // Removable nodes shouldn't be moved by buildArea add_task(async function () { let dummyBtn = createDummyXULButton(kButtonId, "Dummy"); dummyBtn.setAttribute("removable", "true"); CustomizableUI.getCustomizationTarget(gNavBar).appendChild(dummyBtn); let popupSet = document.getElementById("mainPopupSet"); gLazyArea = document.createXULElement("panel"); gLazyArea.id = kLazyAreaId; gLazyArea.hidden = true; popupSet.appendChild(gLazyArea); CustomizableUI.registerArea(kLazyAreaId, { type: CustomizableUI.TYPE_PANEL, defaultPlacements: [], }); CustomizableUI.addWidgetToArea(kButtonId, kLazyAreaId); assertAreaPlacements( kLazyAreaId, [kButtonId], "Placements should have changed because widget is removable." ); let btn = document.getElementById(kButtonId); btn.setAttribute("removable", "false"); gLazyArea._customizationTarget = gLazyArea; CustomizableUI.registerToolbarNode(gLazyArea, []); assertAreaPlacements( kLazyAreaId, [], "Placements should no longer include widget." ); is( btn.parentNode.id, CustomizableUI.getCustomizationTarget(gNavBar).id, "Button shouldn't actually have moved as it's not removable" ); btn = document.getElementById(kButtonId); if (btn) { btn.remove(); } CustomizableUI.removeWidgetFromArea(kButtonId); CustomizableUI.unregisterArea(kLazyAreaId); gLazyArea.remove(); }); add_task(async function asyncCleanup() { await resetCustomization(); });