diff options
author | jochen <jochen@chromium.org> | 2015-01-16 03:35:27 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-01-16 11:36:50 +0000 |
commit | 65227537ee90696ad5f44d5b5be020ca7fb9094b (patch) | |
tree | 7d62cec196206713c5dcf48a7336c7675288952b | |
parent | 71254eee580764979cfeffaef4e57a00ccf171af (diff) | |
download | chromium_src-65227537ee90696ad5f44d5b5be020ca7fb9094b.zip chromium_src-65227537ee90696ad5f44d5b5be020ca7fb9094b.tar.gz chromium_src-65227537ee90696ad5f44d5b5be020ca7fb9094b.tar.bz2 |
Clean up referrer policy violation logging
Don't bother to record referrers send to non-HTTP URLs.
Also move the DumpWithoutCrashing call to the IO thread, so we
immediately see the stack dump
BUG=422871
R=mkwst@chromium.org
Review URL: https://codereview.chromium.org/834143003
Cr-Commit-Position: refs/heads/master@{#311867}
-rw-r--r-- | chrome/browser/net/chrome_network_delegate.cc | 34 |
1 files changed, 13 insertions, 21 deletions
diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/chrome_network_delegate.cc index 0d08a7c..36004d2 100644 --- a/chrome/browser/net/chrome_network_delegate.cc +++ b/chrome/browser/net/chrome_network_delegate.cc @@ -130,26 +130,21 @@ void RecordPrecacheStatsOnUIThread(const GURL& url, } #endif // defined(OS_ANDROID) -void ReportInvalidReferrerSend(const GURL& target_url, - const GURL& referrer_url, - const base::debug::StackTrace& callstack) { - // Record information to help debug http://crbug.com/422871 - base::debug::StackTrace trace = callstack; - base::debug::Alias(&trace); - enum { INVALID_URL, FILE_URL, DATA_URL, HTTP_URL, OTHER } reason = OTHER; - if (!target_url.is_valid()) - reason = INVALID_URL; - else if (target_url.SchemeIsFile()) - reason = FILE_URL; - else if (target_url.SchemeIs(url::kDataScheme)) - reason = DATA_URL; - else if (target_url.SchemeIs(url::kHttpScheme)) - reason = HTTP_URL; - base::debug::Alias(&reason); +void ReportInvalidReferrerSendOnUI() { base::RecordAction( base::UserMetricsAction("Net.URLRequest_StartJob_InvalidReferrer")); +} + +void ReportInvalidReferrerSend(const GURL& target_url, + const GURL& referrer_url) { + // Record information to help debug http://crbug.com/422871 + if (!target_url.SchemeIsHTTPOrHTTPS()) + return; + BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, + base::Bind(&ReportInvalidReferrerSendOnUI)); base::debug::DumpWithoutCrashing(); - NOTREACHED(); + NOTREACHED() << "Sending request to " << target_url + << " with invalid referrer " << referrer_url; } // Record network errors that HTTP requests complete with, including OK and @@ -627,9 +622,6 @@ bool ChromeNetworkDelegate::OnCancelURLRequestWithPolicyViolatingReferrerHeader( const net::URLRequest& request, const GURL& target_url, const GURL& referrer_url) const { - base::debug::StackTrace callstack; - BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, - base::Bind(&ReportInvalidReferrerSend, target_url, - referrer_url, callstack)); + ReportInvalidReferrerSend(target_url, referrer_url); return true; } |