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" |
(...skipping 23 matching lines...) Expand all Loading... |
34 namespace { | 34 namespace { |
35 | 35 |
36 const wchar_t kChromiumActiveSetupGuid[] = | 36 const wchar_t kChromiumActiveSetupGuid[] = |
37 L"{7D2B3E1D-D096-4594-9D8F-A6667F12E0AC}"; | 37 L"{7D2B3E1D-D096-4594-9D8F-A6667F12E0AC}"; |
38 | 38 |
39 const wchar_t kCommandExecuteImplUuid[] = | 39 const wchar_t kCommandExecuteImplUuid[] = |
40 L"{A2DF06F9-A21A-44A8-8A99-8B9C84F29160}"; | 40 L"{A2DF06F9-A21A-44A8-8A99-8B9C84F29160}"; |
41 | 41 |
42 // The BrowserDistribution objects are never freed. | 42 // The BrowserDistribution objects are never freed. |
43 BrowserDistribution* g_browser_distribution = NULL; | 43 BrowserDistribution* g_browser_distribution = NULL; |
44 BrowserDistribution::Type GetCurrentDistributionType() { | |
45 return BrowserDistribution::CHROME_BROWSER; | |
46 } | |
47 | 44 |
48 } // namespace | 45 } // namespace |
49 | 46 |
50 BrowserDistribution::BrowserDistribution() | 47 BrowserDistribution::BrowserDistribution() |
51 : type_(CHROME_BROWSER), | 48 : app_reg_data_(base::MakeUnique<NonUpdatingAppRegistrationData>( |
52 app_reg_data_(base::MakeUnique<NonUpdatingAppRegistrationData>( | |
53 L"Software\\Chromium")) {} | 49 L"Software\\Chromium")) {} |
54 | 50 |
55 BrowserDistribution::BrowserDistribution( | 51 BrowserDistribution::BrowserDistribution( |
56 Type type, | |
57 std::unique_ptr<AppRegistrationData> app_reg_data) | 52 std::unique_ptr<AppRegistrationData> app_reg_data) |
58 : type_(type), app_reg_data_(std::move(app_reg_data)) {} | 53 : app_reg_data_(std::move(app_reg_data)) {} |
59 | 54 |
60 BrowserDistribution::~BrowserDistribution() {} | 55 BrowserDistribution::~BrowserDistribution() {} |
61 | 56 |
62 template<class DistributionClass> | 57 template<class DistributionClass> |
63 BrowserDistribution* BrowserDistribution::GetOrCreateBrowserDistribution( | 58 BrowserDistribution* BrowserDistribution::GetOrCreateBrowserDistribution( |
64 BrowserDistribution** dist) { | 59 BrowserDistribution** dist) { |
65 if (!*dist) { | 60 if (!*dist) { |
66 DistributionClass* temp = new DistributionClass(); | 61 DistributionClass* temp = new DistributionClass(); |
67 if (base::subtle::NoBarrier_CompareAndSwap( | 62 if (base::subtle::NoBarrier_CompareAndSwap( |
68 reinterpret_cast<base::subtle::AtomicWord*>(dist), NULL, | 63 reinterpret_cast<base::subtle::AtomicWord*>(dist), NULL, |
69 reinterpret_cast<base::subtle::AtomicWord>(temp)) != NULL) | 64 reinterpret_cast<base::subtle::AtomicWord>(temp)) != NULL) |
70 delete temp; | 65 delete temp; |
71 } | 66 } |
72 | 67 |
73 return *dist; | 68 return *dist; |
74 } | 69 } |
75 | 70 |
| 71 // static |
76 BrowserDistribution* BrowserDistribution::GetDistribution() { | 72 BrowserDistribution* BrowserDistribution::GetDistribution() { |
77 return GetSpecificDistribution(GetCurrentDistributionType()); | |
78 } | |
79 | |
80 // static | |
81 BrowserDistribution* BrowserDistribution::GetSpecificDistribution( | |
82 BrowserDistribution::Type type) { | |
83 DCHECK_EQ(type, CHROME_BROWSER); | |
84 BrowserDistribution* dist = NULL; | 73 BrowserDistribution* dist = NULL; |
85 | 74 |
86 #if defined(GOOGLE_CHROME_BUILD) | 75 #if defined(GOOGLE_CHROME_BUILD) |
87 if (InstallUtil::IsChromeSxSProcess()) { | 76 if (InstallUtil::IsChromeSxSProcess()) { |
88 dist = GetOrCreateBrowserDistribution<GoogleChromeSxSDistribution>( | 77 dist = GetOrCreateBrowserDistribution<GoogleChromeSxSDistribution>( |
89 &g_browser_distribution); | 78 &g_browser_distribution); |
90 } else { | 79 } else { |
91 dist = GetOrCreateBrowserDistribution<GoogleChromeDistribution>( | 80 dist = GetOrCreateBrowserDistribution<GoogleChromeDistribution>( |
92 &g_browser_distribution); | 81 &g_browser_distribution); |
93 } | 82 } |
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
231 installer::InstallStatus install_status) { | 220 installer::InstallStatus install_status) { |
232 } | 221 } |
233 | 222 |
234 bool BrowserDistribution::ShouldSetExperimentLabels() { | 223 bool BrowserDistribution::ShouldSetExperimentLabels() { |
235 return false; | 224 return false; |
236 } | 225 } |
237 | 226 |
238 bool BrowserDistribution::HasUserExperiments() { | 227 bool BrowserDistribution::HasUserExperiments() { |
239 return false; | 228 return false; |
240 } | 229 } |
OLD | NEW |