1 // Copyright (c) 2011 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. 4 5 #include "chrome/common/channel_info.h" 6 7 #include "base/system/sys_info.h" 8 #include "build/branding_buildflags.h" 9 #include "chromeos/crosapi/cpp/crosapi_constants.h" 10 #include "components/version_info/version_info.h" 11 12 namespace chrome { 13 namespace { 14 15 version_info::Channel g_chromeos_channel = version_info::Channel::UNKNOWN; 16 17 #if BUILDFLAG(GOOGLE_CHROME_BRANDING) 18 // Sets the |g_chromeos_channel|. SetChannel(const std::string & channel)19void SetChannel(const std::string& channel) { 20 if (channel == crosapi::kReleaseChannelStable) 21 g_chromeos_channel = version_info::Channel::STABLE; 22 else if (channel == crosapi::kReleaseChannelBeta) 23 g_chromeos_channel = version_info::Channel::BETA; 24 else if (channel == crosapi::kReleaseChannelDev) 25 g_chromeos_channel = version_info::Channel::DEV; 26 else if (channel == crosapi::kReleaseChannelCanary) 27 g_chromeos_channel = version_info::Channel::CANARY; 28 else 29 g_chromeos_channel = version_info::Channel::UNKNOWN; 30 } 31 #endif 32 33 } // namespace 34 GetChannelName()35std::string GetChannelName() { 36 #if BUILDFLAG(GOOGLE_CHROME_BRANDING) 37 switch (GetChannel()) { 38 case version_info::Channel::STABLE: 39 return std::string(); 40 case version_info::Channel::BETA: 41 return "beta"; 42 case version_info::Channel::DEV: 43 return "dev"; 44 case version_info::Channel::CANARY: 45 return "canary"; 46 default: 47 return "unknown"; 48 } 49 #endif 50 return std::string(); 51 } 52 GetChannel()53version_info::Channel GetChannel() { 54 static bool is_channel_set = false; 55 if (is_channel_set) 56 return g_chromeos_channel; 57 58 #if BUILDFLAG(GOOGLE_CHROME_BRANDING) 59 std::string channel; 60 if (base::SysInfo::GetLsbReleaseValue(crosapi::kChromeOSReleaseTrack, 61 &channel)) { 62 SetChannel(channel); 63 is_channel_set = true; 64 } 65 #endif 66 return g_chromeos_channel; 67 } 68 GetChannelSuffixForDataDir()69std::string GetChannelSuffixForDataDir() { 70 // ChromeOS doesn't support side-by-side installations. 71 return std::string(); 72 } 73 74 } // namespace chrome 75