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

Unified Diff: chrome/renderer/plugin_uma.cc

Issue 8461011: Clean up plug-in placeholders: (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix Created 9 years, 1 month 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
« no previous file with comments | « chrome/renderer/plugin_uma.h ('k') | chrome/renderer/plugin_uma_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/renderer/plugin_uma.cc
diff --git a/chrome/renderer/plugin_uma.cc b/chrome/renderer/plugin_uma.cc
deleted file mode 100644
index ad215b74e00895d7db3cb6db02dd967f51fd5578..0000000000000000000000000000000000000000
--- a/chrome/renderer/plugin_uma.cc
+++ /dev/null
@@ -1,164 +0,0 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "chrome/renderer/plugin_uma.h"
-
-#include <algorithm>
-#include <cstring>
-
-#include "base/metrics/histogram.h"
-#include "base/string_util.h"
-
-namespace {
-
-// String we will use to convert mime tyoe to plugin type.
-const char kWindowsMediaPlayerType[] = "application/x-mplayer2";
-const char kSilverlightTypePrefix[] = "application/x-silverlight";
-const char kRealPlayerTypePrefix[] = "audio/x-pn-realaudio";
-const char kJavaTypeSubstring[] = "application/x-java-applet";
-const char kQuickTimeType[] = "video/quicktime";
-
-// Arrays containing file extensions connected with specific plugins.
-// The arrays must be sorted because binary search is used on them.
-const char* kWindowsMediaPlayerExtensions[] = {
- ".asx"
-};
-
-const char* kRealPlayerExtensions[] = {
- ".ra",
- ".ram",
- ".rm",
- ".rmm",
- ".rmp",
- ".rpm"
-};
-
-const char* kQuickTimeExtensions[] = {
- ".moov",
- ".mov",
- ".qif",
- ".qt",
- ".qti",
- ".qtif"
-};
-
-} // namespace.
-
-class UMASenderImpl : public MissingPluginReporter::UMASender {
- virtual void SendPluginUMA(MissingPluginReporter::PluginType plugin_type)
- OVERRIDE;
-};
-
-void UMASenderImpl::SendPluginUMA(
- MissingPluginReporter::PluginType plugin_type) {
- UMA_HISTOGRAM_ENUMERATION("Plugin.MissingPlugins",
- plugin_type,
- MissingPluginReporter::OTHER);
-}
-
-// static.
-MissingPluginReporter* MissingPluginReporter::GetInstance() {
- return Singleton<MissingPluginReporter>::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 MissingPluginReporter::SetUMASender(UMASender* sender) {
- report_sender_.reset(sender);
-}
-
-MissingPluginReporter::MissingPluginReporter()
- : report_sender_(new UMASenderImpl()) {
-}
-
-MissingPluginReporter::~MissingPluginReporter() {
-}
-
-// static.
-bool MissingPluginReporter::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) {
- return std::binary_search(array, array + array_size, str, CompareCStrings);
-}
-
-void MissingPluginReporter::ExtractFileExtension(const GURL& src,
- std::string* extension) {
- std::string extension_file_path(src.ExtractFileName());
- if (extension_file_path.empty())
- extension_file_path = src.host();
-
- size_t last_dot = extension_file_path.find_last_of('.');
- if (last_dot != std::string::npos) {
- *extension = extension_file_path.substr(last_dot);
- } else {
- extension->clear();
- }
-
- StringToLowerASCII(extension);
-}
-
-MissingPluginReporter::PluginType MissingPluginReporter::SrcToPluginType(
- const GURL& src) {
- std::string file_extension;
- ExtractFileExtension(src, &file_extension);
- if (CStringArrayContainsCString(kWindowsMediaPlayerExtensions,
- arraysize(kWindowsMediaPlayerExtensions),
- file_extension.c_str())) {
- return WINDOWS_MEDIA_PLAYER;
- }
-
- if (CStringArrayContainsCString(kQuickTimeExtensions,
- arraysize(kQuickTimeExtensions),
- file_extension.c_str())) {
- return QUICKTIME;
- }
-
- if (CStringArrayContainsCString(kRealPlayerExtensions,
- arraysize(kRealPlayerExtensions),
- file_extension.c_str())) {
- return REALPLAYER;
- }
-
- return OTHER;
-}
-
-MissingPluginReporter::PluginType MissingPluginReporter::MimeTypeToPluginType(
- const std::string& mime_type) {
- if (strcmp(mime_type.c_str(), kWindowsMediaPlayerType) == 0)
- return WINDOWS_MEDIA_PLAYER;
-
- size_t prefix_length = strlen(kSilverlightTypePrefix);
- if (strncmp(mime_type.c_str(), kSilverlightTypePrefix, prefix_length) == 0)
- return SILVERLIGHT;
-
- prefix_length = strlen(kRealPlayerTypePrefix);
- if (strncmp(mime_type.c_str(), kRealPlayerTypePrefix, prefix_length) == 0)
- return REALPLAYER;
-
- if (strstr(mime_type.c_str(), kJavaTypeSubstring))
- return JAVA;
-
- if (strcmp(mime_type.c_str(), kQuickTimeType) == 0)
- return QUICKTIME;
-
- return OTHER;
-}
-
« no previous file with comments | « chrome/renderer/plugin_uma.h ('k') | chrome/renderer/plugin_uma_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698