Commit 9d120f81 authored by thestig@chromium.org's avatar thestig@chromium.org

Improve the code added in r194423 by using the Version class.

BUG=224531

Review URL: https://chromiumcodereview.appspot.com/13888010

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@194771 0039d316-1c4b-4281-b951-d872f2087c98
parent 0750bde7
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
#include "chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.h" #include "chrome/browser/metrics/chrome_browser_main_extra_parts_metrics.h"
#include <string> #include <string>
#include <vector>
#include "base/bind.h" #include "base/bind.h"
#include "base/command_line.h" #include "base/command_line.h"
...@@ -24,8 +23,7 @@ ...@@ -24,8 +23,7 @@
#if defined(OS_LINUX) && !defined(OS_CHROMEOS) #if defined(OS_LINUX) && !defined(OS_CHROMEOS)
#include <gnu/libc-version.h> #include <gnu/libc-version.h>
#include "base/strings/string_number_conversions.h" #include "base/version.h"
#include "base/strings/string_split.h"
#endif #endif
namespace { namespace {
...@@ -69,23 +67,18 @@ void RecordDefaultBrowserUMAStat() { ...@@ -69,23 +67,18 @@ void RecordDefaultBrowserUMAStat() {
void RecordLinuxGlibcVersion() { void RecordLinuxGlibcVersion() {
#if defined(OS_LINUX) && !defined(OS_CHROMEOS) #if defined(OS_LINUX) && !defined(OS_CHROMEOS)
std::string glibc_version_string(gnu_get_libc_version()); Version version(gnu_get_libc_version());
std::vector<std::string> split_glibc_version;
base::SplitString(glibc_version_string, '.', &split_glibc_version);
UMALinuxGlibcVersion glibc_version_result = UMA_LINUX_GLIBC_NOT_PARSEABLE; UMALinuxGlibcVersion glibc_version_result = UMA_LINUX_GLIBC_NOT_PARSEABLE;
unsigned glibc_major_version = 0; if (version.IsValid() && version.components().size() == 2) {
unsigned glibc_minor_version = 0;
if (split_glibc_version.size() == 2 &&
base::StringToUint(split_glibc_version[0], &glibc_major_version) &&
base::StringToUint(split_glibc_version[1], &glibc_minor_version)) {
glibc_version_result = UMA_LINUX_GLIBC_UNKNOWN; glibc_version_result = UMA_LINUX_GLIBC_UNKNOWN;
int glibc_major_version = version.components()[0];
int glibc_minor_version = version.components()[1];
if (glibc_major_version == 2) { if (glibc_major_version == 2) {
// A constant to translate glibc 2.x minor versions to their // A constant to translate glibc 2.x minor versions to their
// equivalent UMALinuxGlibcVersion values. // equivalent UMALinuxGlibcVersion values.
const unsigned kGlibcMinorVersionTranslationOffset = const int kGlibcMinorVersionTranslationOffset = 11 - UMA_LINUX_GLIBC_2_11;
11 - UMA_LINUX_GLIBC_2_11; int translated_glibc_minor_version =
unsigned translated_glibc_minor_version =
glibc_minor_version - kGlibcMinorVersionTranslationOffset; glibc_minor_version - kGlibcMinorVersionTranslationOffset;
if (translated_glibc_minor_version >= UMA_LINUX_GLIBC_2_11 && if (translated_glibc_minor_version >= UMA_LINUX_GLIBC_2_11 &&
translated_glibc_minor_version <= UMA_LINUX_GLIBC_2_19) { translated_glibc_minor_version <= UMA_LINUX_GLIBC_2_19) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment