| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
|
|
|
|
|
| |
and/or %SystemRoot%. We now do temp work on the same volume as the eventual install. In the case of system-level installs, this has the nice side-effect of allowing us to move the install into place rather than copy it, which should also speed up system-level installs.
BUG=70368
TEST=Set TMP and TEMP env vars to some volume other than the one holding %USERPROFILE% (for user-level installs) or %SystemRoot% (for system-level installs), then see if in-use updates work.
Review URL: http://codereview.chromium.org/6538091
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@75899 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
contains the first two parts of the validator:
1. installer::InstallationValidator class, used by setup.exe to confirm that all is well following an installer operation. Violations are logged at ERROR level.
2. validate_installation.exe, used by humans to check the overall state of a machine.
The third part, in which violations fire nonfatal test failures for use in other tests, will follow in a subsequent CL.
BUG=none
TEST=Run validate_installation.exe on machine(s) containing all conceivable permutations of Chrome and Chrome Frame, and see if it reports any violations.
Review URL: http://codereview.chromium.org/6490024
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@74819 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
things up:
- Introduced ProductOperations: an interface implemented for each product that takes care of product-specific functions. Each Product owns an instance and delegates certain operations to it.
- Removed the use of MasterPreferences by BrowserDistribution so that the former isn't needed outside of the installer.
- Replaced PackageProperties with a new BrowserDistribution type (CHROME_BINARIES)
- Plumbed the concept of InstallerState more thoroughly through installer
- Removed ProductPackageMapping and Package
- Moved more registry read ops into ProductState
- Validation of products to be installed is now done in CheckPreInstallConditions
- Ignore --chrome-frame --ready-mode if chrome is also being installed/updated and a SxS GCF is found (chrome is updated).
- Migrates existing single-install Chrome to multi-install where appropriate.
- Fixes update to Chrome's uninstallation arguments when Chrome Frame is uninstalled.
- Removed dead code from install.cc.
- Added code to update products' "ap" values when ready-mode is accepted.
- Skip post-install things such as launching the browser when Chrome was implicitly added to the install/upgrade process by virtue of being part of a multi-install.
BUG=61609
TEST=run the installer, see it work. existing tests in installer_util_unittests have been updated; new tests are included for ProductState, ChannelInfo, etc.
Review URL: http://codereview.chromium.org/6288009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72497 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
where it is needed
- WriteInstallerResult is no longer called on uninstall (Google Update doesn't check it on uninstall)
- Introduced the poorly named InstallationState (state of the system based on registry inspection) and InstallerState (state of the current operation) classes
- Product::GetInstalledVersion and Product::IsInstalled are gone; use InstallationState instead
- A few cleanups to make the code comply with the style guide
- UpdateDiffInstallStatus has been renamed to UpdateInstallStatus
- Chromium builds noop in UpdateInstallStatus (this was always the case for the browser, but now also is for GCF and the multi-installer package).
- The -multifail suffixes is now added to/removed from the Google Update "ap" value by UpdateInstallStatus on the basis of multi-install success/failure.
- Added code to update the Google Update "ap" value based on the set up products/options installed
- ChannelInfo is now an ordered list of modifiers and suffixes. We're careful to keep -full at the end since that was an operating assumption previously.
- ActivePackageProperties is a typedef to either the Chrome or Chromium PackageProperties class
TEST=Some existing unit tests updated; more new unit tests to follow.
BUG=61609
Review URL: http://codereview.chromium.org/5988007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70483 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
WorkItemList for all operations that mutate the system state. This is a prerequisite for meaningful unittests and significantly simplifies the install flow.
BUG=61609
TEST=None (yet)
Review URL: http://codereview.chromium.org/6078007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70426 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Package level. Furthermore, such results are placed in the product keys as well as the package key, if there is one. This ensures that the result will be available for Google Update regardless of whether or not a migration from single to unified is taking place.
- The mutex protecting creation of the window used to join chrome processes no longer contains the app_guid. This increases contention for the lock slightly, but ensures that window creation is safe in light of unified installs.
- Fixed placement of the user data directory for Chrome Frame. Previously, GetChromeFrameUserDataDirectory contained its own, different, ChromeFrameDistribution::GetInstallSubDir implementation. Now, GetChromeFrameUserDataDirectory delegates to ChromeFrameDistribution.
- Product now caches and owns the Version instance returned by is GetInstalledVersion method (msi state is also cached). Also added Product::IsInstalled.
- Moved GetInstallReturnCode from BrowserDistribution to InstallUtil because I didn't see why it belonged to the dist class.
- SetEULAConsent now writes the consent value to either the product or package key as appropriate.
- Disallow --multi-install when operating on a SxS Chrome installation.
- Propagate --multi-install when running setup.exe with --rename-chrome-exe so that installer results can get written to the correct place.
BUG=61609
TEST=New tests added to installer_util_unittests for WriteInstallerResult and SetEULAConsent changes.
Review URL: http://codereview.chromium.org/6061003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69944 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1] Remove installer::version and use base::version in installer
2] Use file_util::FileEnumerator instead of calling FindFirstFile directly
BUG=none
TEST=covered by existing tests
Review URL: http://codereview.chromium.org/5687004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69433 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for each of the products.
Also removing the system_level() property out of the Product class and into the Package class as system_level can't be different for products that share the same package.
TEST=Run installer and unit tests.
BUG=61609
Review URL: http://codereview.chromium.org/5744001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69314 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
ClientState value.
BUG=61609
TEST=added to and modified chrome/installer_util_unittests.exe appropriately
Review URL: http://codereview.chromium.org/5656002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68603 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The installer now does its work based on distributions and target installation paths.
Each distribution has exactly one target installation path but each installation path can have more than one distribution.
In the absense of the --multi-install switch, the installer should continue to work as before.
The biggest difference here is that we don't rely on a single global distribution object that controls the entire installation flow and we have a few classes for the new abstractions instead of global functions.
It's far from perfect, but it's a step towards separating the core file package required for all distributions from the distributions themselves.
Additionally, there are tons of little changes here such as consistant usage of FilePath and CommandLine instead of mixing them with std::wstring.
TEST=Install, uninstall, upgrade, etc. Everything install related.
BUG=61609
Review URL: http://codereview.chromium.org/5172011
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67818 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
on Windows. (Also fixed some unrelated lint errors.) With this change, l10n_util::GetApplicationLocale first checks for an override of the "configured locale" (in base::i18n) containing the list of preferred Windows UI languages. The browser triggers an override early in startup before the ApplicationLocale is determined. In effect, the browser no longer uses ICU on Windows for language detection. (This locale override mechanism is borrowed from the OS X port.)
Changes in Chrome Frame are largely a refactor, as some Win32 code in there has been moved into base/win.
Also cleaned up language selection in installer_util so that the proper language is chosen for the EULA, installer messages, and shortcuts. In so doing, replaced hand-crafted lists of supported languages with either auto-generated lists (static consts) or logic so that the addition of translations in the future doesn't require code motion (that being said, there may be reason to update the alias and/or wildcard tables in language_selector.cc). In so doing, this change unlocks Amharic, Farsi, and Swahili translations for installer messages and shortcuts.
BUG=39986,40496,26470
TEST=New MUI/Win32 calls are tested in base/win/i18n_unittest.cc. To test the overall functionality, uninstall Chrome, remove intl.app_locale user pref, switch to a supported display language (via the "Keyboards and Languages" tab of Win7's "Regional and Language" control panel, and install with { "distribution": { "require_eula": true } } in master_preferences (via -installerdata arg to setup.exe). If all goes well, both EULA and outer frame are in the same language as Windows. Also, from gwilson: "Install system-level Chrome in audit mode on a new machine, then go through the out-of-box-experience, select a language, and the in -product EULA (triggered by "require_eula" : true) and Chrome's UI should be in the language that the user selected."
Review URL: http://codereview.chromium.org/4139010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66275 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
only place where it's used.
TEST=it compiles
BUG=none
Review URL: http://codereview.chromium.org/3696001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62123 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
(http://codereview.chromium.org/2903014/show), so that it will work with new first run sequence on Windows and Mac.
BUG=44901
TEST=in bug
Review URL: http://codereview.chromium.org/3148001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57099 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
This is the backend work only. There's no UI yet.
BUG=45147
TEST=manual
Review URL: http://codereview.chromium.org/3032001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52524 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
As working on change committed in rev50132, instead of yet adding another project to the dependency list of libxml, I decided to abstract the dependency in the metrics helper.
BUG=0
TEST=None
Review URL: http://codereview.chromium.org/2753010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50952 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=45148
TEST=compile chrome with PRODUCT_VERSION manually set to something higher than the current version (e.g. 7.0.0.0), and manually set the upgrade detector time to something short (like 10 seconds). Launch chrome and wait a short time for the update notification to appear. The update notification should pulse every few seconds, and should stop pulsing when the user opens the wrench menu. The about menu item should launch a dialog that allows the user to restart chrome, restoring the current session.
Review URL: http://codereview.chromium.org/2365003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48795 0039d316-1c4b-4281-b951-d872f2087c98
|
|
The cycle is between installer.gyp and chrome.gyp. The fix is to switch installer.gyp into installer.gypi and include it into chrome.gyp
BUG=35308
Review URL: http://codereview.chromium.org/2067018
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48007 0039d316-1c4b-4281-b951-d872f2087c98
|