Chromium Code Reviews| Index: chrome/browser/net/chrome_network_delegate.cc |
| diff --git a/chrome/browser/net/chrome_network_delegate.cc b/chrome/browser/net/chrome_network_delegate.cc |
| index f2e1d77d84628e7642809bbd0ff29418e6745a83..194b5f85c30c4a978bf6f9010710b818fec7f277 100644 |
| --- a/chrome/browser/net/chrome_network_delegate.cc |
| +++ b/chrome/browser/net/chrome_network_delegate.cc |
| @@ -9,7 +9,9 @@ |
| #include <vector> |
| #include "base/base_paths.h" |
| +#include "base/debug/alias.h" |
| #include "base/debug/dump_without_crashing.h" |
| +#include "base/debug/stack_trace.h" |
| #include "base/debug/trace_event.h" |
| #include "base/logging.h" |
| #include "base/metrics/histogram.h" |
| @@ -227,7 +229,20 @@ void RecordIOThreadToRequestStartOnUIThread( |
| #endif // defined(OS_ANDROID) |
| void ReportInvalidReferrerSend(const GURL& target_url, |
| - const GURL& referrer_url) { |
| + const GURL& referrer_url, |
| + const base::debug::StackTrace& callstack) { |
|
mmenke
2014/11/10 15:14:29
Maybe add a comment with the bug ID?
|
| + 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); |
| base::RecordAction( |
| base::UserMetricsAction("Net.URLRequest_StartJob_InvalidReferrer")); |
| base::debug::DumpWithoutCrashing(); |
| @@ -792,8 +807,10 @@ 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)); |
| + base::Bind(&ReportInvalidReferrerSend, target_url, |
| + referrer_url, callstack)); |
| return true; |
| } |