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

Unified Diff: chrome/renderer/plugins/plugin_uma.cc

Issue 13414007: Report disabled plugin in CreatePlugin. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: unittest updated Created 7 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/renderer/plugins/plugin_uma.cc
diff --git a/chrome/renderer/plugins/plugin_uma.cc b/chrome/renderer/plugins/plugin_uma.cc
index 5f1bec1a5e72d005f23e639a14549dbebc553817..22a6f5a8678e14c52ef0312d4a9b569bd3f57fdd 100644
--- a/chrome/renderer/plugins/plugin_uma.cc
+++ b/chrome/renderer/plugins/plugin_uma.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Copyright (c) 2013 The Chromium Authors. All rights reserved.
ddorwin 2013/04/04 19:09:50 same
xhwang 2013/04/04 23:10:33 Done.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -12,7 +12,7 @@
namespace {
-// String we will use to convert mime tyoe to plugin type.
+// String we will use to convert mime type to plugin type.
const char kWindowsMediaPlayerType[] = "application/x-mplayer2";
const char kSilverlightTypePrefix[] = "application/x-silverlight";
const char kRealPlayerTypePrefix[] = "audio/x-pn-realaudio";
@@ -45,62 +45,68 @@ const char* kQuickTimeExtensions[] = {
} // namespace.
-class UMASenderImpl : public MissingPluginReporter::UMASender {
- virtual void SendPluginUMA(MissingPluginReporter::PluginType plugin_type)
- OVERRIDE;
+class UMASenderImpl : public PluginUMAReporter::UMASender {
+ virtual void SendPluginUMA(
+ PluginUMAReporter::ReportType report_type,
+ PluginUMAReporter::PluginType plugin_type) OVERRIDE;
};
-void UMASenderImpl::SendPluginUMA(
- MissingPluginReporter::PluginType plugin_type) {
- UMA_HISTOGRAM_ENUMERATION("Plugin.MissingPlugins",
- plugin_type,
- MissingPluginReporter::OTHER);
+void UMASenderImpl::SendPluginUMA(PluginUMAReporter::ReportType report_type,
+ PluginUMAReporter::PluginType plugin_type) {
+ // UMA_HISTOGRAM_ENUMERATION requires constant histogram name. Use string
+ // constants explicitly instead of trying to use variables for names.
+ switch (report_type) {
+ case PluginUMAReporter::MISSING_PLUGIN:
+ UMA_HISTOGRAM_ENUMERATION("Plugin.MissingPlugins",
+ plugin_type,
+ PluginUMAReporter::OTHER);
+ break;
+ case PluginUMAReporter::DISABLED_PLUGIN:
+ UMA_HISTOGRAM_ENUMERATION("Plugin.DisabledPlugins",
+ plugin_type,
+ PluginUMAReporter::OTHER);
+ break;
+ default:
+ NOTREACHED();
+ }
}
// static.
-MissingPluginReporter* MissingPluginReporter::GetInstance() {
- return Singleton<MissingPluginReporter>::get();
+PluginUMAReporter* PluginUMAReporter::GetInstance() {
+ return Singleton<PluginUMAReporter>::get();
}
-void MissingPluginReporter::ReportPluginMissing(
- std::string plugin_mime_type, const GURL& plugin_src) {
- PluginType plugin_type;
- // If we know plugin's mime type, we use it to determine plugin's type. Else,
- // we try to determine plugin type using plugin source's extension.
- if (!plugin_mime_type.empty()) {
- StringToLowerASCII(&plugin_mime_type);
- plugin_type = MimeTypeToPluginType(plugin_mime_type);
- } else {
- plugin_type = SrcToPluginType(plugin_src);
- }
- report_sender_->SendPluginUMA(plugin_type);
+void PluginUMAReporter::ReportPluginMissing(
+ const std::string& plugin_mime_type, const GURL& plugin_src) {
+ report_sender_->SendPluginUMA(MISSING_PLUGIN,
+ GetPluginType(plugin_mime_type, plugin_src));
}
-void MissingPluginReporter::SetUMASender(UMASender* sender) {
- report_sender_.reset(sender);
+void PluginUMAReporter::ReportPluginDisabled(
+ const std::string& plugin_mime_type, const GURL& plugin_src) {
+ report_sender_->SendPluginUMA(DISABLED_PLUGIN,
+ GetPluginType(plugin_mime_type, plugin_src));
}
-MissingPluginReporter::MissingPluginReporter()
- : report_sender_(new UMASenderImpl()) {
+PluginUMAReporter::PluginUMAReporter() : report_sender_(new UMASenderImpl()) {
}
-MissingPluginReporter::~MissingPluginReporter() {
+PluginUMAReporter::~PluginUMAReporter() {
}
// static.
-bool MissingPluginReporter::CompareCStrings(const char* first,
- const char* second) {
+bool PluginUMAReporter::CompareCStrings(const char* first, const char* second) {
return strcmp(first, second) < 0;
}
-bool MissingPluginReporter::CStringArrayContainsCString(const char** array,
- size_t array_size,
- const char* str) {
+bool PluginUMAReporter::CStringArrayContainsCString(const char** array,
+ size_t array_size,
+ const char* str) {
return std::binary_search(array, array + array_size, str, CompareCStrings);
}
-void MissingPluginReporter::ExtractFileExtension(const GURL& src,
- std::string* extension) {
+void PluginUMAReporter::ExtractFileExtension(const GURL& src,
+ std::string* extension) {
std::string extension_file_path(src.ExtractFileName());
if (extension_file_path.empty())
extension_file_path = src.host();
@@ -115,7 +121,17 @@ void MissingPluginReporter::ExtractFileExtension(const GURL& src,
StringToLowerASCII(extension);
}
-MissingPluginReporter::PluginType MissingPluginReporter::SrcToPluginType(
+PluginUMAReporter::PluginType PluginUMAReporter::GetPluginType(
+ const std::string& plugin_mime_type, const GURL& plugin_src) {
+ // If we know plugin's mime type, we use it to determine plugin's type. Else,
+ // we try to determine plugin type using plugin source's extension.
+ if (!plugin_mime_type.empty())
+ return MimeTypeToPluginType(StringToLowerASCII(plugin_mime_type));
+
+ return SrcToPluginType(plugin_src);
+}
+
+PluginUMAReporter::PluginType PluginUMAReporter::SrcToPluginType(
const GURL& src) {
std::string file_extension;
ExtractFileExtension(src, &file_extension);
@@ -140,7 +156,7 @@ MissingPluginReporter::PluginType MissingPluginReporter::SrcToPluginType(
return OTHER;
}
-MissingPluginReporter::PluginType MissingPluginReporter::MimeTypeToPluginType(
+PluginUMAReporter::PluginType PluginUMAReporter::MimeTypeToPluginType(
const std::string& mime_type) {
if (strcmp(mime_type.c_str(), kWindowsMediaPlayerType) == 0)
return WINDOWS_MEDIA_PLAYER;
@@ -161,4 +177,3 @@ MissingPluginReporter::PluginType MissingPluginReporter::MimeTypeToPluginType(
return OTHER;
}
-

Powered by Google App Engine
This is Rietveld 408576698