diff options
author | tommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-12-23 19:54:02 +0000 |
---|---|---|
committer | tommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-12-23 19:54:02 +0000 |
commit | 36b6f4f462adc4ff57d65acef4c60939c2dfd8fe (patch) | |
tree | 38f40e2fa1773ff67ccb6b2283bf722fa54c9ab5 /chrome/installer/util/util_constants.cc | |
parent | 15e7eba9c74140f4e976c0d152ba738c36f14bb5 (diff) | |
download | chromium_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.cc | 10 |
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"; |