OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 // | 4 // |
5 // This file defines a class that contains various method related to branding. | 5 // This file defines a class that contains various method related to branding. |
6 // It provides only default implementations of these methods. Usually to add | 6 // It provides only default implementations of these methods. Usually to add |
7 // specific branding, we will need to extend this class with a custom | 7 // specific branding, we will need to extend this class with a custom |
8 // implementation. | 8 // implementation. |
9 | 9 |
10 #include "chrome/installer/util/browser_distribution.h" | 10 #include "chrome/installer/util/browser_distribution.h" |
11 | 11 |
12 #include "base/atomicops.h" | 12 #include "base/atomicops.h" |
13 #include "base/command_line.h" | 13 #include "base/command_line.h" |
14 #include "base/file_path.h" | 14 #include "base/file_path.h" |
15 #include "base/path_service.h" | 15 #include "base/path_service.h" |
16 #include "base/logging.h" | 16 #include "base/logging.h" |
17 #include "base/win/registry.h" | 17 #include "base/win/registry.h" |
18 #include "base/win/windows_version.h" | 18 #include "base/win/windows_version.h" |
19 #include "chrome/common/env_vars.h" | 19 #include "chrome/common/env_vars.h" |
20 #include "chrome/installer/util/chrome_app_host_distribution.h" | |
21 #include "chrome/installer/util/chrome_frame_distribution.h" | 20 #include "chrome/installer/util/chrome_frame_distribution.h" |
22 #include "chrome/installer/util/chromium_binaries_distribution.h" | 21 #include "chrome/installer/util/chromium_binaries_distribution.h" |
| 22 #include "chrome/installer/util/google_chrome_distribution.h" |
23 #include "chrome/installer/util/google_chrome_binaries_distribution.h" | 23 #include "chrome/installer/util/google_chrome_binaries_distribution.h" |
24 #include "chrome/installer/util/google_chrome_distribution.h" | |
25 #include "chrome/installer/util/google_chrome_sxs_distribution.h" | 24 #include "chrome/installer/util/google_chrome_sxs_distribution.h" |
26 #include "chrome/installer/util/install_util.h" | 25 #include "chrome/installer/util/install_util.h" |
27 #include "chrome/installer/util/l10n_string_util.h" | 26 #include "chrome/installer/util/l10n_string_util.h" |
28 #include "chrome/installer/util/master_preferences.h" | 27 #include "chrome/installer/util/master_preferences.h" |
29 | 28 |
30 #include "installer_util_strings.h" // NOLINT | 29 #include "installer_util_strings.h" // NOLINT |
31 | 30 |
32 using installer::MasterPreferences; | 31 using installer::MasterPreferences; |
33 | 32 |
34 namespace { | 33 namespace { |
35 | 34 |
36 const wchar_t kCommandExecuteImplUuid[] = | 35 const wchar_t kCommandExecuteImplUuid[] = |
37 L"{A2DF06F9-A21A-44A8-8A99-8B9C84F29160}"; | 36 L"{A2DF06F9-A21A-44A8-8A99-8B9C84F29160}"; |
38 const wchar_t kDelegateExecuteLibUuid[] = | 37 const wchar_t kDelegateExecuteLibUuid[] = |
39 L"{7779FB70-B399-454A-AA1A-BAA850032B10}"; | 38 L"{7779FB70-B399-454A-AA1A-BAA850032B10}"; |
40 const wchar_t kDelegateExecuteLibVersion[] = L"1.0"; | 39 const wchar_t kDelegateExecuteLibVersion[] = L"1.0"; |
41 const wchar_t kICommandExecuteImplUuid[] = | 40 const wchar_t kICommandExecuteImplUuid[] = |
42 L"{0BA0D4E9-2259-4963-B9AE-A839F7CB7544}"; | 41 L"{0BA0D4E9-2259-4963-B9AE-A839F7CB7544}"; |
43 | 42 |
44 // The BrowserDistribution objects are never freed. | 43 // The BrowserDistribution objects are never freed. |
45 BrowserDistribution* g_browser_distribution = NULL; | 44 BrowserDistribution* g_browser_distribution = NULL; |
46 BrowserDistribution* g_chrome_frame_distribution = NULL; | 45 BrowserDistribution* g_chrome_frame_distribution = NULL; |
47 BrowserDistribution* g_binaries_distribution = NULL; | 46 BrowserDistribution* g_binaries_distribution = NULL; |
48 BrowserDistribution* g_chrome_app_host_distribution = NULL; | |
49 | 47 |
50 // Returns true if currently running in npchrome_frame.dll | 48 // Returns true if currently running in npchrome_frame.dll |
51 bool IsChromeFrameModule() { | 49 bool IsChromeFrameModule() { |
52 FilePath module_path; | 50 FilePath module_path; |
53 PathService::Get(base::FILE_MODULE, &module_path); | 51 PathService::Get(base::FILE_MODULE, &module_path); |
54 return FilePath::CompareEqualIgnoreCase(module_path.BaseName().value(), | 52 return FilePath::CompareEqualIgnoreCase(module_path.BaseName().value(), |
55 installer::kChromeFrameDll); | 53 installer::kChromeFrameDll); |
56 } | 54 } |
57 | 55 |
58 BrowserDistribution::Type GetCurrentDistributionType() { | 56 BrowserDistribution::Type GetCurrentDistributionType() { |
59 // TODO(erikwright): If the app host is installed, but not Chrome, perhaps | |
60 // this should return CHROME_APP_HOST. | |
61 static BrowserDistribution::Type type = | 57 static BrowserDistribution::Type type = |
62 (MasterPreferences::ForCurrentProcess().install_chrome_frame() || | 58 (MasterPreferences::ForCurrentProcess().install_chrome_frame() || |
63 IsChromeFrameModule()) ? | 59 IsChromeFrameModule()) ? |
64 BrowserDistribution::CHROME_FRAME : | 60 BrowserDistribution::CHROME_FRAME : |
65 BrowserDistribution::CHROME_BROWSER; | 61 BrowserDistribution::CHROME_BROWSER; |
66 return type; | 62 return type; |
67 } | 63 } |
68 | 64 |
69 } // end namespace | 65 } // end namespace |
70 | 66 |
| 67 // CHROME_BINARIES represents the binaries shared by multi-install products and |
| 68 // is not a product in and of itself, so it is not present in this collection. |
| 69 const BrowserDistribution::Type BrowserDistribution::kProductTypes[] = { |
| 70 BrowserDistribution::CHROME_BROWSER, |
| 71 BrowserDistribution::CHROME_FRAME, |
| 72 }; |
| 73 |
| 74 const size_t BrowserDistribution::kNumProductTypes = |
| 75 arraysize(BrowserDistribution::kProductTypes); |
| 76 |
71 BrowserDistribution::BrowserDistribution() | 77 BrowserDistribution::BrowserDistribution() |
72 : type_(CHROME_BROWSER) { | 78 : type_(CHROME_BROWSER) { |
73 } | 79 } |
74 | 80 |
75 BrowserDistribution::BrowserDistribution(Type type) | 81 BrowserDistribution::BrowserDistribution(Type type) |
76 : type_(type) { | 82 : type_(type) { |
77 } | 83 } |
78 | 84 |
79 template<class DistributionClass> | 85 template<class DistributionClass> |
80 BrowserDistribution* BrowserDistribution::GetOrCreateBrowserDistribution( | 86 BrowserDistribution* BrowserDistribution::GetOrCreateBrowserDistribution( |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
113 dist = GetOrCreateBrowserDistribution<BrowserDistribution>( | 119 dist = GetOrCreateBrowserDistribution<BrowserDistribution>( |
114 &g_browser_distribution); | 120 &g_browser_distribution); |
115 #endif | 121 #endif |
116 break; | 122 break; |
117 | 123 |
118 case CHROME_FRAME: | 124 case CHROME_FRAME: |
119 dist = GetOrCreateBrowserDistribution<ChromeFrameDistribution>( | 125 dist = GetOrCreateBrowserDistribution<ChromeFrameDistribution>( |
120 &g_chrome_frame_distribution); | 126 &g_chrome_frame_distribution); |
121 break; | 127 break; |
122 | 128 |
123 case CHROME_APP_HOST: | |
124 dist = GetOrCreateBrowserDistribution<ChromeAppHostDistribution>( | |
125 &g_chrome_app_host_distribution); | |
126 break; | |
127 | |
128 default: | 129 default: |
129 DCHECK_EQ(CHROME_BINARIES, type); | 130 DCHECK_EQ(CHROME_BINARIES, type); |
130 #if defined(GOOGLE_CHROME_BUILD) | 131 #if defined(GOOGLE_CHROME_BUILD) |
131 dist = GetOrCreateBrowserDistribution<GoogleChromeBinariesDistribution>( | 132 dist = GetOrCreateBrowserDistribution<GoogleChromeBinariesDistribution>( |
132 &g_binaries_distribution); | 133 &g_binaries_distribution); |
133 #else | 134 #else |
134 dist = GetOrCreateBrowserDistribution<ChromiumBinariesDistribution>( | 135 dist = GetOrCreateBrowserDistribution<ChromiumBinariesDistribution>( |
135 &g_binaries_distribution); | 136 &g_binaries_distribution); |
136 #endif | 137 #endif |
137 } | 138 } |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
269 const Version& version, const installer::Product& product, | 270 const Version& version, const installer::Product& product, |
270 bool system_level) { | 271 bool system_level) { |
271 } | 272 } |
272 | 273 |
273 | 274 |
274 void BrowserDistribution::InactiveUserToastExperiment(int flavor, | 275 void BrowserDistribution::InactiveUserToastExperiment(int flavor, |
275 const string16& experiment_group, | 276 const string16& experiment_group, |
276 const installer::Product& installation, | 277 const installer::Product& installation, |
277 const FilePath& application_path) { | 278 const FilePath& application_path) { |
278 } | 279 } |
OLD | NEW |