[tor-commits] [torbutton/master] Bug 3739: SafeCache policy fails for https->http CORS

mikeperry at torproject.org mikeperry at torproject.org
Sun Aug 21 00:43:44 UTC 2011


commit 349dcb1c5776936a37d21dfd70f9d0d2f1227513
Author: Mike Perry <mikeperry-git at fscked.org>
Date:   Sat Aug 20 17:42:20 2011 -0700

    Bug 3739: SafeCache policy fails for https->http CORS
    
    We use the cookie permissions api to get the origin URI. It can do some magic
    we can't do from XPCOM. Thanks to Georg Koppen for the tip!
---
 src/chrome/content/stanford-safecache.js |   15 +++++++++++----
 1 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/src/chrome/content/stanford-safecache.js b/src/chrome/content/stanford-safecache.js
index bf2fb16..0b08bda 100644
--- a/src/chrome/content/stanford-safecache.js
+++ b/src/chrome/content/stanford-safecache.js
@@ -55,6 +55,7 @@ function SSC_dump(msg) {
 
 function SSC_RequestListener(controller) {
   this.controller = controller;
+  this.cookie_permissions = Cc["@mozilla.org/cookie/permission;1"].getService(Ci.nsICookiePermission);
 }
 
 SSC_RequestListener.prototype =
@@ -119,10 +120,16 @@ SSC_RequestListener.prototype =
       parent_host = null;  // first party interaction
     } else if(!parent_host) {
       // Questionable first party interaction..
-      if (!channel.referrer) {
-        torbutton_safelog(3, "SSC: No parent for ", channel.URI.spec);
-      } else {
-        parent_host = channel.referrer.host;
+      try {
+        var anuri = this.cookie_permissions.getOriginatingURI(channel);
+        parent_host = anuri.host;
+      } catch(e) {
+        torbutton_safelog(2, "Cookie API failed to get parent: "+e,channel.URI.spec);
+        if (!channel.referrer) {
+          torbutton_safelog(3, "SSC: No parent for ", channel.URI.spec);
+        } else {
+          parent_host = channel.referrer.host;
+        }
       }
     }
 



More information about the tor-commits mailing list