[Pkg-privacy-commits] [xul-ext-monkeysphere] 87/296: Separate site checking from status updating.

Ximin Luo infinity0 at moszumanska.debian.org
Mon Aug 24 07:39:28 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 b68f4f2487ed88e188172c69d755026c263817ae
Author: Jameson Rollins <jrollins at finestructure.net>
Date:   Wed Feb 17 00:54:31 2010 -0500

    Separate site checking from status updating.
    
    Integrate most of updateStatus function directly into onSecurityChange
    function for tabProgressListener.  This logically separates the site
    monkeysphere checking from the status bar updating.  Then added an
    onLocationChange progressListener for status changes.
    
    Unfortunately we still don't have any suggestions for how to update
    the status without implementing some sort of cache.
---
 chrome/content/monkeysphere.js | 141 +++++++++++++++++++----------------------
 1 file changed, 66 insertions(+), 75 deletions(-)

diff --git a/chrome/content/monkeysphere.js b/chrome/content/monkeysphere.js
index 93c4d46..e7572f3 100644
--- a/chrome/content/monkeysphere.js
+++ b/chrome/content/monkeysphere.js
@@ -90,94 +90,97 @@ var monkeysphere = {
     monkeysphere.setStatus();
     monkeysphere.messages = document.getElementById("message_strings");
     monkeysphere.log("creating listener");
+    gBrowser.addProgressListener(monkeysphere.progressListener);
     gBrowser.addTabsProgressListener(monkeysphere.tabProgressListener);
     monkeysphere.log("---- initialization complete ----");
   },
 
 ////////////////////////////////////////////////////////////
-// EVENT LISTENER
+// LISTENERS
 ////////////////////////////////////////////////////////////
 
   // https://developer.mozilla.org/en/nsIWebProgressListener
+
   // https://developer.mozilla.org/en/Listening_to_events_on_all_tabs
   tabProgressListener: {
     onSecurityChange: function(aBrowser, aWebProgress, aRequest, aState) {
       monkeysphere.log("++++ security change: " + aBrowser.currentURI.host + " : " + aState);
-      monkeysphere.updateStatus(aBrowser, aState);
-      return;
-    }
-  },
-
-////////////////////////////////////////////////////////////
-// STATUS FUNCTION
-////////////////////////////////////////////////////////////
-
-  ////////////////////////////////////////////////////////////
-  // Updates the status of the current page
-  updateStatus: function(browser, state) {
 
-    monkeysphere.log("==== updating status ====");
+      ////////////////////////////////////////
+      // check uri
+      try {
+	var uri = aBrowser.currentURI;
+      } catch(e) {
+	monkeysphere.log("no uri data available.");
+	return;
+      }
 
-    try {
-      var uri = browser.currentURI;
-    } catch(e) {
-      monkeysphere.log("no uri data available.");
-      monkeysphere.setStatus();
-      return;
-    }
+      ////////////////////////////////////////
+      // check host
+      if(!uri.host) {
+	monkeysphere.log("host empty.");
+	return;
+      }
 
-    ////////////////////////////////////////
-    // check host
-    try {
-      var host = uri.host;
-    } catch(e) {
-      monkeysphere.log("host empty.");
-      monkeysphere.setStatus();
-      return;
-    }
+      ////////////////////////////////////////
+      // test for https
+      if(uri.scheme != "https") {
+	monkeysphere.log("scheme not https.");
+	return;
+      }
 
-    ////////////////////////////////////////
-    // test for https
-    if(uri.scheme != "https") {
-      monkeysphere.log("uri scheme: " + uri.scheme + ".");
-      monkeysphere.setStatus();
-      return;
-    }
+      ////////////////////////////////////////
+      // check browser state
+      monkeysphere.log("checking security state: " + aState);
+      // if site secure...
+      if(aState & Components.interfaces.nsIWebProgressListener.STATE_IS_SECURE) {
+	monkeysphere.log("  site cert already trusted by browser.");
+	return;
 
-    ////////////////////////////////////////
-    // check browser state
-    monkeysphere.log("checking security state: " + state);
-    // if site secure...
-    if(state & Components.interfaces.nsIWebProgressListener.STATE_IS_SECURE) {
-      monkeysphere.log("  site cert already trusted by browser.");
-      monkeysphere.setStatus();
-      return;
+      // if site insecure continue
+      } else if(aState & Components.interfaces.nsIWebProgressListener.STATE_IS_INSECURE) {
+	monkeysphere.log("  site is INSECURE");
 
-    // if site insecure continue
-    } else if(state & Components.interfaces.nsIWebProgressListener.STATE_IS_INSECURE) {
-      monkeysphere.log("  site is INSECURE");
+      // else if unknown state continue
+      } else {
+	monkeysphere.log("  site state is unknown");
+      }
 
-    // else if unknown state continue
-    } else {
-      monkeysphere.log("  site state is unknown");
-    }
+      ////////////////////////////////////////
+      // get site certificate
+      monkeysphere.log("retrieving site certificate:");
+      var cert = monkeysphere.getCertificate(uri);
 
-    ////////////////////////////////////////
-    // get site certificate
-    monkeysphere.log("retrieving site certificate:");
-    var cert = monkeysphere.getCertificate(uri);
-    if(!cert) {
-      monkeysphere.setStatus(monkeysphere.states.ERROR,
-			     monkeysphere.messages.getFormattedString("statusNoCert", [host]));
+      ////////////////////////////////////////
+      // finally go ahead and query the agent
+      monkeysphere.log("query agent");
+      monkeysphere.queryAgent(aBrowser, cert);
       return;
     }
+  },
 
