| Index: chrome/browser/component_updater/pnacl/pnacl_component_installer.h
|
| diff --git a/chrome/browser/component_updater/pnacl/pnacl_component_installer.h b/chrome/browser/component_updater/pnacl/pnacl_component_installer.h
|
| index 765b860fee09d9f37d9ba7be74e61baeb36ac6c7..5d58402803892213ae2dd5b60f75a060c836e03e 100644
|
| --- a/chrome/browser/component_updater/pnacl/pnacl_component_installer.h
|
| +++ b/chrome/browser/component_updater/pnacl/pnacl_component_installer.h
|
| @@ -5,17 +5,62 @@
|
| #ifndef CHROME_BROWSER_COMPONENT_UPDATER_PNACL_PNACL_COMPONENT_INSTALLER_H_
|
| #define CHROME_BROWSER_COMPONENT_UPDATER_PNACL_PNACL_COMPONENT_INSTALLER_H_
|
|
|
| +#include "base/files/file_path.h"
|
| +#include "base/memory/scoped_ptr.h"
|
| +#include "chrome/browser/component_updater/component_updater_service.h"
|
| +#include "chrome/browser/component_updater/pnacl/pnacl_profile_observer.h"
|
| +
|
| class CommandLine;
|
| -class ComponentUpdateService;
|
| class Version;
|
|
|
| namespace base {
|
| class DictionaryValue;
|
| }
|
|
|
| -// Component update registration for Portable Native Client.
|
| -void RegisterPnaclComponent(ComponentUpdateService* cus,
|
| - const CommandLine& command_line);
|
| +// Component installer responsible for Portable Native Client files.
|
| +// Files can be installed to a shared location, or be installed to
|
| +// a per-user location.
|
| +class PnaclComponentInstaller : public ComponentInstaller {
|
| + public:
|
| + PnaclComponentInstaller();
|
| +
|
| + virtual ~PnaclComponentInstaller();
|
| +
|
| + virtual void OnUpdateError(int error) OVERRIDE;
|
| +
|
| + virtual bool Install(base::DictionaryValue* manifest,
|
| + const base::FilePath& unpack_path) OVERRIDE;
|
| +
|
| + // Register a PNaCl component for the first time.
|
| + void RegisterPnaclComponent(ComponentUpdateService* cus,
|
| + const CommandLine& command_line);
|
| +
|
| + // Check the PNaCl version again and re-register with the component
|
| + // updater service.
|
| + void ReRegisterPnacl();
|
| +
|
| + bool per_user() const { return per_user_; }
|
| +
|
| + // If per_user, function to call when profile is changed.
|
| + void OnProfileChange();
|
| +
|
| + // Determine the base directory for storing each version of PNaCl.
|
| + base::FilePath GetPnaclBaseDirectory();
|
| +
|
| + Version current_version() const { return current_version_; }
|
| +
|
| + void set_current_version(const Version& v) { current_version_ = v; }
|
| +
|
| + ComponentUpdateService* cus() const { return cus_; }
|
| +
|
| + private:
|
| + bool per_user_;
|
| + scoped_ptr<PnaclProfileObserver> profile_observer_;
|
| + base::FilePath current_profile_path_;
|
| + Version current_version_;
|
| + ComponentUpdateService* cus_;
|
| + DISALLOW_COPY_AND_ASSIGN(PnaclComponentInstaller);
|
| +};
|
|
|
| // Returns true if this browser is compatible with the given Pnacl component
|
| // manifest, with the version specified in the manifest in |version_out|.
|
|
|