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

Unified Diff: chrome/browser/subresource_filter/chrome_subresource_filter_client.cc

Issue 2777093007: [subresource_filter] Add metrics for UI / related things (Closed)
Patch Set: rkaplow review Created 3 years, 9 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/subresource_filter/chrome_subresource_filter_client.cc
diff --git a/chrome/browser/subresource_filter/chrome_subresource_filter_client.cc b/chrome/browser/subresource_filter/chrome_subresource_filter_client.cc
index be0df93b39eadbe8498fccd26223e02bb0d76d54..3498c6889d3581bb65645644fccfdf60ec095323 100644
--- a/chrome/browser/subresource_filter/chrome_subresource_filter_client.cc
+++ b/chrome/browser/subresource_filter/chrome_subresource_filter_client.cc
@@ -11,14 +11,17 @@
#include "chrome/browser/content_settings/tab_specific_content_settings.h"
#include "chrome/browser/infobars/infobar_service.h"
#include "chrome/browser/profiles/profile.h"
+#include "chrome/browser/subresource_filter/subresource_filter_content_settings_observer_factory.h"
#include "chrome/browser/ui/android/content_settings/subresource_filter_infobar_delegate.h"
#include "components/content_settings/core/browser/host_content_settings_map.h"
-#include "components/content_settings/core/common/content_settings.h"
ChromeSubresourceFilterClient::ChromeSubresourceFilterClient(
content::WebContents* web_contents)
: web_contents_(web_contents), shown_for_navigation_(false) {
DCHECK(web_contents);
+ // Ensure the content settings observer is initialized.
+ SubresourceFilterContentSettingsObserverFactory::EnsureForProfile(
+ Profile::FromBrowserContext(web_contents_->GetBrowserContext()));
}
ChromeSubresourceFilterClient::~ChromeSubresourceFilterClient() {}
@@ -27,8 +30,14 @@ void ChromeSubresourceFilterClient::ToggleNotificationVisibility(
bool visibility) {
if (shown_for_navigation_ && visibility)
return;
+
+ // |visibility| is false when a new navigation starts.
+ if (visibility)
+ LogAction(kActionUIShown);
+ else
+ LogAction(kActionNavigationStarted);
+
shown_for_navigation_ = visibility;
- UMA_HISTOGRAM_BOOLEAN("SubresourceFilter.Prompt.NumVisibility", visibility);
TabSpecificContentSettings* content_settings =
TabSpecificContentSettings::FromWebContents(web_contents_);
content_settings->SetSubresourceBlocked(visibility);
@@ -45,25 +54,38 @@ void ChromeSubresourceFilterClient::ToggleNotificationVisibility(
bool ChromeSubresourceFilterClient::IsWhitelistedByContentSettings(
const GURL& url) {
+ return GetContentSettingForUrl(url) == CONTENT_SETTING_BLOCK;
+}
+
+void ChromeSubresourceFilterClient::WhitelistByContentSettings(
+ const GURL& url) {
+ // Whitelist via content settings.
Profile* profile =
Profile::FromBrowserContext(web_contents_->GetBrowserContext());
DCHECK(profile);
HostContentSettingsMap* settings_map =
HostContentSettingsMapFactory::GetForProfile(profile);
- ContentSetting setting = settings_map->GetContentSetting(
+ settings_map->SetContentSettingDefaultScope(
url, url, ContentSettingsType::CONTENT_SETTINGS_TYPE_SUBRESOURCE_FILTER,
- std::string());
- return setting == CONTENT_SETTING_BLOCK;
+ std::string(), CONTENT_SETTING_BLOCK);
+
+ LogAction(kActionContentSettingsBlockedFromUI);
}
-void ChromeSubresourceFilterClient::WhitelistByContentSettings(
+// static
+void ChromeSubresourceFilterClient::LogAction(SubresourceFilterAction action) {
+ UMA_HISTOGRAM_ENUMERATION("SubresourceFilter.Actions", action,
+ kActionLastEntry);
+}
+
+ContentSetting ChromeSubresourceFilterClient::GetContentSettingForUrl(
const GURL& url) {
Profile* profile =
Profile::FromBrowserContext(web_contents_->GetBrowserContext());
DCHECK(profile);
HostContentSettingsMap* settings_map =
HostContentSettingsMapFactory::GetForProfile(profile);
- settings_map->SetContentSettingDefaultScope(
+ return settings_map->GetContentSetting(
url, url, ContentSettingsType::CONTENT_SETTINGS_TYPE_SUBRESOURCE_FILTER,
- std::string(), CONTENT_SETTING_BLOCK);
+ std::string());
}

Powered by Google App Engine
This is Rietveld 408576698