[tor-commits] [tor-launcher/master] Bug 29197: Remove use of overlays (ESR68 compatibility).

gk at torproject.org gk at torproject.org
Wed Aug 7 18:45:42 UTC 2019


commit 8bc4a8869936cfc782d1f4c749f7608ead6ddf18
Author: Kathy Brade <brade at pearlcrescent.com>
Date:   Tue Jul 30 16:34:27 2019 -0400

    Bug 29197: Remove use of overlays (ESR68 compatibility).
    
    Use the window.MozXULElement.parseXULToFragment() function to
    parse shared XUL.
---
 src/chrome/content/localePicker.xul                |  4 +-
 ...ings-overlay.xul => network-settings-shared.js} | 48 +++++++++++-----------
 src/chrome/content/network-settings-wizard.xul     | 10 ++---
 src/chrome/content/network-settings.js             | 36 ++++++++++++++++
 src/chrome/content/network-settings.xul            | 18 ++++----
 5 files changed, 76 insertions(+), 40 deletions(-)

diff --git a/src/chrome/content/localePicker.xul b/src/chrome/content/localePicker.xul
index 6030468..1d0987c 100644
--- a/src/chrome/content/localePicker.xul
+++ b/src/chrome/content/localePicker.xul
@@ -9,9 +9,7 @@
 <?xml-stylesheet href="chrome://torlauncher/skin/network-settings.css"
                  type="text/css"?>
 
-<!DOCTYPE overlay SYSTEM "chrome://torlauncher/locale/network-settings.dtd">
-
-<?xul-overlay href="chrome://torlauncher/content/network-settings-overlay.xul"?>
+<!DOCTYPE wizard SYSTEM "chrome://torlauncher/locale/network-settings.dtd">
 
 <wizard id="TorLauncherLocalePicker"
         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
diff --git a/src/chrome/content/network-settings-overlay.xul b/src/chrome/content/network-settings-shared.js
similarity index 91%
rename from src/chrome/content/network-settings-overlay.xul
rename to src/chrome/content/network-settings-shared.js
index 35b9fc7..206872b 100644
--- a/src/chrome/content/network-settings-overlay.xul
+++ b/src/chrome/content/network-settings-shared.js
@@ -1,16 +1,9 @@
-<?xml version="1.0"?>
-<!--
-   - Copyright (c) 2018, The Tor Project, Inc.
-   - See LICENSE for licensing information.
-   - vim: set sw=2 sts=2 ts=8 et syntax=xml:
-  -->
-
-<!DOCTYPE overlay SYSTEM "chrome://torlauncher/locale/network-settings.dtd">
-
-<overlay id="TorNetworkSettingsOverlay"
-        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
-        xmlns:html="http://www.w3.org/1999/xhtml">
+// Copyright (c) 2019, The Tor Project, Inc.
+// See LICENSE for licensing information.
+//
+// vim: set sw=2 sts=2 ts=8 et syntax=javascript:
 
+var proxySettings = `
   <vbox id="proxySettings">
     <hbox align="center">
       <checkbox id="useProxy" groupboxID="proxySpecificSettings"
@@ -73,20 +66,16 @@
       </grid>
     </groupbox>
   </vbox>
+`;
 
-  <vbox id="proxyHelpContent">
+var proxyHelpContent = `
+  <vbox id="proxyHelpContent" hidden="true">
     <hbox align="middle"><label>&torsettings.proxyHelpTitle;</label></hbox>
     <description>&torsettings.proxyHelp1;</description>
   </vbox>
+`;
 
-  <groupbox id="firewallSpecificSettings">
-    <hbox align="center">
-      <label value="&torsettings.firewall.allowedPorts;"
-             control="firewallAllowedPorts"/>
-      <textbox id="firewallAllowedPorts" value="80,443"/>
-    </hbox>
-  </groupbox>
-
+var bridgeSettings = `
   <vbox id="bridgeSettings">
     <checkbox id="useBridges" groupboxID="bridgeSpecificSettings"
                 label="&torsettings.useBridges.checkbox;"
@@ -139,13 +128,17 @@
       </vbox>
     </groupbox>
   </vbox>
+`;
 
