Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3342)

Unified Diff: chrome/browser/component_updater/pnacl/pnacl_component_installer.h

Issue 13071002: Turn on component updater on chromeos, only for the pnacl component. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: debug Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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|.
« no previous file with comments | « chrome/browser/chrome_browser_main.cc ('k') | chrome/browser/component_updater/pnacl/pnacl_component_installer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698