Make WebPluginInfo more generic

- To account for pepper plugins, it grows a type field
- move WebPluginInfo from webkit::npapi to webkit:: and move the files as well.

This will allow us to remove hacks to get pepper plugins to load soon

BUG=89248
TEST=none
Review URL: http://codereview.chromium.org/7648017

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@96718 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/metrics/metrics_log.cc b/chrome/browser/metrics/metrics_log.cc
index c826923e..ce82634 100644
--- a/chrome/browser/metrics/metrics_log.cc
+++ b/chrome/browser/metrics/metrics_log.cc
@@ -26,7 +26,7 @@
 #include "chrome/common/pref_names.h"
 #include "content/browser/gpu/gpu_data_manager.h"
 #include "googleurl/src/gurl.h"
-#include "webkit/plugins/npapi/webplugininfo.h"
+#include "webkit/plugins/webplugininfo.h"
 
 #define OPEN_ELEMENT_FOR_SCOPE(name) ScopedElement scoped_element(this, name)
 
@@ -270,12 +270,12 @@
 }
 
 void MetricsLog::WritePluginList(
-    const std::vector<webkit::npapi::WebPluginInfo>& plugin_list) {
+    const std::vector<webkit::WebPluginInfo>& plugin_list) {
   DCHECK(!locked_);
 
   OPEN_ELEMENT_FOR_SCOPE("plugins");
 
-  for (std::vector<webkit::npapi::WebPluginInfo>::const_iterator iter =
+  for (std::vector<webkit::WebPluginInfo>::const_iterator iter =
            plugin_list.begin();
        iter != plugin_list.end(); ++iter) {
     OPEN_ELEMENT_FOR_SCOPE("plugin");
@@ -291,7 +291,7 @@
 #endif
     WriteAttribute("filename", CreateBase64Hash(filename_bytes));
     WriteAttribute("version", UTF16ToUTF8(iter->version));
-    WriteIntAttribute("disabled", !webkit::npapi::IsPluginEnabled(*iter));
+    WriteIntAttribute("disabled", !webkit::IsPluginEnabled(*iter));
   }
 }
 
@@ -302,7 +302,7 @@
 }
 
 void MetricsLog::RecordEnvironment(
-         const std::vector<webkit::npapi::WebPluginInfo>& plugin_list,
+         const std::vector<webkit::WebPluginInfo>& plugin_list,
          const DictionaryValue* profile_metrics) {
   DCHECK(!locked_);
 
diff --git a/chrome/browser/metrics/metrics_log.h b/chrome/browser/metrics/metrics_log.h
index 36f2ec5d5..fbab92e 100644
--- a/chrome/browser/metrics/metrics_log.h
+++ b/chrome/browser/metrics/metrics_log.h
@@ -22,10 +22,8 @@
 }
 
 namespace webkit {
-namespace npapi {
 struct WebPluginInfo;
 }
-}
 
 class MetricsLog : public MetricsLogBase {
  public:
@@ -44,7 +42,7 @@
   // that are to be recorded. Each value in profile_metrics should be a
   // dictionary giving the metrics for the profile.
   void RecordEnvironment(
-      const std::vector<webkit::npapi::WebPluginInfo>& plugin_list,
+      const std::vector<webkit::WebPluginInfo>& plugin_list,
       const base::DictionaryValue* profile_metrics);
 
   // Records the input text, available choices, and selected entry when the
@@ -92,7 +90,7 @@
 
   // Writes the list of installed plugins.
   void WritePluginList(
-      const std::vector<webkit::npapi::WebPluginInfo>& plugin_list);
+      const std::vector<webkit::WebPluginInfo>& plugin_list);
 
   // Within the profile group, write basic install info including appversion.
   void WriteInstallElement();
diff --git a/chrome/browser/metrics/metrics_service.cc b/chrome/browser/metrics/metrics_service.cc
index 281905b..aec969f7 100644
--- a/chrome/browser/metrics/metrics_service.cc
+++ b/chrome/browser/metrics/metrics_service.cc
@@ -191,7 +191,7 @@
 #include "content/common/child_process_info.h"
 #include "content/common/notification_service.h"
 #include "webkit/plugins/npapi/plugin_list.h"
-#include "webkit/plugins/npapi/webplugininfo.h"
+#include "webkit/plugins/webplugininfo.h"
 
 // TODO(port): port browser_distribution.h.
 #if !defined(OS_POSIX)
@@ -321,7 +321,7 @@
  public:
   explicit InitTaskComplete(
       const std::string& hardware_class,
-      const std::vector<webkit::npapi::WebPluginInfo>& plugins)
+      const std::vector<webkit::WebPluginInfo>& plugins)
       : hardware_class_(hardware_class), plugins_(plugins) {}
 
   virtual void Run() {
@@ -331,7 +331,7 @@
 
  private:
   std::string hardware_class_;
-  std::vector<webkit::npapi::WebPluginInfo> plugins_;
+  std::vector<webkit::WebPluginInfo> plugins_;
 };
 
 class MetricsService::InitTask : public Task {
@@ -340,7 +340,7 @@
       : callback_loop_(callback_loop) {}
 
   virtual void Run() {
-    std::vector<webkit::npapi::WebPluginInfo> plugins;
+    std::vector<webkit::WebPluginInfo> plugins;
     webkit::npapi::PluginList::Singleton()->GetPlugins(&plugins);
     std::string hardware_class;  // Empty string by default.
 #if defined(OS_CHROMEOS)
@@ -794,7 +794,7 @@
 
 void MetricsService::OnInitTaskComplete(
     const std::string& hardware_class,
-    const std::vector<webkit::npapi::WebPluginInfo>& plugins) {
+    const std::vector<webkit::WebPluginInfo>& plugins) {
   DCHECK(state_ == INIT_TASK_SCHEDULED);
   hardware_class_ = hardware_class;
   plugins_ = plugins;
diff --git a/chrome/browser/metrics/metrics_service.h b/chrome/browser/metrics/metrics_service.h
index 8d38f99..8e477a6 100644
--- a/chrome/browser/metrics/metrics_service.h
+++ b/chrome/browser/metrics/metrics_service.h
@@ -40,11 +40,8 @@
 }
 
 namespace webkit {
-namespace npapi {
 struct WebPluginInfo;
 }
-}
-
 
 class MetricsService : public NotificationObserver,
                        public URLFetcher::Delegate,
@@ -156,7 +153,7 @@
   // Callback to let us know that the init task is done.
   void OnInitTaskComplete(
       const std::string& hardware_class,
-      const std::vector<webkit::npapi::WebPluginInfo>& plugins);
+      const std::vector<webkit::WebPluginInfo>& plugins);
 
   // When we start a new version of Chromium (different from our last run), we
   // need to discard the old crash stats so that we don't attribute crashes etc.
@@ -356,7 +353,7 @@
   std::string hardware_class_;
 
   // The list of plugins which was retrieved on the file thread.
-  std::vector<webkit::npapi::WebPluginInfo> plugins_;
+  std::vector<webkit::WebPluginInfo> plugins_;
 
   // The outstanding transmission appears as a URL Fetch operation.
   scoped_ptr<URLFetcher> current_fetch_;