chrome_version_info_posix.cc revision f2477e01787aa58f445919b809d89e252beef54f
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/chrome_version_info.h"
6
7#include "build/build_config.h"
8
9namespace chrome {
10
11// static
12std::string VersionInfo::GetVersionStringModifier() {
13  char* env = getenv("CHROME_VERSION_EXTRA");
14  if (!env) {
15    std::string modifier;
16#if defined(USE_AURA) && defined(OS_LINUX) && !defined(OS_CHROMEOS)
17    modifier = "aura";
18#endif
19    return modifier;
20  }
21  std::string modifier(env);
22
23#if defined(GOOGLE_CHROME_BUILD)
24  // Only ever return "", "unknown", "dev" or "beta" in a branded build.
25  if (modifier == "unstable")  // linux version of "dev"
26    modifier = "dev";
27  if (modifier == "stable") {
28    modifier = "";
29  } else if ((modifier == "dev") || (modifier == "beta")) {
30    // do nothing.
31  } else {
32    modifier = "unknown";
33  }
34#endif
35
36#if defined(USE_AURA) && defined(OS_LINUX) && !defined(OS_CHROMEOS)
37  modifier += " aura";
38#endif
39
40  return modifier;
41}
42
43// static
44VersionInfo::Channel VersionInfo::GetChannel() {
45#if defined(GOOGLE_CHROME_BUILD)
46  std::string channel = GetVersionStringModifier();
47  if (channel.empty()) {
48    return CHANNEL_STABLE;
49  } else if (channel == "beta") {
50    return CHANNEL_BETA;
51  } else if (channel == "dev") {
52    return CHANNEL_DEV;
53  } else if (channel == "canary") {
54    return CHANNEL_CANARY;
55  }
56#endif
57
58  return CHANNEL_UNKNOWN;
59}
60
61}  // namespace chrome
62