Index: base/win/windows_version.cc |
diff --git a/base/win/windows_version.cc b/base/win/windows_version.cc |
index 5779074ddf6f329338592f91964399ee7d35a2fe..3b280ce7023dfc59ccac1795b553af2038142109 100644 |
--- a/base/win/windows_version.cc |
+++ b/base/win/windows_version.cc |
@@ -39,12 +39,23 @@ OSInfo::OSInfo() |
if ((version_number_.major == 5) && (version_number_.minor > 0)) { |
version_ = (version_number_.minor == 1) ? VERSION_XP : VERSION_SERVER_2003; |
} else if (version_number_.major == 6) { |
- if (version_info.wProductType == VER_NT_WORKSTATION) |
- version_ = (version_number_.minor == 0) ? VERSION_VISTA : VERSION_WIN7; |
- else |
+ if (version_info.wProductType == VER_NT_WORKSTATION) { |
+ switch (version_number_.minor) { |
+ case 0: |
+ version_ = VERSION_VISTA; |
+ break; |
+ case 1: |
+ version_ = VERSION_WIN7; |
+ break; |
+ default: // case 2 appears to be win8. |
+ version_ = VERSION_WIN8; |
+ } |
+ } else { |
version_ = VERSION_SERVER_2008; |
+ } |
} else if (version_number_.major > 6) { |
- version_ = VERSION_WIN7; |
+ NOTREACHED(); |
+ version_ = VERSION_WIN_LAST; |
} |
service_pack_.major = version_info.wServicePackMajor; |
service_pack_.minor = version_info.wServicePackMinor; |