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/chrome_version_info.h"
7 #include "base/android/build_info.h"
8 #include "base/logging.h"
9 #include "base/strings/string_util.h"
14 std::string
VersionInfo::GetVersionStringModifier() {
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());
27 version_info::Channel
VersionInfo::GetChannel() {
28 const base::android::BuildInfo
* bi
= base::android::BuildInfo::GetInstance();
29 DCHECK(bi
&& bi
->package_name());
31 if (!strcmp(bi
->package_name(), "com.android.chrome")
32 || !strcmp(bi
->package_name(), "com.chrome.work"))
33 return version_info::Channel::STABLE
;
34 if (!strcmp(bi
->package_name(), "com.chrome.beta"))
35 return version_info::Channel::BETA
;
36 if (!strcmp(bi
->package_name(), "com.chrome.dev"))
37 return version_info::Channel::DEV
;
38 if (!strcmp(bi
->package_name(), "com.chrome.canary"))
39 return version_info::Channel::CANARY
;
41 return version_info::Channel::UNKNOWN
;