Index: chrome/browser/bug_report_util.cc |
=================================================================== |
--- chrome/browser/bug_report_util.cc (revision 80528) |
+++ chrome/browser/bug_report_util.cc (working copy) |
@@ -13,6 +13,7 @@ |
#include "base/memory/singleton.h" |
#include "base/string_util.h" |
#include "base/utf_string_conversions.h" |
+#include "base/win/windows_version.h" |
#include "chrome/browser/browser_list.h" |
#include "chrome/browser/browser_process_impl.h" |
#include "chrome/browser/profiles/profile.h" |
@@ -156,21 +157,14 @@ |
} |
// static |
-void BugReportUtil::SetOSVersion(std::string *os_version) { |
+void BugReportUtil::SetOSVersion(std::string* os_version) { |
#if defined(OS_WIN) |
- OSVERSIONINFO osvi; |
- ZeroMemory(&osvi, sizeof(OSVERSIONINFO)); |
- osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); |
- |
- if (GetVersionEx(&osvi)) { |
- *os_version = StringPrintf("%d.%d.%d %S", |
- osvi.dwMajorVersion, |
- osvi.dwMinorVersion, |
- osvi.dwBuildNumber, |
- osvi.szCSDVersion); |
- } else { |
- *os_version = "unknown"; |
- } |
+ OSInfo* os_info = base::win::OSInfo::GetInstance(); |
+ const int* version = os_info->version_number(); |
+ *os_version = StringPrintf("%d.%d.%d", version[0], version[1], version[2]); |
+ int service_pack = os_info->service_pack()[0]; |
+ if (service_pack > 0) |
+ os_version->append(StringPrintf("Service Pack %d", service_pack)); |
#elif defined(OS_MACOSX) |
int32 major; |
int32 minor; |