-  <vbox id="bridgeHelpContent">
+var bridgeHelpContent = `
+  <vbox id="bridgeHelpContent" hidden="true">
     <hbox align="middle"><label>&torsettings.bridgeHelpTitle;</label></hbox>
     <description>&torsettings.bridgeHelp1;</description>
     <description>&torsettings.bridgeHelp2;</description>
   </vbox>
+`;
 
+var progressContent = `
   <vbox id="progressContent">
     <hbox class="tbb-header" pack="center">
       <image class="tbb-logo"/>
@@ -159,7 +152,9 @@
              value="&torsettings.reconfigTor;"/>
     </vbox>
   </vbox>
+`;
 
+var restartContent = `
   <vbox id="restartContent">
     <hbox pack="center">
       <description id="restartPanelMessage" flex="1"/>
@@ -170,7 +165,9 @@
               oncommand="onRestartTor()"/>
     </hbox>
   </vbox>
+`;
 
+var bridgeDBRequestOverlayContent = `
   <vbox id="bridgeDBRequestOverlayContent" align="center">
     <vbox>
       <label id="bridgeDBPrompt"/>
@@ -200,7 +197,9 @@
       </hbox>
     </vbox>
   </vbox>
+`;
 
+var errorOverlayContent = `
   <vbox id="errorOverlayContent">
     <hbox pack="center">
       <description errorElemId="message" flex="1"/>
@@ -211,10 +210,11 @@
               oncommand="onDismissErrorOverlay()"/>
     </hbox>
   </vbox>
+`;
 
+var copyLogFeedbackPanel = `
   <panel id="copyLogFeedbackPanel" type="arrow" fade="slow"
          onclick="closeCopyLogFeedbackPanel()">
      <description flex="1"/>
   </panel>
-</overlay>
-
+`;
diff --git a/src/chrome/content/network-settings-wizard.xul b/src/chrome/content/network-settings-wizard.xul
index 00145a8..2eb6d6d 100644
--- a/src/chrome/content/network-settings-wizard.xul
+++ b/src/chrome/content/network-settings-wizard.xul
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!--
-   - Copyright (c) 2018, The Tor Project, Inc.
+   - Copyright (c) 2019, The Tor Project, Inc.
    - See LICENSE for licensing information.
    - vim: set sw=2 sts=2 ts=8 et syntax=xml:
   -->
@@ -9,9 +9,7 @@
 <?xml-stylesheet href="chrome://torlauncher/skin/network-settings.css"
                  type="text/css"?>
 
-<!DOCTYPE overlay SYSTEM "chrome://torlauncher/locale/network-settings.dtd">
-
-<?xul-overlay href="chrome://torlauncher/content/network-settings-overlay.xul"?>
+<!DOCTYPE wizard SYSTEM "chrome://torlauncher/locale/network-settings.dtd">
 
 <wizard id="TorNetworkSettings"
         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
@@ -127,8 +125,8 @@
 
   <wizardpage class="help" pageid="helpPanel" next="notUsed"
               onpageadvanced="closeHelp(); return false;">
-    <vbox id="bridgeHelpContent" hidden="true"/>
-    <vbox id="proxyHelpContent" hidden="true"/>
+    <vbox id="bridgeHelpContent"/>
+    <vbox id="proxyHelpContent"/>
   </wizardpage>
 
   <hbox pack="start">
diff --git a/src/chrome/content/network-settings.js b/src/chrome/content/network-settings.js
index b39a194..85dade2 100644
--- a/src/chrome/content/network-settings.js
+++ b/src/chrome/content/network-settings.js
@@ -10,6 +10,7 @@ const Ci = Components.interfaces;
 const Cu = Components.utils;
 const Cr = Components.results;
 
