[tor-commits] [tor-browser] 02/02: fixup! Bug 40925: Implemented the Security Level component

gitolite role git at cupani.torproject.org
Mon Sep 19 23:00:09 UTC 2022


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 at 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.


More information about the tor-commits mailing list