Refactor version-getting info into a chrome::VersionInfo object.
I was trying to replace wstring usage in base::FileVersionInfo, but
that class is rather Windows-specific with strange fields like
"private_build()" where the value and encoding aren't clear. 95%
of the users of FileVersionInfo actually just care about the current
Chrome version, so we can provide a much simpler interface for them.
We still use FileVersionInfo for retrieving information from e.g.
plugin DLLs, but in those cases the usage is clearer.
Review URL: http://codereview.chromium.org/3135028
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57725 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/metrics/metrics_log.cc b/chrome/browser/metrics/metrics_log.cc
index 9364427..396c5335 100644
--- a/chrome/browser/metrics/metrics_log.cc
+++ b/chrome/browser/metrics/metrics_log.cc
@@ -9,7 +9,6 @@
#include "base/basictypes.h"
#include "base/file_util.h"
-#include "base/file_version_info.h"
#include "base/perftimer.h"
#include "base/scoped_ptr.h"
#include "base/string_util.h"
@@ -70,20 +69,18 @@
// static
std::string MetricsLog::GetVersionString() {
- scoped_ptr<FileVersionInfo> version_info(
- chrome::GetChromeVersionInfo());
- if (version_info.get()) {
- std::string version = WideToUTF8(version_info->product_version());
- if (!version_extension_.empty())
- version += version_extension_;
- if (!version_info->is_official_build())
- version.append("-devel");
- return version;
- } else {
- NOTREACHED() << "Unable to retrieve version string.";
+ chrome::VersionInfo version_info;
+ if (!version_info.is_valid()) {
+ NOTREACHED() << "Unable to retrieve version info.";
+ return std::string();
}
- return std::string();
+ std::string version = version_info.Version();
+ if (!version_extension_.empty())
+ version += version_extension_;
+ if (!version_info.IsOfficialBuild())
+ version.append("-devel");
+ return version;
}
void MetricsLog::RecordIncrementalStabilityElements() {