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..a5be53feb553954457d3d3dc0f32e0c3f3e2ec03 100644 |
--- a/chrome/browser/component_updater/pnacl/pnacl_component_installer.h |
+++ b/chrome/browser/component_updater/pnacl/pnacl_component_installer.h |
@@ -5,17 +5,59 @@ |
#ifndef CHROME_BROWSER_COMPONENT_UPDATER_PNACL_PNACL_COMPONENT_INSTALLER_H_ |
#define CHROME_BROWSER_COMPONENT_UPDATER_PNACL_PNACL_COMPONENT_INSTALLER_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; |
+ |
+ 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_; } |
+ |
+ CrxComponent component() const { |
+ return pnacl_component_; |
+ } |
+ |
+ Version current_version() const { |
+ return pnacl_component_.version; |
+ } |
+ |
+ void set_current_version(const Version& ver) { |
+ pnacl_component_.version = ver; |
+ } |
+ |
+ private: |
+ DISALLOW_COPY_AND_ASSIGN(PnaclComponentInstaller); |
+ bool per_user_; |
+ scoped_ptr<PnaclProfileObserver> profile_observer_; |
+ CrxComponent pnacl_component_; |
cpu_(ooo_6.6-7.5)
2013/03/29 22:20:55
I don't see the need for the pnacl_component_ memb
jvoung (off chromium)
2013/03/29 22:54:52
That's true, I'll simplify it.
|
+ ComponentUpdateService* cus_; |
+}; |
// Returns true if this browser is compatible with the given Pnacl component |
// manifest, with the version specified in the manifest in |version_out|. |