Chromium Code Reviews| Index: chrome/installer/util/installation_state.h |
| =================================================================== |
| --- chrome/installer/util/installation_state.h (revision 71802) |
| +++ chrome/installer/util/installation_state.h (working copy) |
| @@ -9,6 +9,8 @@ |
| #include <string> |
| #include "base/basictypes.h" |
| +#include "base/command_line.h" |
| +#include "base/file_path.h" |
| #include "base/scoped_ptr.h" |
| #include "chrome/installer/util/browser_distribution.h" |
| #include "chrome/installer/util/channel_info.h" |
| @@ -19,29 +21,60 @@ |
| class InstallationState; |
| class MasterPreferences; |
| -class PackageProperties; |
| +// A representation of a product's state on the machine based on the contents |
| +// of the Windows registry. |
| class ProductState { |
| public: |
| ProductState(); |
| - void Initialize(bool system_install, |
| - const std::wstring& version_key, |
| - const std::wstring& state_key); |
| + // Returns true if the product is installed (i.e., the product's Clients key |
| + // exists and has a "pv" value); false otherwise. |
| + bool Initialize(bool system_install, |
| + BrowserDistribution::Type type); |
| + bool Initialize(bool system_install, |
| + BrowserDistribution* distribution); |
| const ChannelInfo& channel() const { return channel_; } |
| ChannelInfo& channel() { return channel_; } |
| + FilePath GetSetupPath() const; |
| + |
| const Version& version() const; |
| // Takes ownership of |version|. |
| void set_version(Version* version) { version_.reset(version); } |
| - void CopyFrom(const ProductState& other); |
| + // May be NULL. Ownership of a returned value is not passed to the caller. |
| + const Version* old_version() const { return old_version_.get(); } |
| + // Takes ownership of |version|. |
| + void set_old_version(Version* version) { old_version_.reset(version); } |
| + const std::wstring& rename_cmd() const { return rename_cmd_; } |
| + void set_rename_cmd(const std::wstring& rename_cmd) { |
| + rename_cmd_ = rename_cmd; |
| + } |
| + |
| + // True if the "msi" value in the ClientState key is present and non-zero. |
| + bool msi() const { return msi_; } |
| + void set_msi(bool set) { msi_ = set; } |
|
robertshield
2011/01/21 16:58:56
Remove the public setters for this and other field
grt (UTC plus 2)
2011/01/24 16:07:02
Done.
|
| + |
| + const CommandLine& uninstall_command() const { return uninstall_command_; } |
| + |
| + // True if |uninstall_command| contains --multi-install. |
| + bool multi_install() const { return multi_install_; } |
| + |
| + // Returns this object a la operator=(). |
| + ProductState& CopyFrom(const ProductState& other); |
| + |
| private: |
| friend class InstallationState; |
| ChannelInfo channel_; |
| scoped_ptr<Version> version_; |
| + scoped_ptr<Version> old_version_; |
| + std::wstring rename_cmd_; |
| + CommandLine uninstall_command_; |
| + bool msi_; |
| + bool multi_install_; |
| DISALLOW_COPY_AND_ASSIGN(ProductState); |
| }; // class ProductState |
| @@ -50,14 +83,9 @@ |
| public: |
| InstallationState(); |
| - // Initializes |this| with the machine's current state. |
| - void Initialize(const MasterPreferences& prefs); |
| + // Initializes this object with the machine's current state. |
| + void Initialize(); |
| - // Returns the state of the multi-installer package or NULL if no |
| - // multi-install products are installed. |
| - // Caller does NOT assume ownership of returned pointer. |
| - const ProductState* GetMultiPackageState(bool system_install) const; |
| - |
| // Returns the state of a product or NULL if not installed. |
| // Caller does NOT assume ownership of returned pointer. |
| const ProductState* GetProductState(bool system_install, |
| @@ -67,17 +95,11 @@ |
| enum { |
| CHROME_BROWSER_INDEX, |
| CHROME_FRAME_INDEX, |
| - MULTI_PACKAGE_INDEX, |
| + CHROME_BINARIES_INDEX, |
| NUM_PRODUCTS |
| }; |
| static int IndexFromDistType(BrowserDistribution::Type type); |
| - static void InitializeProduct(bool system_install, |
| - BrowserDistribution* distribution, |
| - ProductState* product); |
| - static void InitializeMultiPackage(bool system_install, |
| - PackageProperties& properties, |
| - ProductState* product); |
| ProductState user_products_[NUM_PRODUCTS]; |
| ProductState system_products_[NUM_PRODUCTS]; |