summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjochen <jochen@chromium.org>2015-01-16 03:35:27 -0800
committerCommit bot <commit-bot@chromium.org>2015-01-16 11:36:50 +0000
commit65227537ee90696ad5f44d5b5be020ca7fb9094b (patch)
tree7d62cec196206713c5dcf48a7336c7675288952b
parent71254eee580764979cfeffaef4e57a00ccf171af (diff)
downloadchromium_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.cc34
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;
}