[tor-commits] [tor-browser/tor-browser-24.7.0esr-3.x-1] fixup! API allows you to get the url bar URI for a channel or nsIDocument.

mikeperry at torproject.org mikeperry at torproject.org
Wed Aug 20 04:24:42 UTC 2014


commit 8751adf3f98016212a3aac2d5a12e59b2e425d5a
Author: Mike Perry <mikeperry-git at torproject.org>
Date:   Sat Aug 16 19:25:57 2014 -0700

    fixup! API allows you to get the url bar URI for a channel or nsIDocument.
    
    Log the URI of the source doc/channel that failed.
---
 content/base/src/ThirdPartyUtil.cpp |   14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/content/base/src/ThirdPartyUtil.cpp b/content/base/src/ThirdPartyUtil.cpp
index 55eb316..569201e 100644
--- a/content/base/src/ThirdPartyUtil.cpp
+++ b/content/base/src/ThirdPartyUtil.cpp
@@ -427,6 +427,7 @@ ThirdPartyUtil::GetFirstPartyURIInternal(nsIChannel *aChannel,
                                          nsIURI **aOutput)
 {
   nsresult rv = NS_ERROR_NULL_POINTER;
+  nsCOMPtr<nsIURI> srcURI;
 
   if (!aOutput)
     return rv;
@@ -441,6 +442,7 @@ ThirdPartyUtil::GetFirstPartyURIInternal(nsIChannel *aChannel,
   // for sure
   if (aChannel) {
     rv = GetOriginatingURI(aChannel, aOutput);
+    aChannel->GetURI(getter_AddRefs(srcURI));
     if (NS_SUCCEEDED(rv) && *aOutput) {
       // At this point, about: and chrome: URLs have been mapped to file: or
       // jar: URLs.  Try to recover the original URL.
@@ -467,6 +469,7 @@ ThirdPartyUtil::GetFirstPartyURIInternal(nsIChannel *aChannel,
     nsCOMPtr<nsIDOMWindow> top;
     nsCOMPtr<nsIDOMDocument> topDDoc;
     nsIURI *docURI = nullptr;
+    srcURI = aDoc->GetDocumentURI();
 
     if (aDoc->GetWindow()) {
       aDoc->GetWindow()->GetTop(getter_AddRefs(top));
@@ -505,14 +508,19 @@ ThirdPartyUtil::GetFirstPartyURIInternal(nsIChannel *aChannel,
                               (do_GetService(NS_CONSOLESERVICE_CONTRACTID));
     if (console) {
       nsCString spec;
+      nsCString srcSpec("unknown");
+
+      if (srcURI)
+        srcURI->GetSpec(srcSpec);
+
       if (*aOutput)
         (*aOutput)->GetSpec(spec);
       if (spec.Length() > 0) {
-        nsPrintfCString msg("getFirstPartyURI: no host in first party URI %s",
-                            spec.get()); // TODO: L10N
+        nsPrintfCString msg("getFirstPartyURI failed for %s: no host in first party URI %s",
+                            srcSpec.get(), spec.get()); // TODO: L10N
         console->LogStringMessage(NS_ConvertUTF8toUTF16(msg).get());
       } else {
-        nsPrintfCString msg("getFirstPartyURI failed: 0x%x", rv);
+        nsPrintfCString msg("getFirstPartyURI failed for %s: 0x%x", srcSpec.get(), rv);
         console->LogStringMessage(NS_ConvertUTF8toUTF16(msg).get());
       }
     }





More information about the tor-commits mailing list