1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROME_INSTALLER_UTIL_GOOGLE_CHROME_SXS_DISTRIBUTION_H_
6 #define CHROME_INSTALLER_UTIL_GOOGLE_CHROME_SXS_DISTRIBUTION_H_
8 #include "base/strings/string16.h"
9 #include "chrome/installer/util/browser_distribution.h"
10 #include "chrome/installer/util/google_chrome_distribution.h"
11 #include "chrome/installer/util/l10n_string_util.h"
12 #include "chrome/installer/util/util_constants.h"
14 // GoogleChromeSxSDistribution encapsulates properties of Google Chrome Sxs
15 // distribution which can co-exist with other Google Chrome distributions.
16 // Google Chrome Sxs distribution is installed to a different path, runs
17 // alongside with normally installed Google Chrome, and is updated separately.
18 // It is mainly used for developer preview and testing, and is disabled for
19 // system level install and setting as default browser.
20 class GoogleChromeSxSDistribution
: public GoogleChromeDistribution
{
22 base::string16
GetBaseAppName() override
;
23 base::string16
GetShortcutName(ShortcutType shortcut_type
) override
;
24 int GetIconIndex(ShortcutType shortcut_type
) override
;
25 base::string16
GetStartMenuShortcutSubfolder(
26 Subfolder subfolder_type
) override
;
27 base::string16
GetBaseAppId() override
;
28 base::string16
GetBrowserProgIdPrefix() override
;
29 base::string16
GetBrowserProgIdDesc() override
;
30 base::string16
GetInstallSubDir() override
;
31 base::string16
GetUninstallRegPath() override
;
32 DefaultBrowserControlPolicy
GetDefaultBrowserControlPolicy() override
;
33 bool GetChromeChannel(base::string16
* channel
) override
;
34 bool GetCommandExecuteImplClsid(base::string16
* handler_class_uuid
) override
;
35 bool ShouldSetExperimentLabels() override
;
36 bool HasUserExperiments() override
;
37 // returns the channel name for GoogleChromeSxSDistribution
38 static base::string16
ChannelName();
40 friend class BrowserDistribution
;
42 // Disallow construction from non-friends.
43 GoogleChromeSxSDistribution();
46 #endif // CHROME_INSTALLER_UTIL_GOOGLE_CHROME_SXS_DISTRIBUTION_H_