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