[Pkg-privacy-commits] [xul-ext-monkeysphere] 95/296: cleanup and separate uri checking

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 7d7fd6680c778a23dfc3037dca638c50595cad0b
Author: Jameson Rollins <jrollins at finestructure.net>
Date:   Wed Feb 17 17:08:55 2010 -0500

    cleanup and separate uri checking
    
    This also fixes the issue about switching to blank tabs that was
    caused by listener error for empty uris.
---
 chrome/content/monkeysphere.js | 75 ++++++++++++++++++++++++++++++------------
 1 file changed, 54 insertions(+), 21 deletions(-)

diff --git a/chrome/content/monkeysphere.js b/chrome/content/monkeysphere.js
index 9cc47a2..722e2c6 100644
--- a/chrome/content/monkeysphere.js
+++ b/chrome/content/monkeysphere.js
@@ -85,7 +85,7 @@ var monkeysphere = {
   // https://developer.mozilla.org/en/nsIWebProgressListener
   progressListener: {
     onLocationChange: function(aWebProgress, aRequest, aLocation) {
-      monkeysphere.log("++++ location change: " + aLocation.host);
+      monkeysphere.log("++++ location change: ");
       monkeysphere.updateStatus(aLocation);
     },
 
@@ -98,7 +98,7 @@ var monkeysphere = {
   // 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.log("++++ security change: ");
       monkeysphere.checkSite(aBrowser, aState);
     },
 
@@ -112,30 +112,49 @@ var monkeysphere = {
 // MAIN SITE CHECK FUNCTION
 ////////////////////////////////////////////////////////////
 
-  checkSite: function(browser, state) {
+  //////////////////////////////////////////
+  // check uri is relevant to monkeysphere
+  isRelevantURI: function(uri) {
     ////////////////////////////////////////
-    // check uri
+    // check host
     try {
-      var uri = browser.currentURI;
+      var host = uri.host;
     } catch(e) {
-      monkeysphere.log("no uri data available.");
-      return;
+      monkeysphere.log("host data empty.");
+      return null;
     }
 
     ////////////////////////////////////////
-    // check host
-    if(!uri.host) {
-      monkeysphere.log("host empty.");
-      return;
+    // check scheme
+    try {
+      var scheme = uri.scheme;
+    } catch(e) {
+      monkeysphere.log("scheme data empty.");
+      return null;
     }
 
+    monkeysphere.log("uri: " + uri.asciiSpec);
+
     ////////////////////////////////////////
     // test for https
-    if(uri.scheme != "https") {
+    if(scheme != "https") {
       monkeysphere.log("scheme not https.");
-      return;
+      return null;
     }
 
+    // else, if uri looks ok, continue
+    return true;
+  },
+
+  //////////////////////////////////////////
+  // check site monkeysphere status
+  checkSite: function(browser, state) {
+    var uri = browser.currentURI;
+
+    // if uri not relevant, return
+    if(!monkeysphere.isRelevantURI(uri))
+      return;
+
     ////////////////////////////////////////
     // check browser state
     monkeysphere.log("checking security state: " + state);
@@ -171,12 +190,21 @@ var monkeysphere = {
   ////////////////////////////////////////////////////////////
   // update status
   updateStatus: function(uri) {
-    if(monkeysphere.cache.isSet(uri)) {
-    monkeysphere.setStatus(monkeysphere.cache.state(uri),
-			   monkeysphere.cache.message(uri));
-    } else {
+    // return if uri not relevant
+    if(!monkeysphere.isRelevantURI(uri)) {
+      monkeysphere.setStatus();
+      return;
+    }
+
+    // clear status and return if no cache for this site
+    if(!monkeysphere.cache.isSet(uri)) {
       monkeysphere.setStatus();
+      return;
     }
+
+    // otherwise, set the status from the cache
+    monkeysphere.setStatus(monkeysphere.cache.state(uri),
+			   monkeysphere.cache.message(uri));
   },
 
   ////////////////////////////////////////////////////////////
@@ -212,7 +240,7 @@ var monkeysphere = {
         panel.hidden = false;
 	break;
       case monkeysphere.states.NEUTRAL:
-        monkeysphere.log("clearing status (NEUTRAL).");
+        monkeysphere.log("set status: NEUTRAL.");
         icon.setAttribute("src", "");
         panel.hidden = true;
         break;
@@ -224,8 +252,9 @@ var monkeysphere = {
         panel.hidden = false;
         break;
     }
+
     if(message) {
-      monkeysphere.log("set message: " + message);
+      monkeysphere.log("\tmessage: " + message);
       panel.setAttribute("tooltiptext", message);
     }
   },
@@ -252,6 +281,9 @@ var monkeysphere = {
     set: function(uri, state, cert, message) {
       var uid = monkeysphere.uid(uri);
       monkeysphere.log("set cache: " + uid);
+      monkeysphere.log("\tstate: " + state);
+      monkeysphere.log("\tcert: " + cert.sha1Fingerprint);
+      monkeysphere.log("\tmessage: " + message);
       if(!monkeysphere.cache.array[uid])
 	monkeysphere.cache.array[uid] = {};
       monkeysphere.cache.array[uid].state = state;
@@ -372,13 +404,14 @@ var monkeysphere = {
 
     if (client.readyState == 4) {
       if (client.status == 200) {
+
 	var response = JSON.parse(client.responseText);
-	monkeysphere.log("validation agent response:");
-	monkeysphere.log("  message: " + response.message);
+
         if (response.valid) {
 
 	  // VALID!
 	  monkeysphere.log("SITE VERIFIED!");
+	  monkeysphere.log("response message: " + response.message);
 	  monkeysphere.cache.set(uri, monkeysphere.states.VALID, cert, response.message);
 
 	  // set security override

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