| Index: chrome/browser/plugins/plugin_installer.h
 | 
| diff --git a/chrome/browser/plugins/plugin_installer.h b/chrome/browser/plugins/plugin_installer.h
 | 
| index 1dae7f13ecf0dd42d97aeb115ce50d902257601c..322ef06417e2937833c60db7560912b3bfa710f1 100644
 | 
| --- a/chrome/browser/plugins/plugin_installer.h
 | 
| +++ b/chrome/browser/plugins/plugin_installer.h
 | 
| @@ -8,9 +8,10 @@
 | 
|  #include "base/observer_list.h"
 | 
|  #include "base/string16.h"
 | 
|  #include "base/version.h"
 | 
| -#include "googleurl/src/gurl.h"
 | 
| +#include "chrome/browser/plugins/plugin_metadata.h"
 | 
|  #include "content/public/browser/download_id.h"
 | 
|  #include "content/public/browser/download_item.h"
 | 
| +#include "googleurl/src/gurl.h"
 | 
|  #include "net/base/net_errors.h"
 | 
|  
 | 
|  class FilePath;
 | 
| @@ -33,19 +34,7 @@ class PluginInstaller : public content::DownloadItem::Observer {
 | 
|      INSTALLER_STATE_DOWNLOADING,
 | 
|    };
 | 
|  
 | 
| -  // Information about a certain version of the plug-in.
 | 
| -  enum SecurityStatus {
 | 
| -    SECURITY_STATUS_UP_TO_DATE,
 | 
| -    SECURITY_STATUS_OUT_OF_DATE,
 | 
| -    SECURITY_STATUS_REQUIRES_AUTHORIZATION,
 | 
| -  };
 | 
| -
 | 
| -  PluginInstaller(const std::string& identifier,
 | 
| -                  const string16& name,
 | 
| -                  bool url_for_display,
 | 
| -                  const GURL& plugin_url,
 | 
| -                  const GURL& help_url,
 | 
| -                  const string16& group_name_matcher);
 | 
| +  explicit PluginInstaller(PluginMetadata* plugin);
 | 
|    virtual ~PluginInstaller();
 | 
|  
 | 
|    virtual void OnDownloadUpdated(content::DownloadItem* download) OVERRIDE;
 | 
| @@ -58,33 +47,23 @@ class PluginInstaller : public content::DownloadItem::Observer {
 | 
|    void RemoveWeakObserver(WeakPluginInstallerObserver* observer);
 | 
|  
 | 
|    // Unique identifier for the plug-in.
 | 
| -  const std::string& identifier() const { return identifier_; }
 | 
| +  const std::string& identifier() const { return plugin_->identifier(); }
 | 
|  
 | 
|    // Human-readable name of the plug-in.
 | 
| -  const string16& name() const { return name_; }
 | 
| -
 | 
| -  // Checks if the plug-in matches the group matcher.
 | 
| -  bool MatchesPlugin(const webkit::WebPluginInfo& plugin);
 | 
| +  const string16& name() const { return plugin_->name(); }
 | 
|  
 | 
|    // If |url_for_display| is false, |plugin_url| is the URL of the download page
 | 
|    // for the plug-in, which should be opened in a new tab. If it is true,
 | 
|    // |plugin_url| is the URL of the plug-in installer binary, which can be
 | 
|    // directly downloaded.
 | 
| -  bool url_for_display() const { return url_for_display_; }
 | 
| -  const GURL& plugin_url() const { return plugin_url_; }
 | 
| +  bool url_for_display() const { return plugin_->url_for_display(); }
 | 
| +  const GURL& plugin_url() const { return plugin_->plugin_url(); }
 | 
|  
 | 
|    // URL to open when the user clicks on the "Problems installing?" link.
 | 
| -  const GURL& help_url() const { return help_url_; }
 | 
| +  const GURL& help_url() const { return plugin_->help_url(); }
 | 
|  
 | 
|    InstallerState state() const { return state_; }
 | 
|  
 | 
| -  // Adds information about a plug-in version.
 | 
| -  void AddVersion(const Version& version, SecurityStatus status);
 | 
| -
 | 
| -  // Returns the security status for the given plug-in (i.e. whether it is
 | 
| -  // considered out-of-date, etc.)
 | 
| -  SecurityStatus GetSecurityStatus(const webkit::WebPluginInfo& plugin) const;
 | 
| -
 | 
|    // Opens the download URL in a new tab. This method should only be called if
 | 
|    // |url_for_display| returns true.
 | 
|    void OpenDownloadURL(content::WebContents* web_contents);
 | 
| @@ -94,29 +73,15 @@ class PluginInstaller : public content::DownloadItem::Observer {
 | 
|    // returns false.
 | 
|    void StartInstalling(TabContents* tab_contents);
 | 
|  
 | 
| -  // If |status_str| describes a valid security status, writes it to |status|
 | 
| -  // and returns true, else returns false and leaves |status| unchanged.
 | 
| -  static bool ParseSecurityStatus(const std::string& status_str,
 | 
| -                                  SecurityStatus* status);
 | 
| -
 | 
|   private:
 | 
| -  struct VersionComparator {
 | 
| -    bool operator() (const Version& lhs, const Version& rhs) const;
 | 
| -  };
 | 
| -
 | 
|    void DownloadStarted(scoped_refptr<content::DownloadManager> dlm,
 | 
|                         content::DownloadId download_id,
 | 
|                         net::Error error);
 | 
|    void DownloadError(const std::string& msg);
 | 
|    void DownloadCancelled();
 | 
|  
 | 
| -  std::string identifier_;
 | 
| -  string16 name_;
 | 
| -  string16 group_name_matcher_;
 | 
| -  bool url_for_display_;
 | 
| -  GURL plugin_url_;
 | 
| -  GURL help_url_;
 | 
| -  std::map<Version, SecurityStatus, VersionComparator> versions_;
 | 
| +  // Can't be NULL. It is owned by PluginFinder.
 | 
| +  PluginMetadata* plugin_;
 | 
|  
 | 
|    InstallerState state_;
 | 
|    ObserverList<PluginInstallerObserver> observers_;
 | 
| 
 |