| Index: chrome/browser/ui/webui/plugins_ui.cc
 | 
| diff --git a/chrome/browser/ui/webui/plugins_ui.cc b/chrome/browser/ui/webui/plugins_ui.cc
 | 
| index 0b655ec739e25a03b26fcae50ce5fc4d961267db..fb2d9d6401d9509c02edec25f93e307c810ee821 100644
 | 
| --- a/chrome/browser/ui/webui/plugins_ui.cc
 | 
| +++ b/chrome/browser/ui/webui/plugins_ui.cc
 | 
| @@ -20,7 +20,7 @@
 | 
|  #include "chrome/browser/api/prefs/pref_member.h"
 | 
|  #include "chrome/browser/content_settings/host_content_settings_map.h"
 | 
|  #include "chrome/browser/plugins/plugin_finder.h"
 | 
| -#include "chrome/browser/plugins/plugin_installer.h"
 | 
| +#include "chrome/browser/plugins/plugin_metadata.h"
 | 
|  #include "chrome/browser/plugins/plugin_prefs.h"
 | 
|  #include "chrome/browser/prefs/pref_service.h"
 | 
|  #include "chrome/browser/prefs/scoped_user_pref_update.h"
 | 
| @@ -163,15 +163,10 @@ class PluginsDOMHandler : public WebUIMessageHandler,
 | 
|                         const content::NotificationDetails& details) OVERRIDE;
 | 
|  
 | 
|   private:
 | 
| -  // Call this to start getting the plugins on the UI thread.
 | 
| -  void GetPluginFinder();
 | 
| -
 | 
| -  // Called when we have a PluginFinder and need to load the list of plug-ins.
 | 
| -  void LoadPlugins(PluginFinder* plugin_finder);
 | 
| +  void LoadPlugins();
 | 
|  
 | 
|    // Called on the UI thread when the plugin information is ready.
 | 
| -  void PluginsLoaded(PluginFinder* plugin_finder,
 | 
| -                     const std::vector<webkit::WebPluginInfo>& plugins);
 | 
| +  void PluginsLoaded(const std::vector<webkit::WebPluginInfo>& plugins);
 | 
|  
 | 
|    content::NotificationRegistrar registrar_;
 | 
|  
 | 
| @@ -221,7 +216,7 @@ void PluginsDOMHandler::RegisterMessages() {
 | 
|  }
 | 
|  
 | 
|  void PluginsDOMHandler::HandleRequestPluginsData(const ListValue* args) {
 | 
| -  GetPluginFinder();
 | 
| +  LoadPlugins();
 | 
|  }
 | 
|  
 | 
|  void PluginsDOMHandler::HandleEnablePluginMessage(const ListValue* args) {
 | 
| @@ -320,37 +315,32 @@ void PluginsDOMHandler::Observe(int type,
 | 
|                                  const content::NotificationSource& source,
 | 
|                                  const content::NotificationDetails& details) {
 | 
|    DCHECK_EQ(chrome::NOTIFICATION_PLUGIN_ENABLE_STATUS_CHANGED, type);
 | 
| -  GetPluginFinder();
 | 
| +  LoadPlugins();
 | 
|  }
 | 
|  
 | 
| -void PluginsDOMHandler::GetPluginFinder() {
 | 
| +void PluginsDOMHandler::LoadPlugins() {
 | 
|    if (weak_ptr_factory_.HasWeakPtrs())
 | 
|      return;
 | 
|  
 | 
| -  PluginFinder::Get(base::Bind(&PluginsDOMHandler::LoadPlugins,
 | 
| -                               weak_ptr_factory_.GetWeakPtr()));
 | 
| -}
 | 
| -
 | 
| -void PluginsDOMHandler::LoadPlugins(PluginFinder* plugin_finder) {
 | 
|    PluginService::GetInstance()->GetPlugins(
 | 
|        base::Bind(&PluginsDOMHandler::PluginsLoaded,
 | 
| -          weak_ptr_factory_.GetWeakPtr(), plugin_finder));
 | 
| +                 weak_ptr_factory_.GetWeakPtr()));
 | 
|  }
 | 
