[Pkg-privacy-commits] [xul-ext-monkeysphere] 98/296: get validation agent URL from environment

Ximin Luo infinity0 at moszumanska.debian.org
Mon Aug 24 07:39:29 UTC 2015


This is an automated email from the git hooks/post-receive script.

infinity0 pushed a commit to branch debian
in repository xul-ext-monkeysphere.

commit 871d6f407ce75789129e10c98a89931567919b8d
Author: Jameson Rollins <jrollins at finestructure.net>
Date:   Fri Feb 19 18:35:42 2010 -0500

    get validation agent URL from environment
    
    The extension now retrieves the agent url from the
    MONKEYSPHERE_VALIDATION_AGENT_URL environment variable.  The init also
    checks if the variable is defined and throws an error and doesn't load
    the listeners if it's not.  Maybe some more sophisticated checks are
    in order here?
---
 TODO                           |  1 +
 chrome/content/monkeysphere.js | 55 ++++++++++++++++++++++++++++++------------
 2 files changed, 41 insertions(+), 15 deletions(-)

diff --git a/TODO b/TODO
index 7246996..a77975e 100644
--- a/TODO
+++ b/TODO
@@ -5,3 +5,4 @@
   - cert validity in certificate view dialog for site
 - status menu item clear temporary cert override for site
 - status menu item to view site cert
+- fix documentation
diff --git a/chrome/content/monkeysphere.js b/chrome/content/monkeysphere.js
index 0db3a00..b0f22be 100644
--- a/chrome/content/monkeysphere.js
+++ b/chrome/content/monkeysphere.js
@@ -26,6 +26,10 @@ var monkeysphere = {
     NOTVALID:   3  // processed and not validated
   },
 
+  // agent URL from environment variable
+  // "http://localhost:8901" <-- NO TRAILING SLASH
+  agent_url: [],
+
   // override service class
   // http://www.oxymoronical.com/experiments/xpcomref/applications/Firefox/3.5/interfaces/nsICertOverrideService
   override: Components.classes["@mozilla.org/security/certoverride;1"].getService(Components.interfaces.nsICertOverrideService),
@@ -70,11 +74,31 @@ var monkeysphere = {
   // initialization function
   init: function() {
     monkeysphere.log("---- begin initialization ----");
+
+    // clear status
     monkeysphere.setStatus();
+
+    // get localization messages
     monkeysphere.messages = document.getElementById("message_strings");
-    monkeysphere.log("creating listener");
+
+    // get the agent URL from the environment
+    // https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIEnvironment
+    monkeysphere.agent_url = Components.classes["@mozilla.org/process/environment;1"].getService(Components.interfaces.nsIEnvironment).get("MONKEYSPHERE_VALIDATION_AGENT_URL");
+    // return error if agent URL not set
+    if(!monkeysphere.agent_url) {
+      var message = "MONKEYSPHERE_VALIDATION_AGENT_URL environment variable not set.";
+      alert(message);
+      monkeysphere.setStatus(monkeysphere.states.ERROR, message);
+      return;
+    } else {
+      monkeysphere.log("agent url: " + monkeysphere.agent_url);
+    }
+
+    // create event listeners
+    monkeysphere.log("creating listeners");
     gBrowser.addProgressListener(monkeysphere.progressListener);
     gBrowser.addTabsProgressListener(monkeysphere.tabProgressListener);
+
     monkeysphere.log("---- initialization complete ----");
   },
 
@@ -179,10 +203,13 @@ var monkeysphere = {
 
     ////////////////////////////////////////
     // check site cert
+    // FIXME: what's the right checks to do here?
+    // FIXME: how do we make it so that one can reload the page if an agent error has been fixed
     if(monkeysphere.cache.isSet(uri)) {
-      if(monkeysphere.cache.cert(uri) == cert.sha1Fingerprint)
+      if(monkeysphere.cache.cert(uri) == cert.sha1Fingerprint) {
 	monkeysphere.log("site cached.");
 	return;
+      }
     }
 
     ////////////////////////////////////////
@@ -249,15 +276,13 @@ var monkeysphere = {
         panel.hidden = false;
 	break;
       case monkeysphere.states.NEUTRAL:
-        monkeysphere.log("set status: NEUTRAL.");
+        monkeysphere.log("set status: NEUTRAL");
         icon.setAttribute("src", "");
         panel.hidden = true;
         break;
       case monkeysphere.states.ERROR:
-        monkeysphere.log("set status: ERROR.");
+        monkeysphere.log("set status: ERROR");
         icon.setAttribute("src", "chrome://monkeysphere/content/error.png");
-        monkeysphere.log("set message: '" + message + "'");
-        panel.setAttribute("tooltiptext", message);
         panel.hidden = false;
         break;
     }
@@ -350,8 +375,7 @@ var monkeysphere = {
   queryAgent: function(browser, cert) {
     monkeysphere.log("#### querying validation agent ####");
 
-    var agent_url = "http://localhost:8901/reviewcert";
-    monkeysphere.log("agent_url: " + agent_url);
+    monkeysphere.log("agent_url: " + monkeysphere.agent_url);
 
     var uri = browser.currentURI;
     var host = uri.host;
@@ -380,9 +404,10 @@ var monkeysphere = {
     // make JSON query string
     var query = JSON.stringify(apd);
 
-    monkeysphere.log("creating http request to " + agent_url);
+    var request_url = monkeysphere.agent_url + "/reviewcert";
+    monkeysphere.log("creating http request to " + request_url);
     var client = new XMLHttpRequest();
-    client.open("POST", agent_url, true);
+    client.open("POST", request_url, true);
 
     // set headers
     client.setRequestHeader("Content-Type", "application/json");
@@ -433,15 +458,15 @@ var monkeysphere = {
 	  monkeysphere.cache.set(uri, monkeysphere.states.NOTVALID, cert, response.message);
         }
 
-	// reload page
-	monkeysphere.log("reloading browser...");
-	browser.webNavigation.reload(nsIWebNavigation.LOAD_FLAGS_NONE);
-
       } else {
 	monkeysphere.log("validation agent did not respond.");
-	alert(monkeysphere.messages.getString("agentError"));
+	//alert(monkeysphere.messages.getString("agentError"));
 	monkeysphere.cache.set(uri, monkeysphere.states.ERROR, cert, monkeysphere.messages.getString("agentError"));
       }
+
+      // reload page
+      monkeysphere.log("reloading browser...");
+      browser.webNavigation.reload(nsIWebNavigation.LOAD_FLAGS_NONE);
     }
   },
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-privacy/packages/xul-ext-monkeysphere.git



More information about the Pkg-privacy-commits mailing list