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

Unified Diff: chrome/browser/extensions/activity_log/uma_policy.cc

Issue 292313006: Improve activity log ad metrics (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 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: chrome/browser/extensions/activity_log/uma_policy.cc
diff --git a/chrome/browser/extensions/activity_log/uma_policy.cc b/chrome/browser/extensions/activity_log/uma_policy.cc
index 540ff7ddad95b9899f05109aa315e01fa0360704..9073591a29bc8ec3def56bad9ab444c44907ca28 100644
--- a/chrome/browser/extensions/activity_log/uma_policy.cc
+++ b/chrome/browser/extensions/activity_log/uma_policy.cc
@@ -17,7 +17,10 @@
#include "chrome/common/url_constants.h"
#include "content/public/browser/web_contents.h"
#include "content/public/common/url_constants.h"
+#include "extensions/browser/extension_registry.h"
#include "extensions/common/dom_action_types.h"
+#include "extensions/common/extension.h"
+#include "extensions/common/manifest.h"
namespace extensions {
@@ -194,7 +197,7 @@ void UmaPolicy::HistogramOnClose(const std::string& cleaned_url,
ActiveScriptController::GetForWebContents(web_contents);
SiteMap::iterator site_lookup = url_status_.find(cleaned_url);
const ExtensionMap& exts = site_lookup->second;
- std::vector<std::string> ad_injectors;
+ std::set<std::string> ad_injectors;
for (ExtensionMap::const_iterator ext_iter = exts.begin();
ext_iter != exts.end();
++ext_iter) {
@@ -205,12 +208,25 @@ void UmaPolicy::HistogramOnClose(const std::string& cleaned_url,
statuses[i-1]++;
}
- if ((ext_iter->second & kAnyAdActivity) && active_script_controller)
- ad_injectors.push_back(ext_iter->first);
+ if (ext_iter->second & kAnyAdActivity)
+ ad_injectors.insert(ext_iter->first);
}
if (active_script_controller)
active_script_controller->OnAdInjectionDetected(ad_injectors);
+ ExtensionRegistry* registry = ExtensionRegistry::Get(profile_);
+ for (std::set<std::string>::const_iterator iter = ad_injectors.begin();
+ iter != ad_injectors.end();
+ ++iter) {
+ const Extension* extension =
+ registry->GetExtensionById(*iter, ExtensionRegistry::EVERYTHING);
+ if (extension) {
+ UMA_HISTOGRAM_ENUMERATION("Extensions.AdInjection.InstallLocation",
+ extension->location(),
+ Manifest::NUM_LOCATIONS);
+ }
+ }
+
std::string prefix = "ExtensionActivity.";
if (GURL(cleaned_url).host() != "www.google.com") {
UMA_HISTOGRAM_COUNTS_100(prefix + GetHistogramName(CONTENT_SCRIPT),

Powered by Google App Engine
This is Rietveld 408576698