| Index: components/subresource_filter/content/browser/subresource_filter_safe_browsing_activation_throttle.cc
|
| diff --git a/components/subresource_filter/content/browser/subresource_filter_safe_browsing_activation_throttle.cc b/components/subresource_filter/content/browser/subresource_filter_safe_browsing_activation_throttle.cc
|
| index 27c14506f56212c2ecb68add9a27b1a498cd77c5..4b9b3471e0bf1579f614dabc9c1a6dac9d5c4ddb 100644
|
| --- a/components/subresource_filter/content/browser/subresource_filter_safe_browsing_activation_throttle.cc
|
| +++ b/components/subresource_filter/content/browser/subresource_filter_safe_browsing_activation_throttle.cc
|
| @@ -82,11 +82,8 @@ SubresourceFilterSafeBrowsingActivationThrottle::WillRedirectRequest() {
|
|
|
| content::NavigationThrottle::ThrottleCheckResult
|
| SubresourceFilterSafeBrowsingActivationThrottle::WillProcessResponse() {
|
| - if (!database_client_)
|
| - return content::NavigationThrottle::PROCEED;
|
| -
|
| // No need to defer the navigation if the check already happened.
|
| - if (check_results_.back().finished) {
|
| + if (!database_client_ || check_results_.back().finished) {
|
| NotifyResult();
|
| return content::NavigationThrottle::ThrottleCheckResult::PROCEED;
|
| }
|
| @@ -132,14 +129,20 @@ void SubresourceFilterSafeBrowsingActivationThrottle::NotifyResult() {
|
|
|
| using subresource_filter::ContentSubresourceFilterDriverFactory;
|
|
|
| - const SubresourceFilterSafeBrowsingClient::CheckResult& result =
|
| - check_results_.back();
|
| ContentSubresourceFilterDriverFactory* driver_factory =
|
| ContentSubresourceFilterDriverFactory::FromWebContents(web_contents);
|
| DCHECK(driver_factory);
|
|
|
| - driver_factory->OnMainResourceMatchedSafeBrowsingBlacklist(
|
| - navigation_handle()->GetURL(), result.threat_type, result.pattern_type);
|
| + auto threat_type = safe_browsing::SBThreatType::SB_THREAT_TYPE_SAFE;
|
| + auto pattern_type = safe_browsing::ThreatPatternType::NONE;
|
| + if (database_client_) {
|
| + DCHECK(!check_results_.empty());
|
| + DCHECK(check_results_.back().finished);
|
| + threat_type = check_results_.back().threat_type;
|
| + pattern_type = check_results_.back().pattern_type;
|
| + }
|
| + driver_factory->OnSafeBrowsingMatchComputed(navigation_handle(), threat_type,
|
| + pattern_type);
|
|
|
| base::TimeDelta delay = defer_time_.is_null()
|
| ? base::TimeDelta::FromMilliseconds(0)
|
| @@ -150,7 +153,7 @@ void SubresourceFilterSafeBrowsingActivationThrottle::NotifyResult() {
|
| // speculatively checks URLs on WillStartRequest. This is only different from
|
| // the actual delay if there was at least one redirect.
|
| base::TimeDelta no_redirect_speculation_delay =
|
| - check_results_.size() > 1 ? result.check_time : delay;
|
| + check_results_.size() > 1 ? check_results_.back().check_time : delay;
|
| UMA_HISTOGRAM_TIMES(
|
| "SubresourceFilter.PageLoad.SafeBrowsingDelay.NoRedirectSpeculation",
|
| no_redirect_speculation_delay);
|
|
|