Commit b755ea5e authored by Xinghui Lu's avatar Xinghui Lu Committed by Commit Bot

Add SafeBrowsing.BrowserThrottle.* metrics

The Safe Browsing check blocks the URL loader when the URL loader
starts to process the response. We'd like to know how often that happens
and how long does the Safe Browsing check block the URL loader.

Metrics added in this CL:
SafeBrowsing.BrowserThrottle.IsCheckCompletedOnProcessResponse
SafeBrowsing.BrowserThrottle.TotalDelay

Bug: 1144265
Change-Id: I7a14548170458e04fe9452647b347a84780819b7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2510742
Commit-Queue: Xinghui Lu <xinghuilu@chromium.org>
Reviewed-by: default avatarVarun Khaneja <vakh@chromium.org>
Reviewed-by: default avatarWeilun Shi <sweilun@chromium.org>
Reviewed-by: default avatarIlya Sherman <isherman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#823448}
parent 85213781
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
#include "base/bind.h" #include "base/bind.h"
#include "base/check_op.h" #include "base/check_op.h"
#include "base/memory/ptr_util.h" #include "base/memory/ptr_util.h"
#include "base/metrics/histogram_functions.h"
#include "base/trace_event/trace_event.h" #include "base/trace_event/trace_event.h"
#include "components/safe_browsing/core/browser/safe_browsing_url_checker_impl.h" #include "components/safe_browsing/core/browser/safe_browsing_url_checker_impl.h"
#include "components/safe_browsing/core/browser/url_checker_delegate.h" #include "components/safe_browsing/core/browser/url_checker_delegate.h"
...@@ -251,7 +252,12 @@ void BrowserURLLoaderThrottle::WillProcessResponse( ...@@ -251,7 +252,12 @@ void BrowserURLLoaderThrottle::WillProcessResponse(
return; return;
} }
if (pending_checks_ == 0) bool check_completed = (pending_checks_ == 0);
base::UmaHistogramBoolean(
"SafeBrowsing.BrowserThrottle.IsCheckCompletedOnProcessResponse",
check_completed);
if (check_completed)
return; return;
DCHECK(!deferred_); DCHECK(!deferred_);
...@@ -289,6 +295,8 @@ void BrowserURLLoaderThrottle::OnCompleteCheck(bool slow_check, ...@@ -289,6 +295,8 @@ void BrowserURLLoaderThrottle::OnCompleteCheck(bool slow_check,
if (pending_checks_ == 0 && deferred_) { if (pending_checks_ == 0 && deferred_) {
deferred_ = false; deferred_ = false;
TRACE_EVENT_ASYNC_END0("safe_browsing", "Deferred", this); TRACE_EVENT_ASYNC_END0("safe_browsing", "Deferred", this);
base::UmaHistogramTimes("SafeBrowsing.BrowserThrottle.TotalDelay",
total_delay_);
delegate_->Resume(); delegate_->Resume();
} }
} else { } else {
......
...@@ -80,6 +80,31 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. ...@@ -80,6 +80,31 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</summary> </summary>
</histogram> </histogram>
<histogram
name="SafeBrowsing.BrowserThrottle.IsCheckCompletedOnProcessResponse"
enum="BooleanCompleted" expires_after="2021-10-30">
<owner>xinghuilu@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
Logs whether the Safe Browsing check is completed when the URL loader starts
to process a response. If not, the URL loader will be deferred until the
Safe Browsing check is completed. Logs each time the URL loader dispatches
WillProcessResponse() and the Safe Browsing check doesn't block the URL.
</summary>
</histogram>
<histogram name="SafeBrowsing.BrowserThrottle.TotalDelay" units="ms"
expires_after="2021-10-30">
<owner>xinghuilu@chromium.org</owner>
<owner>chrome-safebrowsing-alerts@google.com</owner>
<summary>
Logs the latency between when the URL loader was deferred by Safe Browsing
check and when the check is completed. Logs each time the URL loader was
deferred by Safe Browsing check and the Safe Browsing check doesn't block
the URL.
</summary>
</histogram>
<histogram name="SafeBrowsing.CheckBrowseUrl.HasLocalMatch" <histogram name="SafeBrowsing.CheckBrowseUrl.HasLocalMatch"
enum="BooleanMatched" expires_after="2021-08-05"> enum="BooleanMatched" expires_after="2021-08-05">
<owner>vakh@chromium.org</owner> <owner>vakh@chromium.org</owner>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment