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