Index: chrome/installer/util/product_operations.h |
diff --git a/chrome/installer/util/product_operations.h b/chrome/installer/util/product_operations.h |
index 77d094b6293877b1c8b1e56ecf2bf57899d91c19..c826c7e2cc30f11fd7811cb551ac5d68bcb1805a 100644 |
--- a/chrome/installer/util/product_operations.h |
+++ b/chrome/installer/util/product_operations.h |
@@ -10,7 +10,9 @@ |
#include <vector> |
#include "base/files/file_path.h" |
+#include "base/string16.h" |
#include "chrome/installer/util/shell_util.h" |
+#include "chrome/installer/util/util_constants.h" |
class BrowserDistribution; |
class CommandLine; |
@@ -30,11 +32,11 @@ class ProductOperations { |
// Reads product-specific options from |prefs|, adding them to |options|. |
virtual void ReadOptions(const MasterPreferences& prefs, |
- std::set<std::wstring>* options) const = 0; |
+ std::set<string16>* options) const = 0; |
// Reads product-specific options from |command|, adding them to |options|. |
virtual void ReadOptions(const CommandLine& command, |
- std::set<std::wstring>* options) const = 0; |
+ std::set<string16>* options) const = 0; |
// A key-file is a file such as a DLL on Windows that is expected to be in use |
// when the product is being used. For example "chrome.dll" for Chrome. |
@@ -44,28 +46,28 @@ class ProductOperations { |
// 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(s), only (a) file |
// name(s). |
- virtual void AddKeyFiles(const std::set<std::wstring>& options, |
+ virtual void AddKeyFiles(const std::set<string16>& options, |
std::vector<base::FilePath>* key_files) const = 0; |
// Adds to |com_dll_list| the list of COM DLLs that are to be registered |
// and/or unregistered. The list may be empty. |
virtual void AddComDllList( |
- const std::set<std::wstring>& options, |
+ const std::set<string16>& options, |
std::vector<base::FilePath>* com_dll_list) const = 0; |
// Given a command line, appends the set of product-specific flags. These are |
// required for product-specific uninstall commands, but are of use for any |
// invocation of setup.exe for the product. |
- virtual void AppendProductFlags(const std::set<std::wstring>& options, |
+ virtual void AppendProductFlags(const std::set<string16>& options, |
CommandLine* cmd_line) const = 0; |
// Given a command line, appends the set of product-specific rename flags. |
- virtual void AppendRenameFlags(const std::set<std::wstring>& options, |
+ virtual void AppendRenameFlags(const std::set<string16>& options, |
CommandLine* cmd_line) const = 0; |
// Adds or removes product-specific flags in |channel_info|. Returns true if |
// |channel_info| is modified. |
- virtual bool SetChannelFlags(const std::set<std::wstring>& options, |
+ virtual bool SetChannelFlags(const std::set<string16>& options, |
bool set, |
ChannelInfo* channel_info) const = 0; |
@@ -73,7 +75,7 @@ class ProductOperations { |
// of installed applications for this product. This does not test for use of |
// MSI; see InstallerState::is_msi. |
virtual bool ShouldCreateUninstallEntry( |
- const std::set<std::wstring>& options) const = 0; |
+ const std::set<string16>& options) const = 0; |
// Modifies a ShellUtil::ShortcutProperties object by assigning default values |
// to unintialized members. |
@@ -81,6 +83,14 @@ class ProductOperations { |
BrowserDistribution* dist, |
const base::FilePath& target_exe, |
ShellUtil::ShortcutProperties* properties) const = 0; |
+ |
+ // After an install or upgrade the user might qualify to participate in an |
+ // experiment. This function determines if the user qualifies and if so it |
+ // sets the wheels in motion or in simple cases does the experiment itself. |
+ virtual void LaunchUserExperiment(const base::FilePath& setup_path, |
+ const std::set<string16>& options, |
+ InstallStatus status, |
+ bool system_level) const = 0; |
}; |
} // namespace installer |