Index: content/browser/browsing_data/clear_site_data_throttle.cc |
diff --git a/content/browser/browsing_data/clear_site_data_throttle.cc b/content/browser/browsing_data/clear_site_data_throttle.cc |
index ca040a49e8e5ba8e435da0a734fd7b5f7e7994ce..788be8bf27e29fb9fb7e3a31de878cb155024551 100644 |
--- a/content/browser/browsing_data/clear_site_data_throttle.cc |
+++ b/content/browser/browsing_data/clear_site_data_throttle.cc |
@@ -8,6 +8,7 @@ |
#include "base/json/json_reader.h" |
#include "base/json/json_string_value_serializer.h" |
#include "base/memory/ptr_util.h" |
+#include "base/metrics/histogram.h" |
Ilya Sherman
2016/08/24 22:27:56
nit: Please #include histogram_macros instead.
msramek
2016/08/25 08:56:09
Done.
|
#include "base/strings/string_util.h" |
#include "base/strings/stringprintf.h" |
#include "base/values.h" |
@@ -50,6 +51,14 @@ bool AreExperimentalFeaturesEnabled() { |
switches::kEnableExperimentalWebPlatformFeatures); |
} |
+// Represents the parameters as a single number to be recorded in a histogram. |
+int ParametersMask( |
+ bool clear_cookies, bool clear_storage, bool clear_cache) { |
+ return static_cast<int>(clear_cookies) * (1 << 0) + |
+ static_cast<int>(clear_storage) * (1 << 1) + |
+ static_cast<int>(clear_cache) * (1 << 2); |
+} |
+ |
} // namespace |
// static |
@@ -138,6 +147,11 @@ void ClearSiteDataThrottle::HandleHeader() { |
return; |
} |
+ // Record the call parameters. |
+ UMA_HISTOGRAM_ENUMERATION( |
+ "Navigation.ClearSiteData.Parameters", |
+ ParametersMask(clear_cookies, clear_storage, clear_cache), (1 << 3)); |
+ |
// If the header is valid, clear the data for this browser context and origin. |
BrowserContext* browser_context = |
navigation_handle()->GetWebContents()->GetBrowserContext(); |
@@ -150,6 +164,7 @@ void ClearSiteDataThrottle::HandleHeader() { |
} |
clearing_in_progress_ = true; |
+ clearing_started_ = base::TimeTicks::Now(); |
GetContentClient()->browser()->ClearSiteData( |
browser_context, origin, clear_cookies, clear_storage, clear_cache, |
base::Bind(&ClearSiteDataThrottle::TaskFinished, |
@@ -256,6 +271,10 @@ bool ClearSiteDataThrottle::ParseHeader(const std::string& header, |
void ClearSiteDataThrottle::TaskFinished() { |
DCHECK(clearing_in_progress_); |
clearing_in_progress_ = false; |
+ |
+ UMA_HISTOGRAM_TIMES("Navigation.ClearSiteData.Duration", |
+ base::TimeTicks::Now() - clearing_started_); |
Ilya Sherman
2016/08/24 22:27:56
Do you have a guess for roughly how long a "typica
clamy
2016/08/24 23:15:01
IIUC, you're blocking the navigation during the ti
msramek
2016/08/25 08:56:09
Clearing browsing data *can* potentially take a lo
clamy
2016/08/25 17:53:47
The median Page Load Time on Android is 2.5s right
msramek
2016/08/25 18:39:44
I lowered it to 50 buckets per 1 second. That's 20
|
+ |
navigation_handle()->Resume(); |
} |