-    ////////////////////////////////////////
-    // finally go ahead and query the agent
-    monkeysphere.log("query agent");
-    monkeysphere.queryAgent(browser, cert);
+  progressListener: {
+    onLocationChange: function(aWebProgress, aRequest, aLocation) {
+      monkeysphere.log("++++ location change: " + aLocation.host);
+
+      // set status
+      // FIXME: based on what?  how to cache monkeysphere status?
+      // monkeysphere.setStatus();
+      // monkeysphere.setStatus(monkeysphere.states.PROGRESS,
+      // 			     monkeysphere.messages.getString("statusInProgress"));
+      // monkeysphere.setStatus(monkeysphere.states.VALID,
+      // 			     "Monkeysphere: " + response.message);
+      // monkeysphere.setStatus(monkeysphere.states.NOTVALID,
+      // 			     "Monkeysphere: " + response.message);
+      // monkeysphere.setStatus(monkeysphere.states.ERROR,
+      // 			     monkeysphere.messages.getString("agentError"));
+    }
   },
 
+////////////////////////////////////////////////////////////
+// STATUS FUNCTION
+////////////////////////////////////////////////////////////
+
   ////////////////////////////////////////////////////////////
   // set the status
   setStatus: function(state, message) {
@@ -243,10 +246,6 @@ var monkeysphere = {
 
     var host = browser.currentURI.host;
 
-    // set status that query in progress
-    monkeysphere.setStatus(monkeysphere.states.PROGRESS,
-			   monkeysphere.messages.getString("statusInProgress"));
-
     // get certificate info
     var cert_length = {};
     var dummy = {};
@@ -313,23 +312,15 @@ var monkeysphere = {
 	  // set security override
 	  monkeysphere.securityOverride(uri, cert);
 
-	  // set state valid
-	  monkeysphere.setStatus(monkeysphere.states.VALID,
-				 "Monkeysphere: " + response.message);
-
 	  // reload
 	  monkeysphere.log("reloading browser...");
 	  browser.webNavigation.reload(nsIWebNavigation.LOAD_FLAGS_NONE);
 
         } else {
           monkeysphere.log("site not verified.");
-	  monkeysphere.setStatus(monkeysphere.states.NOTVALID,
-				 "Monkeysphere: " + response.message);
         }
       } else {
 	monkeysphere.log("validation agent did not respond");
-	monkeysphere.setStatus(monkeysphere.states.ERROR,
-			       monkeysphere.messages.getString("agentError"));
 	alert(monkeysphere.messages.getString("agentError"));
       }
     }

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