Index: chrome/browser/diagnostics/recon_diagnostics.cc |
=================================================================== |
--- chrome/browser/diagnostics/recon_diagnostics.cc (revision 80823) |
+++ chrome/browser/diagnostics/recon_diagnostics.cc (working copy) |
@@ -47,20 +47,27 @@ |
virtual int GetId() { return 0; } |
virtual bool ExecuteImpl(DiagnosticsModel::Observer* observer) { |
+ int version = 0; |
+ int major = 0; |
+ int minor = 0; |
#if defined(OS_WIN) |
- base::win::Version version = base::win::GetVersion(); |
- if ((version < base::win::VERSION_XP) || |
- ((version == base::win::VERSION_XP) && |
- (base::win::OSInfo::GetInstance()->service_pack().major < 2))) { |
- RecordFailure(ASCIIToUTF16("Must have Windows XP SP2 or later")); |
+ version = base::win::GetVersion(); |
+ if (version < base::win::VERSION_XP) { |
+ RecordFailure(ASCIIToUTF16("Windows 2000 or earlier")); |
return false; |
} |
+ base::win::GetServicePackLevel(&major, &minor); |
+ if ((version == base::win::VERSION_XP) && (major < 2)) { |
+ RecordFailure(ASCIIToUTF16("XP Service Pack 1 or earlier")); |
+ return false; |
+ } |
#else |
// TODO(port): define the OS criteria for Linux and Mac. |
#endif // defined(OS_WIN) |
- RecordSuccess(ASCIIToUTF16(StringPrintf("%s %s", |
+ RecordSuccess(ASCIIToUTF16(StringPrintf("%s %s (%d [%d:%d])", |
base::SysInfo::OperatingSystemName().c_str(), |
- base::SysInfo::OperatingSystemVersion().c_str()))); |
+ base::SysInfo::OperatingSystemVersion().c_str(), |
+ version, major, minor))); |
return true; |
} |