Home | History | Annotate | Download | only in common
      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.
      4 
      5 #include "chrome/common/chrome_version_info.h"
      6 
      7 #include "base/android/build_info.h"
      8 #include "base/logging.h"
      9 #include "base/strings/string_util.h"
     10 
     11 namespace chrome {
     12 
     13 // static
     14 std::string VersionInfo::GetVersionStringModifier() {
     15   switch (GetChannel()) {
     16     case CHANNEL_UNKNOWN: return "unknown";
     17     case CHANNEL_CANARY: return "canary";
     18     case CHANNEL_DEV: return "dev";
     19     case CHANNEL_BETA: return "beta";
     20     case CHANNEL_STABLE: return std::string();
     21   }
     22   NOTREACHED() << "Unknown channel " << GetChannel();
     23   return std::string();
     24 }
     25 
     26 // static
     27 VersionInfo::Channel VersionInfo::GetChannel() {
     28   const base::android::BuildInfo* bi = base::android::BuildInfo::GetInstance();
     29   DCHECK(bi && bi->package_name());
     30 
     31   if (!strcmp(bi->package_name(), "com.android.chrome"))
     32     return CHANNEL_STABLE;
     33   if (!strcmp(bi->package_name(), "com.chrome.beta"))
     34     return CHANNEL_BETA;
     35   if (!strcmp(bi->package_name(), "com.google.android.apps.chrome_dev"))
     36     return CHANNEL_DEV;
     37   if (!strcmp(bi->package_name(), "com.chrome.canary"))
     38     return CHANNEL_CANARY;
     39 
     40   return CHANNEL_UNKNOWN;
     41 }
     42 
     43 }  // namespace chrome
     44