diff options
author | grt@chromium.org <grt@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-25 16:44:37 +0000 |
---|---|---|
committer | grt@chromium.org <grt@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-25 16:44:37 +0000 |
commit | f0260d27d34e40f2e619fb7a16dcd7f9d63fc683 (patch) | |
tree | 7e7c9e83bbd2f67b4bbbe11d076c7cc70abd8855 /chrome_frame/ready_mode | |
parent | ce7937429f63f3d966346fcd973d720f268cd888 (diff) | |
download | chromium_src-f0260d27d34e40f2e619fb7a16dcd7f9d63fc683.zip chromium_src-f0260d27d34e40f2e619fb7a16dcd7f9d63fc683.tar.gz chromium_src-f0260d27d34e40f2e619fb7a16dcd7f9d63fc683.tar.bz2 |
More installer refactoring in the interest of fixing some bugs and cleaning 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
Diffstat (limited to 'chrome_frame/ready_mode')
-rw-r--r-- | chrome_frame/ready_mode/ready_mode.cc | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/chrome_frame/ready_mode/ready_mode.cc b/chrome_frame/ready_mode/ready_mode.cc index 51df76f..21155f3 100644 --- a/chrome_frame/ready_mode/ready_mode.cc +++ b/chrome_frame/ready_mode/ready_mode.cc @@ -15,8 +15,8 @@ #include "base/win/scoped_bstr.h" #include "base/win/scoped_comptr.h" #include "base/win/win_util.h" +#include "chrome/installer/util/browser_distribution.h" #include "net/base/registry_controlled_domain.h" -#include "chrome/installer/util/package_properties.h" #include "chrome_frame/infobars/infobar_manager.h" #include "chrome_frame/ready_mode/internal/ready_mode_web_browser_adapter.h" #include "chrome_frame/ready_mode/internal/ready_prompt_content.h" @@ -220,11 +220,13 @@ void BrowserObserver::ShowPrompt() { scoped_ptr<RegistryReadyModeState::Observer> ready_mode_state_observer( new StateObserver(weak_ptr_factory_.GetWeakPtr())); - installer::ActivePackageProperties package_properties; + BrowserDistribution* dist = + BrowserDistribution::GetSpecificDistribution( + BrowserDistribution::CHROME_BINARIES); // Owned by infobar_content scoped_ptr<ReadyModeState> ready_mode_state(new RegistryReadyModeState( - package_properties.GetStateKey(), + dist->GetStateKey(), base::TimeDelta::FromMinutes(kTemporaryDeclineDurationMinutes), ready_mode_state_observer.release())); @@ -360,9 +362,12 @@ void Configure(Delegate* chrome_frame, IWebBrowser2* web_browser) { // Take ownership of the delegate linked_ptr<Delegate> delegate(chrome_frame); chrome_frame = NULL; + BrowserDistribution* dist = + BrowserDistribution::GetSpecificDistribution( + BrowserDistribution::CHROME_BINARIES); RegistryReadyModeState ready_mode_state( - installer::ActivePackageProperties().GetStateKey(), + dist->GetStateKey(), base::TimeDelta::FromMinutes(kTemporaryDeclineDurationMinutes), NULL); // NULL => no observer required |