summaryrefslogtreecommitdiffstats
path: root/chrome/installer/util/util_constants.cc
diff options
context:
space:
mode:
authortommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-12-23 19:54:02 +0000
committertommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-12-23 19:54:02 +0000
commit36b6f4f462adc4ff57d65acef4c60939c2dfd8fe (patch)
tree38f40e2fa1773ff67ccb6b2283bf722fa54c9ab5 /chrome/installer/util/util_constants.cc
parent15e7eba9c74140f4e976c0d152ba738c36f14bb5 (diff)
downloadchromium_src-36b6f4f462adc4ff57d65acef4c60939c2dfd8fe.zip
chromium_src-36b6f4f462adc4ff57d65acef4c60939c2dfd8fe.tar.gz
chromium_src-36b6f4f462adc4ff57d65acef4c60939c2dfd8fe.tar.bz2
Support for GCF ready-mode.
The installer can now be run in a way that installs both Chrome and Chrome Frame at the same time, into a shared directory. The command line to do this is: mini_installer.exe --multi-install --chrome --chrome-frame --ready-mode --system-level --verbose-logging This installs both products although only Chrome will have an entry in the add/remove programs dialog that serves as an uninstallation command for both products. Chrome Frame will be installed in ready-mode, which means that the user will have to opt-in or opt-out of using it. The installer will create a REG_DWORD value to indicate this mode, here: HKEY_LOCAL_MACHINE\SOFTWARE\Google\Update\ClientState\{4DC8B4CA-1BDA-483e-B5FA-D3C12E15B62D} Value name: ChromeFrameReadyMode Value: 1 If the user opts-in to use GCF, setup will be run again to remove this value, update Chrome's uninstallation commands to only uninstall Chrome, and add an entry to the Add/Remove Programs dialog for GCF. To do this, the installer needs to be run with this switch: --multi-install --chrome-frame --system-level --ready-mode-opt-in --verbose-logging If the user opts-out, Chrome Frame will be uninstalled by running the installer with these arguments: --uninstall --chrome-frame --ready-mode --system-level --multi-install --verbose-logging In addition to uninstalling GCF, this updates Chrome's uninstallation commands accordingly and sets the ChromeFrameReadyMode value to 0 to avoid enabling ready mode again. Requirements that must currently be met in order to install Chrome and Chrome Frame into the same shared location: - Chrome Frame must not already be installed OR - Chrome Frame must be already installed as multi, into the shared location **** other changes **** The installer does no use the ap value for detecting other multi-install products anymore. Instead we inspect the uninstallation switches to see if --multi-install is present. Updated unit tests accordingly. When uninstalling Chrome Frame along with Chrome, the Chrome Frame uninstallation prompt is not shown. Added safeguards: If we attempt to install Chrome Frame multi over a single, install aborts and returns an error. If we attempt to install Chrome Frame single over a multi, install aborts and returns an error. TEST=See description above. BUG=61609 Review URL: http://codereview.chromium.org/5989007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70083 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/installer/util/util_constants.cc')
-rw-r--r--chrome/installer/util/util_constants.cc10
1 files changed, 9 insertions, 1 deletions
diff --git a/chrome/installer/util/util_constants.cc b/chrome/installer/util/util_constants.cc
index f3a062f..cda927d 100644
--- a/chrome/installer/util/util_constants.cc
+++ b/chrome/installer/util/util_constants.cc
@@ -15,9 +15,16 @@ const char kCeee[] = "ceee";
// Currently this is only required when used in combination with kMultiInstall.
const char kChrome[] = "chrome";
-// Run the installer in Chrome Frame mode.
+// Install Chrome Frame.
const char kChromeFrame[] = "chrome-frame";
+// When installing Chrome Frame, install it in ready mode.
+// If --chrome-frame is not on the command line, this switch has no effect.
+const char kChromeFrameReadyMode[] = "ready-mode";
+
+// GCF ready mode opt-in. This enables a full installation of GCF.
+const char kChromeFrameReadyModeOptIn[] = "ready-mode-opt-in";
+
// Run the installer for Chrome SxS.
const char kChromeSxS[] = "chrome-sxs";
@@ -139,6 +146,7 @@ const wchar_t kChromeExe[] = L"chrome.exe";
const wchar_t kChromeFrameDll[] = L"npchrome_frame.dll";
const wchar_t kChromeFrameHelperExe[] = L"chrome_frame_helper.exe";
const wchar_t kChromeFrameHelperWndClass[] = L"ChromeFrameHelperWindowClass";
+const wchar_t kChromeFrameReadyModeField[] = L"ChromeFrameReadyMode";
const wchar_t kChromeNaCl64Dll[] = L"nacl64.dll";
const wchar_t kChromeNewExe[] = L"new_chrome.exe";
const wchar_t kChromeOldExe[] = L"old_chrome.exe";