| Index: webkit/plugins/npapi/plugin_list.h | 
| diff --git a/webkit/plugins/npapi/plugin_list.h b/webkit/plugins/npapi/plugin_list.h | 
| index 57204892bb31492462e826a99d4b09828def4a86..7de29513a94c6c6158b0ee9d498e8364c485d724 100644 | 
| --- a/webkit/plugins/npapi/plugin_list.h | 
| +++ b/webkit/plugins/npapi/plugin_list.h | 
| @@ -13,23 +13,16 @@ | 
| #include "base/basictypes.h" | 
| #include "base/callback.h" | 
| #include "base/file_path.h" | 
| +#include "base/lazy_instance.h" | 
| #include "base/memory/linked_ptr.h" | 
| #include "base/memory/scoped_vector.h" | 
| #include "base/synchronization/lock.h" | 
| #include "third_party/npapi/bindings/nphostapi.h" | 
| -#include "webkit/plugins/npapi/plugin_group.h" | 
| #include "webkit/plugins/webkit_plugins_export.h" | 
| #include "webkit/plugins/webplugininfo.h" | 
|  | 
| class GURL; | 
|  | 
| -namespace base { | 
| - | 
| -template <typename T> | 
| -struct DefaultLazyInstanceTraits; | 
| - | 
| -}  // namespace base | 
| - | 
| namespace webkit { | 
| namespace npapi { | 
|  | 
| @@ -55,6 +48,10 @@ struct PluginEntryPoints { | 
| // This object is thread safe. | 
| class WEBKIT_PLUGINS_EXPORT PluginList { | 
| public: | 
| +  // Custom traits that performs platform-dependent initialization | 
| +  // when the instance is created. | 
| +  struct CustomLazyInstanceTraits; | 
| + | 
| // Gets the one instance of the PluginList. | 
| static PluginList* Singleton(); | 
|  | 
| @@ -148,30 +145,6 @@ class WEBKIT_PLUGINS_EXPORT PluginList { | 
| std::vector<webkit::WebPluginInfo>* info, | 
| std::vector<std::string>* actual_mime_types); | 
|  | 
| -  // TODO(ibraaaa): DELETE. http://crbug.com/124396 | 
| -  // Populates the given vector with all available plugin groups. If | 
| -  // |load_if_necessary| is true, this will potentially load the plugin list | 
| -  // synchronously. | 
| -  void GetPluginGroups(bool load_if_necessary, | 
| -                       std::vector<PluginGroup>* plugin_groups); | 
| - | 
| -  // TODO(ibraaaa): DELETE. http://crbug.com/124396 | 
| -  // Returns a copy of the PluginGroup corresponding to the given WebPluginInfo. | 
| -  // The caller takes ownership of the returned PluginGroup. | 
| -  PluginGroup* GetPluginGroup(const webkit::WebPluginInfo& web_plugin_info); | 
| - | 
| -  // TODO(ibraaaa): DELETE. http://crbug.com/124396 | 
| -  // Returns the name of the PluginGroup with the given identifier. | 
| -  // If no such group exists, an empty string is returned. | 
| -  string16 GetPluginGroupName(const std::string& identifier); | 
| - | 
| -  // TODO(ibraaaa): DELETE. http://crbug.com/124396 | 
| -  // Load a specific plugin with full path. Return true iff loading the plug-in | 
| -  // was successful. | 
| -  bool LoadPlugin(const FilePath& filename, | 
| -                  ScopedVector<PluginGroup>* plugin_groups, | 
| -                  webkit::WebPluginInfo* plugin_info); | 
| - | 
| // Load a specific plugin with full path. Return true iff loading the plug-in | 
| // was successful. | 
| bool LoadPluginIntoPluginList(const FilePath& filename, | 
| @@ -184,11 +157,7 @@ class WEBKIT_PLUGINS_EXPORT PluginList { | 
| // Computes a list of all plugins to potentially load from all sources. | 
| void GetPluginPathsToLoad(std::vector<FilePath>* plugin_paths); | 
|  | 
| -  // TODO(ibraaaa): DELETE. http://crbug.com/124396 | 
| -  // Returns the list of hardcoded plug-in groups for testing. | 
| -  const std::vector<PluginGroup*>& GetHardcodedPluginGroups() const; | 
| - | 
| -  // Clears the internal list of PluginGroups and copies them from the vector. | 
| +  // Clears the internal list of Plugins and copies them from the vector. | 
| void SetPlugins(const std::vector<webkit::WebPluginInfo>& plugins); | 
|  | 
| void set_will_load_plugins_callback(const base::Closure& callback); | 
| @@ -196,16 +165,9 @@ class WEBKIT_PLUGINS_EXPORT PluginList { | 
| virtual ~PluginList(); | 
|  | 
| protected: | 
| -  // TODO(ibraaaa): DELETE and add a different one. http://crbug.com/124396 | 
| -  // This constructor is used in unit tests to override the platform-dependent | 
| -  // real-world plugin group definitions with custom ones. | 
| -  PluginList(const PluginGroupDefinition* definitions, size_t num_definitions); | 
| - | 
| -  // TODO(ibraaaa): DELETE. http://crbug.com/124396 | 
| -  // Adds the given WebPluginInfo to its corresponding group, creating it if | 
| -  // necessary, and returns the group. | 
| -  PluginGroup* AddToPluginGroups(const webkit::WebPluginInfo& web_plugin_info, | 
| -                                 ScopedVector<PluginGroup>* plugin_groups); | 
| +  // Constructors are private for singletons but we expose this one | 
| +  // for subclasses for test purposes. | 
| +  PluginList(); | 
|  | 
| private: | 
| enum LoadingState { | 
| @@ -221,27 +183,6 @@ class WEBKIT_PLUGINS_EXPORT PluginList { | 
|  | 
| friend class PluginListTest; | 
| friend struct base::DefaultLazyInstanceTraits<PluginList>; | 
| -  FRIEND_TEST_ALL_PREFIXES(PluginGroupTest, PluginGroupDefinition); | 
| - | 
| -  // Constructors are private for singletons. | 
| -  PluginList(); | 
| - | 
| -  // TODO(ibraaaa): DELETE. http://crbug.com/124396 | 
| -  // Creates PluginGroups for the hardcoded group definitions, and stores them | 
| -  // in |hardcoded_plugin_groups_|. | 
| -  void AddHardcodedPluginGroups(const PluginGroupDefinition* group_definitions, | 
| -                                size_t num_group_definitions); | 
| - | 
| -  // TODO(ibraaaa): DELETE. http://crbug.com/124396 | 
| -  // Creates a new PluginGroup either from a hardcoded group definition, or from | 
| -  // the plug-in information. | 
| -  // Caller takes ownership of the returned PluginGroup. | 
| -  PluginGroup* CreatePluginGroup( | 
| -      const webkit::WebPluginInfo& web_plugin_info) const; | 
| - | 
| -  // Implements all IO dependent operations of the LoadPlugins method so that | 
| -  // test classes can mock these out. | 
| -  virtual void LoadPluginsInternal(ScopedVector<PluginGroup>* plugin_groups); | 
|  | 
| // Implements all IO dependent operations of the LoadPlugins method so that | 
| // test classes can mock these out. | 
| @@ -255,13 +196,6 @@ class WEBKIT_PLUGINS_EXPORT PluginList { | 
| // load in that directory. | 
| void GetPluginsInDir(const FilePath& path, std::vector<FilePath>* plugins); | 
|  | 
| -  // TODO(ibraaaa): DELETE. http://crbug.com/124396 | 
| -  // Returns true if we should load the given plugin, or false otherwise. | 
| -  // |plugins| is the list of plugins we have crawled in the current plugin | 
| -  // loading run. | 
| -  bool ShouldLoadPlugin(const webkit::WebPluginInfo& info, | 
| -                        ScopedVector<PluginGroup>* plugins); | 
| - | 
| // Returns true if we should load the given plugin, or false otherwise. | 
| // |plugins| is the list of plugins we have crawled in the current plugin | 
| // loading run. | 
| @@ -325,14 +259,6 @@ class WEBKIT_PLUGINS_EXPORT PluginList { | 
| // Holds information about internal plugins. | 
| std::vector<InternalPlugin> internal_plugins_; | 
|  | 
| -  // TODO(ibraaaa): DELETE. http://crbug.com/124396 | 
| -  // Holds the currently available plugin groups. | 
| -  ScopedVector<PluginGroup> plugin_groups_; | 
| - | 
| -  // Holds the hardcoded definitions of well-known plug-ins. | 
| -  // This should only be modified during construction of the PluginList. | 
| -  ScopedVector<PluginGroup> hardcoded_plugin_groups_; | 
| - | 
| // A list holding all plug-ins. | 
| std::vector<webkit::WebPluginInfo> plugins_list_; | 
|  | 
|  |