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), |