summaryrefslogtreecommitdiffstats
path: root/chrome/installer/util/installation_state.h
diff options
context:
space:
mode:
authorgrt@chromium.org <grt@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-03 20:05:51 +0000
committergrt@chromium.org <grt@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-03-03 20:05:51 +0000
commit995708fd774716311b6feeaa08d5855c302ecf18 (patch)
tree54aa413dab26c5e4df97f6026d3f99d3f39e5400 /chrome/installer/util/installation_state.h
parentf130ef429844fc2f99089fe3ffc09af0b187577b (diff)
downloadchromium_src-995708fd774716311b6feeaa08d5855c302ecf18.zip
chromium_src-995708fd774716311b6feeaa08d5855c302ecf18.tar.gz
chromium_src-995708fd774716311b6feeaa08d5855c302ecf18.tar.bz2
Add support for the quick-enable-cf command to the installer. This encompases:
- Adding facilities for new-style Google Update commands (ProductCommand, ProductCommands) - Adding support to the validator to validate the quick-enable-cf command - Adding juju to the installation and uninstallation flows to put the command into place when installing/upgrading Chrome in multi-install mode when CF is either not installed or is in ready-mode, and making sure the command is not there when Chrome Frame is installed. BUG=none TEST=Install Chrome in multi-install mode and see if the Google Update version key for the binaries (app guid {4DC8B4CA-1BDA-483e-B5FA-D3C12E15B62D}) contains a key named "quick-enable-cf" that has a CommandLine value indicating setup.exe w/ --multi-install [ --system-level ] --quick-enable-cf, a SendsPings value of 1, and a WebAccessible value of 1. Then try the other variations, like install CF in ready-mode and make sure that quick-enable-cf is still there. Make sure that installing CF causes it to be removed, etc. Review URL: http://codereview.chromium.org/6588003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@76783 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/installer/util/installation_state.h')
-rw-r--r--chrome/installer/util/installation_state.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/chrome/installer/util/installation_state.h b/chrome/installer/util/installation_state.h
index 817e0af..a63627c 100644
--- a/chrome/installer/util/installation_state.h
+++ b/chrome/installer/util/installation_state.h
@@ -12,11 +12,18 @@
#include "base/command_line.h"
#include "base/file_path.h"
#include "base/scoped_ptr.h"
+#include "chrome/installer/util/app_commands.h"
#include "chrome/installer/util/browser_distribution.h"
#include "chrome/installer/util/channel_info.h"
class Version;
+namespace base {
+namespace win {
+class RegKey;
+}
+}
+
namespace installer {
class InstallationState;
@@ -64,15 +71,22 @@ class ProductState {
// True if |uninstall_command| contains --multi-install.
bool is_multi_install() const { return multi_install_; }
+ // Returns the set of Google Update commands.
+ const AppCommands& commands() const { return commands_; }
+
// Returns this object a la operator=().
ProductState& CopyFrom(const ProductState& other);
protected:
+ static bool InitializeCommands(const base::win::RegKey& version_key,
+ AppCommands* commands);
+
ChannelInfo channel_;
scoped_ptr<Version> version_;
scoped_ptr<Version> old_version_;
std::wstring rename_cmd_;
CommandLine uninstall_command_;
+ AppCommands commands_;
bool msi_;
bool multi_install_;