| 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 |