
This is an automated email from the git hooks/post-receive script. richard pushed a commit to branch tor-browser-102.2.0esr-12.0-3 in repository tor-browser. commit cd000078e5f919eac673b9f193c5fb90c3fb5390 Author: Henry Wilkes <henry@torproject.org> AuthorDate: Thu Sep 8 17:39:07 2022 +0100 fixup! Bug 40925: Implemented the Security Level component Provide a label attribute for #security-level-button on load. Also tidy up the code so that the button is properly initialized whether it starts in the toolbar or not. --- .../securitylevel/content/securityLevel.js | 58 ++++++++++------------ 1 file changed, 27 insertions(+), 31 deletions(-) diff --git a/browser/components/securitylevel/content/securityLevel.js b/browser/components/securitylevel/content/securityLevel.js index 11e63aa37945c..4b27ddbde5920 100644 --- a/browser/components/securitylevel/content/securityLevel.js +++ b/browser/components/securitylevel/content/securityLevel.js @@ -127,7 +127,8 @@ const SecurityLevelPrefs = { const SecurityLevelButton = { _securityPrefsBranch: null, - _configUIFromPrefs(securityLevelButton) { + _configUIFromPrefs() { + const securityLevelButton = this.button; if (securityLevelButton != null) { const level = SecurityLevelPrefs.securitySliderLevel; if (!level) { @@ -142,42 +143,53 @@ const SecurityLevelButton = { } }, + /** + * The node for this button. + * + * Note, the returned element may be part of the DOM or may live in the + * toolbox palette, where it may be added later to the DOM through + * customization. + * + * @type {MozToolbarbutton} + */ get button() { - let button = document.getElementById("security-level-button"); - if (!button) { - return null; - } - return button; + // We first search in the DOM for the security level button. If it does not + // exist it may be in the toolbox palette. We still want to return the + // button in the latter case to allow it to be initialized or adjusted in + // case it is added back through customization. + return ( + document.getElementById("security-level-button") || + window.gNavToolbox.palette.querySelector("#security-level-button") + ); }, get anchor() { - let anchor = this.button.icon; + let button = this.button; + let anchor = button?.icon; if (!anchor) { return null; } - anchor.setAttribute("consumeanchor", SecurityLevelButton.button.id); + anchor.setAttribute("consumeanchor", button.id); return anchor; }, init() { + // Set a label to be be used as the accessible name, and to be shown in the + // overflow menu and during customization. + this.button?.setAttribute("label", SecurityLevelStrings.security_level); // set the initial class based off of the current pref - let button = this.button; - this._configUIFromPrefs(button); + this._configUIFromPrefs(); this._securityPrefsBranch = Services.prefs.getBranch( "extensions.torbutton." ); this._securityPrefsBranch.addObserver("", this); - CustomizableUI.addListener(this); - SecurityLevelPanel.init(); }, uninit() { - CustomizableUI.removeListener(this); - this._securityPrefsBranch.removeObserver("", this); this._securityPrefsBranch = null; @@ -188,28 +200,12 @@ const SecurityLevelButton = { switch (topic) { case "nsPref:changed": if (data === "security_slider" || data === "security_custom") { - this._configUIFromPrefs(this.button); + this._configUIFromPrefs(); } break; } }, - // callback for entering the 'Customize Firefox' screen to set icon - onCustomizeStart(window) { - let navigatorToolbox = document.getElementById("navigator-toolbox"); - let button = navigatorToolbox.palette.querySelector( - "#security-level-button" - ); - this._configUIFromPrefs(button); - }, - - // callback when CustomizableUI modifies DOM - onWidgetAfterDOMChange(aNode, aNextNode, aContainer, aWasRemoval) { - if (aNode.id == "security-level-button" && !aWasRemoval) { - this._configUIFromPrefs(aNode); - } - }, - // for when the toolbar button needs to be activated and displays the Security Level panel // // In the toolbarbutton xul you'll notice we register this callback for both onkeypress and -- To stop receiving notification emails like this one, please contact the administrator of this repository.