Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(205)

Unified Diff: components/subresource_filter/content/browser/subframe_navigation_filtering_throttle.cc

Issue 2861053004: [subresource_filter] Add metrics for all NavigationThrottle delays (Closed)
Patch Set: microseconds Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/subresource_filter/content/browser/subframe_navigation_filtering_throttle.cc
diff --git a/components/subresource_filter/content/browser/subframe_navigation_filtering_throttle.cc b/components/subresource_filter/content/browser/subframe_navigation_filtering_throttle.cc
index 020b42f8bf4d5e85601f6447fe5b3c873804a383..ebb562e5278a6f19584c350ea235efd6285956b8 100644
--- a/components/subresource_filter/content/browser/subframe_navigation_filtering_throttle.cc
+++ b/components/subresource_filter/content/browser/subframe_navigation_filtering_throttle.cc
@@ -6,6 +6,8 @@
#include "base/bind.h"
#include "base/logging.h"
+#include "base/metrics/histogram_macros.h"
+#include "components/subresource_filter/core/common/time_measurements.h"
#include "content/public/browser/navigation_handle.h"
namespace subresource_filter {
@@ -20,7 +22,19 @@ SubframeNavigationFilteringThrottle::SubframeNavigationFilteringThrottle(
DCHECK(parent_frame_filter_);
}
-SubframeNavigationFilteringThrottle::~SubframeNavigationFilteringThrottle() {}
+SubframeNavigationFilteringThrottle::~SubframeNavigationFilteringThrottle() {
+ if (disallowed_) {
+ UMA_HISTOGRAM_CUSTOM_MICRO_TIMES(
+ "SubresourceFilter.DocumentLoad.SubframeFilteringDelay.Disallowed",
+ total_defer_time_, base::TimeDelta::FromMicroseconds(1),
+ base::TimeDelta::FromSeconds(10), 50);
+ } else {
+ UMA_HISTOGRAM_CUSTOM_MICRO_TIMES(
+ "SubresourceFilter.DocumentLoad.SubframeFilteringDelay.Allowed",
+ total_defer_time_, base::TimeDelta::FromMicroseconds(1),
+ base::TimeDelta::FromSeconds(10), 50);
+ }
+}
content::NavigationThrottle::ThrottleCheckResult
SubframeNavigationFilteringThrottle::WillStartRequest() {
@@ -42,14 +56,18 @@ SubframeNavigationFilteringThrottle::DeferToCalculateLoadPolicy() {
navigation_handle()->GetURL(),
base::Bind(&SubframeNavigationFilteringThrottle::OnCalculatedLoadPolicy,
weak_ptr_factory_.GetWeakPtr()));
+ last_defer_timestamp_ = base::TimeTicks::Now();
return content::NavigationThrottle::ThrottleCheckResult::DEFER;
}
void SubframeNavigationFilteringThrottle::OnCalculatedLoadPolicy(
LoadPolicy policy) {
+ DCHECK(!last_defer_timestamp_.is_null());
+ total_defer_time_ += base::TimeTicks::Now() - last_defer_timestamp_;
// TODO(csharrison): Support WouldDisallow pattern and expose the policy for
// metrics. Also, cancel with BLOCK_AND_COLLAPSE when it is implemented.
if (policy == LoadPolicy::DISALLOW) {
+ disallowed_ = true;
parent_frame_filter_->ReportDisallowedLoad();
navigation_handle()->CancelDeferredNavigation(
content::NavigationThrottle::CANCEL);

Powered by Google App Engine
This is Rietveld 408576698