|  
 | 
|  void PluginsDOMHandler::PluginsLoaded(
 | 
| -    PluginFinder* plugin_finder,
 | 
|      const std::vector<webkit::WebPluginInfo>& plugins) {
 | 
|    Profile* profile = Profile::FromWebUI(web_ui());
 | 
|    PluginPrefs* plugin_prefs = PluginPrefs::GetForProfile(profile);
 | 
|  
 | 
|    ContentSettingsPattern wildcard = ContentSettingsPattern::Wildcard();
 | 
|  
 | 
| +  PluginFinder* plugin_finder = PluginFinder::GetInstance();
 | 
|    // Group plug-ins by identifier. This is done to be able to display
 | 
|    // the plug-ins in UI in a grouped fashion.
 | 
|    PluginGroups groups;
 | 
|    for (size_t i = 0; i < plugins.size(); ++i) {
 | 
| -    PluginInstaller* installer = plugin_finder->GetPluginInstaller(plugins[i]);
 | 
| -    groups[installer->identifier()].push_back(&plugins[i]);
 | 
| +    PluginMetadata* plugin = plugin_finder->GetPluginMetadata(plugins[i]);
 | 
| +    groups[plugin->identifier()].push_back(&plugins[i]);
 | 
|    }
 | 
|  
 | 
|    // Construct DictionaryValues to return to UI.
 | 
| @@ -359,10 +349,10 @@ void PluginsDOMHandler::PluginsLoaded(
 | 
|        it != groups.end(); ++it) {
 | 
|      const std::vector<const WebPluginInfo*>& group_plugins = it->second;
 | 
|      ListValue* plugin_files = new ListValue();
 | 
| -    PluginInstaller* plugin_installer =
 | 
| -        plugin_finder->GetPluginInstaller(*group_plugins[0]);
 | 
| -    string16 group_name = plugin_installer->name();
 | 
| -    std::string group_identifier = plugin_installer->identifier();
 | 
| +    PluginMetadata* plugin_metadata =
 | 
| +        plugin_finder->GetPluginMetadata(*group_plugins[0]);
 | 
| +    string16 group_name = plugin_metadata->name();
 | 
| +    std::string group_identifier = plugin_metadata->identifier();
 | 
|      bool group_enabled = false;
 | 
|      bool all_plugins_enabled_by_policy = true;
 | 
|      bool all_plugins_disabled_by_policy = true;
 | 
| @@ -437,13 +427,13 @@ void PluginsDOMHandler::PluginsLoaded(
 | 
|      group_data->SetString("version", active_plugin->version);
 | 
|  
 | 
|  #if defined(ENABLE_PLUGIN_INSTALLATION)
 | 
| -    PluginInstaller* installer =
 | 
| -        plugin_finder->FindPluginWithIdentifier(group_identifier);
 | 
| -    if (installer) {
 | 
| -      bool out_of_date = installer->GetSecurityStatus(*active_plugin) ==
 | 
| -                         PluginInstaller::SECURITY_STATUS_OUT_OF_DATE;
 | 
| +    plugin_metadata =
 | 
| +        plugin_finder->FindPluginMetadataWithIdentifier(group_identifier);
 | 
| +    if (plugin_metadata) {
 | 
| +      bool out_of_date = plugin_metadata->GetSecurityStatus(*active_plugin) ==
 | 
| +                         PluginMetadata::SECURITY_STATUS_OUT_OF_DATE;
 | 
|        group_data->SetBoolean("critical", out_of_date);
 | 
| -      group_data->SetString("update_url", installer->plugin_url().spec());
 | 
| +      group_data->SetString("update_url", plugin_metadata->plugin_url().spec());
 | 
|      }
 | 
|  #endif
 | 
|  
 | 
| 
 |