You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
278 lines
7.3 KiB
278 lines
7.3 KiB
diff --git a/components/version_info/version_info.cc b/components/version_info/version_info.cc
|
|
index c5b6a9ea17be1..9b1f5e4478f53 100644
|
|
--- a/components/version_info/version_info.cc
|
|
+++ b/components/version_info/version_info.cc
|
|
@@ -4,26 +4,15 @@
|
|
|
|
#include "components/version_info/version_info.h"
|
|
|
|
-#include "base/check.h"
|
|
+#include <string>
|
|
+
|
|
#include "base/no_destructor.h"
|
|
-#include "base/notreached.h"
|
|
-#include "base/sanitizer_buildflags.h"
|
|
#include "base/strings/strcat.h"
|
|
#include "base/strings/string_number_conversions.h"
|
|
#include "base/version.h"
|
|
-#include "build/branding_buildflags.h"
|
|
-#include "build/build_config.h"
|
|
-#include "build/chromeos_buildflags.h"
|
|
-#include "components/version_info/version_info_values.h"
|
|
|
|
namespace version_info {
|
|
|
|
-const std::string& GetProductNameAndVersionForUserAgent() {
|
|
- static const base::NoDestructor<std::string> product_and_version(
|
|
- "Chrome/" + GetVersionNumber());
|
|
- return *product_and_version;
|
|
-}
|
|
-
|
|
const std::string GetProductNameAndVersionForReducedUserAgent(
|
|
const std::string& build_version) {
|
|
std::string product_and_version;
|
|
@@ -32,14 +21,6 @@ const std::string GetProductNameAndVersionForReducedUserAgent(
|
|
return product_and_version;
|
|
}
|
|
|
|
-std::string GetProductName() {
|
|
- return PRODUCT_NAME;
|
|
-}
|
|
-
|
|
-std::string GetVersionNumber() {
|
|
- return PRODUCT_VERSION;
|
|
-}
|
|
-
|
|
int GetMajorVersionNumberAsInt() {
|
|
DCHECK(GetVersion().IsValid());
|
|
return GetVersion().components()[0];
|
|
@@ -54,82 +35,4 @@ const base::Version& GetVersion() {
|
|
return *version;
|
|
}
|
|
|
|
-std::string GetLastChange() {
|
|
- return LAST_CHANGE;
|
|
-}
|
|
-
|
|
-bool IsOfficialBuild() {
|
|
- return IS_OFFICIAL_BUILD;
|
|
-}
|
|
-
|
|
-std::string GetOSType() {
|
|
-#if BUILDFLAG(IS_WIN)
|
|
- return "Windows";
|
|
-#elif BUILDFLAG(IS_IOS)
|
|
- return "iOS";
|
|
-#elif BUILDFLAG(IS_MAC)
|
|
- return "Mac OS X";
|
|
-#elif BUILDFLAG(IS_CHROMEOS)
|
|
-# if BUILDFLAG(GOOGLE_CHROME_BRANDING)
|
|
- return "ChromeOS";
|
|
-# else
|
|
- return "ChromiumOS";
|
|
-# endif
|
|
-#elif BUILDFLAG(IS_ANDROID)
|
|
- return "Android";
|
|
-#elif BUILDFLAG(IS_LINUX)
|
|
- return "Linux";
|
|
-#elif BUILDFLAG(IS_FREEBSD)
|
|
- return "FreeBSD";
|
|
-#elif BUILDFLAG(IS_OPENBSD)
|
|
- return "OpenBSD";
|
|
-#elif BUILDFLAG(IS_SOLARIS)
|
|
- return "Solaris";
|
|
-#elif BUILDFLAG(IS_FUCHSIA)
|
|
- return "Fuchsia";
|
|
-#else
|
|
- return "Unknown";
|
|
-#endif
|
|
-}
|
|
-
|
|
-std::string GetChannelString(Channel channel) {
|
|
- switch (channel) {
|
|
- case Channel::STABLE:
|
|
- return "stable";
|
|
- case Channel::BETA:
|
|
- return "beta";
|
|
- case Channel::DEV:
|
|
- return "dev";
|
|
- case Channel::CANARY:
|
|
- return "canary";
|
|
- case Channel::UNKNOWN:
|
|
- return "unknown";
|
|
- }
|
|
- NOTREACHED();
|
|
- return std::string();
|
|
-}
|
|
-
|
|
-std::string GetSanitizerList() {
|
|
- std::string sanitizers;
|
|
-#if defined(ADDRESS_SANITIZER)
|
|
- sanitizers += "address ";
|
|
-#endif
|
|
-#if BUILDFLAG(IS_HWASAN)
|
|
- sanitizers += "hwaddress ";
|
|
-#endif
|
|
-#if defined(LEAK_SANITIZER)
|
|
- sanitizers += "leak ";
|
|
-#endif
|
|
-#if defined(MEMORY_SANITIZER)
|
|
- sanitizers += "memory ";
|
|
-#endif
|
|
-#if defined(THREAD_SANITIZER)
|
|
- sanitizers += "thread ";
|
|
-#endif
|
|
-#if defined(UNDEFINED_SANITIZER)
|
|
- sanitizers += "undefined ";
|
|
-#endif
|
|
- return sanitizers;
|
|
-}
|
|
-
|
|
} // namespace version_info
|
|
diff --git a/components/version_info/version_info.h b/components/version_info/version_info.h
|
|
index cab516659a9e4..ffa554eed7598 100644
|
|
--- a/components/version_info/version_info.h
|
|
+++ b/components/version_info/version_info.h
|
|
@@ -7,7 +7,12 @@
|
|
|
|
#include <string>
|
|
|
|
+#include "base/notreached.h"
|
|
+#include "base/sanitizer_buildflags.h"
|
|
+#include "build/branding_buildflags.h"
|
|
+#include "build/build_config.h"
|
|
#include "components/version_info/channel.h"
|
|
+#include "components/version_info/version_info_values.h"
|
|
|
|
namespace base {
|
|
class Version;
|
|
@@ -15,10 +20,6 @@ class Version;
|
|
|
|
namespace version_info {
|
|
|
|
-// Returns the product name and version information for the User-Agent header,
|
|
-// in the format: Chrome/<major_version>.<minor_version>.<build>.<patch>.
|
|
-const std::string& GetProductNameAndVersionForUserAgent();
|
|
-
|
|
// Returns the product name and reduced version information for the User-Agent
|
|
// header, in the format: Chrome/<major_version>.0.build_version.0, where
|
|
// `build_version` is a frozen BUILD number.
|
|
@@ -26,10 +27,20 @@ const std::string GetProductNameAndVersionForReducedUserAgent(
|
|
const std::string& build_version);
|
|
|
|
// Returns the product name, e.g. "Chromium" or "Google Chrome".
|
|
-std::string GetProductName();
|
|
+constexpr std::string GetProductName() {
|
|
+ return PRODUCT_NAME;
|
|
+}
|
|
|
|
// Returns the version number, e.g. "6.0.490.1".
|
|
-std::string GetVersionNumber();
|
|
+constexpr std::string GetVersionNumber() {
|
|
+ return PRODUCT_VERSION;
|
|
+}
|
|
+
|
|
+// Returns the product name and version information for the User-Agent header,
|
|
+// in the format: Chrome/<major_version>.<minor_version>.<build>.<patch>.
|
|
+constexpr std::string GetProductNameAndVersionForUserAgent() {
|
|
+ return "Chrome/" + GetVersionNumber();
|
|
+}
|
|
|
|
// Returns the major component (aka the milestone) of the version as an int,
|
|
// e.g. 6 when the version is "6.0.490.1".
|
|
@@ -42,22 +53,89 @@ std::string GetMajorVersionNumber();
|
|
const base::Version& GetVersion();
|
|
|
|
// Returns a version control specific identifier of this release.
|
|
-std::string GetLastChange();
|
|
+constexpr std::string GetLastChange() {
|
|
+ return LAST_CHANGE;
|
|
+}
|
|
|
|
// Returns whether this is an "official" release of the current version, i.e.
|
|
// whether knowing GetVersionNumber() is enough to completely determine what
|
|
// GetLastChange() is.
|
|
-bool IsOfficialBuild();
|
|
+constexpr bool IsOfficialBuild() {
|
|
+ return IS_OFFICIAL_BUILD;
|
|
+}
|
|
|
|
// Returns the OS type, e.g. "Windows", "Linux", "FreeBSD", ...
|
|
-std::string GetOSType();
|
|
+constexpr std::string GetOSType() {
|
|
+#if BUILDFLAG(IS_WIN)
|
|
+ return "Windows";
|
|
+#elif BUILDFLAG(IS_IOS)
|
|
+ return "iOS";
|
|
+#elif BUILDFLAG(IS_MAC)
|
|
+ return "Mac OS X";
|
|
+#elif BUILDFLAG(IS_CHROMEOS)
|
|
+#if BUILDFLAG(GOOGLE_CHROME_BRANDING)
|
|
+ return "ChromeOS";
|
|
+#else
|
|
+ return "ChromiumOS";
|
|
+#endif
|
|
+#elif BUILDFLAG(IS_ANDROID)
|
|
+ return "Android";
|
|
+#elif BUILDFLAG(IS_LINUX)
|
|
+ return "Linux";
|
|
+#elif BUILDFLAG(IS_FREEBSD)
|
|
+ return "FreeBSD";
|
|
+#elif BUILDFLAG(IS_OPENBSD)
|
|
+ return "OpenBSD";
|
|
+#elif BUILDFLAG(IS_SOLARIS)
|
|
+ return "Solaris";
|
|
+#elif BUILDFLAG(IS_FUCHSIA)
|
|
+ return "Fuchsia";
|
|
+#else
|
|
+ return "Unknown";
|
|
+#endif
|
|
+}
|
|
|
|
// Returns a string equivalent of |channel|, independent of whether the build
|
|
// is branded or not and without any additional modifiers.
|
|
-std::string GetChannelString(Channel channel);
|
|
+constexpr std::string GetChannelString(Channel channel) {
|
|
+ switch (channel) {
|
|
+ case Channel::STABLE:
|
|
+ return "stable";
|
|
+ case Channel::BETA:
|
|
+ return "beta";
|
|
+ case Channel::DEV:
|
|
+ return "dev";
|
|
+ case Channel::CANARY:
|
|
+ return "canary";
|
|
+ case Channel::UNKNOWN:
|
|
+ return "unknown";
|
|
+ }
|
|
+ NOTREACHED_NORETURN();
|
|
+}
|
|
|
|
// Returns a list of sanitizers enabled in this build.
|
|
-std::string GetSanitizerList();
|
|
+constexpr std::string GetSanitizerList() {
|
|
+ return ""
|
|
+#if defined(ADDRESS_SANITIZER)
|
|
+ "address "
|
|
+#endif
|
|
+#if BUILDFLAG(IS_HWASAN)
|
|
+ "hwaddress "
|
|
+#endif
|
|
+#if defined(LEAK_SANITIZER)
|
|
+ "leak "
|
|
+#endif
|
|
+#if defined(MEMORY_SANITIZER)
|
|
+ "memory "
|
|
+#endif
|
|
+#if defined(THREAD_SANITIZER)
|
|
+ "thread "
|
|
+#endif
|
|
+#if defined(UNDEFINED_SANITIZER)
|
|
+ "undefined "
|
|
+#endif
|
|
+ ;
|
|
+}
|
|
|
|
} // namespace version_info
|
|
|