channel_info_chromeos.cc 2.2 KB

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