// Copyright 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "components/version_info/version_info.h" #include "build/build_config.h" #include "components/version_info/version_info_values.h" #include "grit/components_strings.h" #if defined(USE_UNOFFICIAL_VERSION_NUMBER) #include "ui/base/l10n/l10n_util.h" // nogncheck #endif // USE_UNOFFICIAL_VERSION_NUMBER namespace version_info { std::string GetProductNameAndVersionForUserAgent() { return "Chrome/" + GetVersionNumber(); } std::string GetProductName() { return PRODUCT_NAME; } std::string GetVersionNumber() { return PRODUCT_VERSION; } std::string GetLastChange() { return LAST_CHANGE; } bool IsOfficialBuild() { return IS_OFFICIAL_BUILD; } std::string GetOSType() { #if defined(OS_WIN) return "Windows"; #elif defined(OS_IOS) return "iOS"; #elif defined(OS_MACOSX) return "Mac OS X"; #elif defined(OS_CHROMEOS) # if defined(GOOGLE_CHROME_BUILD) return "Chrome OS"; # else return "Chromium OS"; # endif #elif defined(OS_ANDROID) return "Android"; #elif defined(OS_LINUX) return "Linux"; #elif defined(OS_FREEBSD) return "FreeBSD"; #elif defined(OS_OPENBSD) return "OpenBSD"; #elif defined(OS_SOLARIS) return "Solaris"; #else return "Unknown"; #endif } std::string GetChannelString(Channel channel) { switch (channel) { case Channel::STABLE: return "stable"; break; case Channel::BETA: return "beta"; break; case Channel::DEV: return "dev"; break; case Channel::CANARY: return "canary"; break; case Channel::UNKNOWN: return "unknown"; break; } return std::string(); } std::string GetVersionStringWithModifier(const std::string& modifier) { std::string current_version; current_version += GetVersionNumber(); #if defined(USE_UNOFFICIAL_VERSION_NUMBER) current_version += " ("; current_version += l10n_util::GetStringUTF8(IDS_VERSION_UI_UNOFFICIAL); current_version += " "; current_version += GetLastChange(); current_version += " "; current_version += GetOSType(); current_version += ")"; #endif // USE_UNOFFICIAL_VERSION_NUMBER if (!modifier.empty()) current_version += " " + modifier; return current_version; } } // namespace version_info