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
3 // found in the LICENSE file.
5 #include "chrome/common/channel_info.h"
7 #include "base/android/build_info.h"
8 #include "base/logging.h"
9 #include "base/strings/string_util.h"
10 #include "components/version_info/version_info.h"
14 std::string
GetChannelString() {
15 switch (GetChannel()) {
16 case version_info::Channel::UNKNOWN
: return "unknown";
17 case version_info::Channel::CANARY
: return "canary";
18 case version_info::Channel::DEV
: return "dev";
19 case version_info::Channel::BETA
: return "beta";
20 case version_info::Channel::STABLE
: return std::string();
22 NOTREACHED() << "Unknown channel " << static_cast<int>(GetChannel());
26 version_info::Channel
GetChannel() {
27 const base::android::BuildInfo
* bi
= base::android::BuildInfo::GetInstance();
28 DCHECK(bi
&& bi
->package_name());
30 if (!strcmp(bi
->package_name(), "com.android.chrome") ||
31 !strcmp(bi
->package_name(), "com.chrome.work"))
32 return version_info::Channel::STABLE
;
33 if (!strcmp(bi
->package_name(), "com.chrome.beta"))
34 return version_info::Channel::BETA
;
35 if (!strcmp(bi
->package_name(), "com.chrome.dev"))
36 return version_info::Channel::DEV
;
37 if (!strcmp(bi
->package_name(), "com.chrome.canary"))
38 return version_info::Channel::CANARY
;
40 return version_info::Channel::UNKNOWN
;