+Cu.import("resource://gre/modules/Services.jsm");
 Cu.import("resource://gre/modules/XPCOMUtils.jsm");
 XPCOMUtils.defineLazyModuleGetter(this, "TorLauncherUtil",
                           "resource://torlauncher/modules/tl-util.jsm");
@@ -116,6 +117,8 @@ var gBridgeDBRequestEventListeners = [];
 
 function initDialogCommon()
 {
+  loadSharedXUL();
+
   gObsService = Cc["@mozilla.org/observer-service;1"]
                   .getService(Ci.nsIObserverService);
 
@@ -158,6 +161,39 @@ function initDialogCommon()
 }
 
 
+function loadSharedXUL()
+{
+  let ctxt = {};
+  Services.scriptloader.loadSubScript(
+    "chrome://torlauncher/content/network-settings-shared.js", ctxt);
+
+  let elementIDs =
+  [
+     "proxySettings",
+     "proxyHelpContent",
+     "bridgeSettings",
+     "bridgeHelpContent",
+     "progressContent",
+     "restartContent",
+     "bridgeDBRequestOverlayContent",
+     "errorOverlayContent",
+     "copyLogFeedbackPanel",
+  ];
+
+  let entityURLs = ["chrome://torlauncher/locale/network-settings.dtd"];
+  elementIDs.forEach(aID =>
+  {
+    let node = document.getElementById(aID);
+    if (node)
+    {
+      let xulStr = ctxt[aID];
+      let frag = window.MozXULElement.parseXULToFragment(xulStr, entityURLs);
+      node.parentNode.replaceChild(frag, node);
+    }
+  });
+}
+
+
 function resizeDialogToFitContent()
 {
   // Resize this window to fit content.  sizeToContent() alone will not do
diff --git a/src/chrome/content/network-settings.xul b/src/chrome/content/network-settings.xul
index 6f95183..2ba0741 100644
--- a/src/chrome/content/network-settings.xul
+++ b/src/chrome/content/network-settings.xul
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!--
-   - Copyright (c) 2018, The Tor Project, Inc.
+   - Copyright (c) 2019, The Tor Project, Inc.
    - See LICENSE for licensing information.
    - vim: set sw=2 sts=2 ts=8 et syntax=xml:
   -->
@@ -9,9 +9,7 @@
 <?xml-stylesheet href="chrome://torlauncher/skin/network-settings.css"
                  type="text/css"?>
 
-<!DOCTYPE overlay SYSTEM "chrome://torlauncher/locale/network-settings.dtd">
-
-<?xul-overlay href="chrome://torlauncher/content/network-settings-overlay.xul"?>
+<!DOCTYPE dialog SYSTEM "chrome://torlauncher/locale/network-settings.dtd">
 
 <dialog id="TorNetworkSettings"
         xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
@@ -41,7 +39,13 @@
                       groupboxID="firewallSpecificSettings"
                       label="&torsettings.firewall.checkbox;"
                       oncommand="toggleElemUI(this)"/>
-            <groupbox id="firewallSpecificSettings"/>
+            <groupbox id="firewallSpecificSettings">
+              <hbox align="center">
+                <label value="&torsettings.firewall.allowedPorts;"
+                       control="firewallAllowedPorts"/>
+                <textbox id="firewallAllowedPorts" value="80,443"/>
+              </hbox>
+            </groupbox>
           </vbox>
         </vbox>
 
@@ -60,8 +64,8 @@
         </vbox>
 
         <vbox id="helpPanel" class="help">
-          <vbox id="bridgeHelpContent" hidden="true"/>
-          <vbox id="proxyHelpContent" hidden="true"/>
+          <vbox id="bridgeHelpContent"/>
+          <vbox id="proxyHelpContent"/>
         </vbox>
 
         <vbox id="restartPanel" class="messagePanel" pack="center">





More information about the tor-commits mailing list