diff options
author | robertshield@chromium.org <robertshield@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-12-13 14:35:53 +0000 |
---|---|---|
committer | robertshield@chromium.org <robertshield@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-12-13 14:35:53 +0000 |
commit | a947ccbb9104c4ac6104837f00baca16d3a7ea62 (patch) | |
tree | 3ef45854c369758b105ecf17112374de2a410d34 /chrome/installer/util/browser_distribution.h | |
parent | f7c1658f2adf64f36eb5950dda426097e6191c88 (diff) | |
download | chromium_src-a947ccbb9104c4ac6104837f00baca16d3a7ea62.zip chromium_src-a947ccbb9104c4ac6104837f00baca16d3a7ea62.tar.gz chromium_src-a947ccbb9104c4ac6104837f00baca16d3a7ea62.tar.bz2 |
Add a CEEE mode to the ChromeFrame distribution class.
Pass a MasterPreferences into BrowserDistribution et al. to allow for preferences-based behaviour.
Add a GetComDllList() method that returns the set of registerable components for that distribution.
Change GetKeyFile() on BrowserDistribution to GetKeyFiles().
Refactor GetMasterPreferencesForCurrentProcess into a static method on MasterPreferences.
BUG=61609
TEST=None
Review URL: http://codereview.chromium.org/5558006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@68996 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/installer/util/browser_distribution.h')
-rw-r--r-- | chrome/installer/util/browser_distribution.h | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/chrome/installer/util/browser_distribution.h b/chrome/installer/util/browser_distribution.h index 53aa540..a4436bff 100644 --- a/chrome/installer/util/browser_distribution.h +++ b/chrome/installer/util/browser_distribution.h @@ -9,6 +9,7 @@ #pragma once #include <string> +#include <vector> #include "base/basictypes.h" #include "base/file_path.h" @@ -19,25 +20,30 @@ #include <windows.h> // NOLINT #endif +class CommandLine; + namespace installer { class Product; } +namespace installer_util { +class MasterPreferences; +} class BrowserDistribution { public: virtual ~BrowserDistribution() {} - enum DistributionType { + enum Type { CHROME_BROWSER, CHROME_FRAME, - CEEE, }; static BrowserDistribution* GetDistribution(); - static BrowserDistribution* GetSpecificDistribution(DistributionType type); + static BrowserDistribution* GetSpecificDistribution( + Type type, const installer_util::MasterPreferences& prefs); - DistributionType GetType() const { return type_; } + Type GetType() const { return type_; } static int GetInstallReturnCode(installer_util::InstallStatus install_status); @@ -109,18 +115,27 @@ class BrowserDistribution { // an uninstallation, the uninstaller will check if any one of a potential // set of key files is in use and if they are, abort the delete operation. // Only if none of the key files are in use, can the folder be deleted. - // Note that this function does not return a full path to the key file, - // only a file name. - virtual FilePath::StringType GetKeyFile(); + // Note that this function does not return a full path to the key file(s), + // only (a) file name(s). + virtual std::vector<FilePath> GetKeyFiles(); + + // Returns the list of Com Dlls that this product cares about having + // registered and unregistered. The list may be empty. + virtual std::vector<FilePath> GetComDllList(); + + // Given a command line, appends the set of uninstall flags the uninstaller + // for this distribution will require. + virtual void AppendUninstallCommandLineFlags(CommandLine* cmd_line); protected: - BrowserDistribution() : type_(CHROME_BROWSER) {} + explicit BrowserDistribution(const installer_util::MasterPreferences& prefs); template<class DistributionClass> static BrowserDistribution* GetOrCreateBrowserDistribution( + const installer_util::MasterPreferences& prefs, BrowserDistribution** dist); - DistributionType type_; + Type type_; private: DISALLOW_COPY_AND_ASSIGN(BrowserDistribution); |