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

Unified Diff: chrome/browser/permissions/permission_blacklist_client.cc

Issue 2651163002: Add UMA for autoblocking and embargoing. (Closed)
Patch Set: Review Created 3 years, 11 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: chrome/browser/permissions/permission_blacklist_client.cc
diff --git a/chrome/browser/permissions/permission_blacklist_client.cc b/chrome/browser/permissions/permission_blacklist_client.cc
index ef0be9b38574c4b4515a9923c5d5666b2d5ff6c4..de84c92ae287a9185f3c76d6d5516a7c277122e4 100644
--- a/chrome/browser/permissions/permission_blacklist_client.cc
+++ b/chrome/browser/permissions/permission_blacklist_client.cc
@@ -9,7 +9,9 @@
#include "base/logging.h"
#include "base/memory/ptr_util.h"
+#include "base/timer/elapsed_timer.h"
#include "base/timer/timer.h"
+#include "chrome/browser/permissions/permission_util.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/web_contents.h"
#include "url/gurl.h"
@@ -57,6 +59,7 @@ void PermissionBlacklistClient::StartCheck(const GURL& request_origin) {
// empty response if Safe Browsing times out.
safe_browsing::ThreatMetadata empty_metadata;
timer_ = base::MakeUnique<base::OneShotTimer>();
+ elapsed_timer_.reset(new base::ElapsedTimer());
timer_->Start(
FROM_HERE, base::TimeDelta::FromMilliseconds(timeout_),
base::Bind(&PermissionBlacklistClient::OnCheckApiBlacklistUrlResult, this,
@@ -69,17 +72,25 @@ void PermissionBlacklistClient::OnCheckApiBlacklistUrlResult(
const safe_browsing::ThreatMetadata& metadata) {
DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
- if (timer_->IsRunning())
+ base::TimeDelta response_time = elapsed_timer_->Elapsed();
+ SafeBrowsingResponse response = SafeBrowsingResponse::NOT_BLACKLISTED;
+
+ if (timer_->IsRunning()) {
timer_->Stop();
- else
+ } else {
db_manager_->CancelApiCheck(this);
- timer_.reset(nullptr);
+ response = SafeBrowsingResponse::TIMEOUT;
+ }
+ timer_.reset(nullptr);
bool permission_blocked =
metadata.api_permissions.find(
PermissionUtil::ConvertPermissionTypeToSafeBrowsingName(
permission_type_)) != metadata.api_permissions.end();
+ if (permission_blocked)
+ response = SafeBrowsingResponse::BLACKLISTED;
+ PermissionUmaUtil::RecordSafeBrowsingResponse(response_time, response);
content::BrowserThread::PostTask(
content::BrowserThread::UI, FROM_HERE,
base::Bind(&PermissionBlacklistClient::EvaluateBlacklistResultOnUiThread,
@@ -87,11 +98,11 @@ void PermissionBlacklistClient::OnCheckApiBlacklistUrlResult(
}
void PermissionBlacklistClient::EvaluateBlacklistResultOnUiThread(
- bool permission_blocked) {
+ bool response) {
DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
if (is_active_)
- callback_.Run(permission_blocked);
+ callback_.Run(response);
Release();
}

Powered by Google App Engine
This is Rietveld 408576698