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/helper.h | |
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/helper.h')
-rw-r--r-- | chrome/installer/util/helper.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/chrome/installer/util/helper.h b/chrome/installer/util/helper.h index 07bc893..3845806 100644 --- a/chrome/installer/util/helper.h +++ b/chrome/installer/util/helper.h @@ -13,6 +13,9 @@ class FilePath; namespace installer { +// Checks if a distribution is currently installed as part of a multi-install. +bool IsInstalledAsMulti(bool system_install, BrowserDistribution* dist); + // This function returns the install path for Chrome depending on whether its // system wide install or user specific install. // system_install: if true, the function returns system wide location @@ -26,6 +29,19 @@ FilePath GetChromeInstallPath(bool system_install, BrowserDistribution* dist); // that it can be overriden with a command line parameter. FilePath GetChromeUserDataPath(BrowserDistribution* dist); +// This is a workaround while we unify Chrome and Chrome Frame installation +// folders. Right now, Chrome Frame can be installed into two different +// folders: 1) A special "Chrome Frame" folder next to Chrome's folder +// 2) The same folder as Chrome is installed into. +// Right now this function will only return Chrome's installation folder +// if Chrome Frame is not already installed or if Chrome Frame is installed +// in multi_install mode. +// If multi_install is false or if CF is installed in single mode, then the +// returned path will be the "Chrome Frame" subfolder of either the user or +// system default installation folders. +FilePath GetChromeFrameInstallPath(bool multi_install, bool system_install, + BrowserDistribution* dist); + } // namespace installer #endif // CHROME_INSTALLER_UTIL_HELPER_H_ |