Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(552)

Unified Diff: telemetry/telemetry/internal/platform/win_platform_backend.py

Issue 1830253003: [Telemetry] Update the code that detect windows version to use CurrentMajorVersionNumber (Closed) Base URL: https://github.com/catapult-project/catapult@master
Patch Set: Add win8.1 Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « telemetry/telemetry/core/os_version.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: telemetry/telemetry/internal/platform/win_platform_backend.py
diff --git a/telemetry/telemetry/internal/platform/win_platform_backend.py b/telemetry/telemetry/internal/platform/win_platform_backend.py
index d43689276b55bdc5ef8e90d00709e518aa63d50d..58240665afac910fc7fb264d38523de24c00348f 100644
--- a/telemetry/telemetry/internal/platform/win_platform_backend.py
+++ b/telemetry/telemetry/internal/platform/win_platform_backend.py
@@ -36,6 +36,10 @@ try:
import win32gui # pylint: disable=import-error
import win32pipe # pylint: disable=import-error
import win32process # pylint: disable=import-error
+ try:
+ import winreg # pylint: disable=import-error
+ except ImportError:
+ import _winreg as winreg # pylint: disable=import-error
import win32security # pylint: disable=import-error
except ImportError:
pywintypes = None
@@ -48,6 +52,7 @@ except ImportError:
win32pipe = None
win32process = None
win32security = None
+ winreg = None
def _InstallWinRing0():
@@ -238,12 +243,22 @@ class WinPlatformBackend(desktop_platform_backend.DesktopPlatformBackend):
return os_version_module.VISTA
if os_version.startswith('6.1.'):
return os_version_module.WIN7
- if os_version.startswith('6.2.'):
- return os_version_module.WIN8
- if os_version.startswith('10.'):
+ # The version of python.exe we commonly use (2.7) is only manifested as
+ # being compatible with Windows versions up to 8. Therefore Windows *lies*
+ # to python about the version number to keep it runnable on Windows 10.
+ key_name = r'Software\Microsoft\Windows NT\CurrentVersion'
+ key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, key_name)
+ value, _ = winreg.QueryValueEx(key, 'CurrentMajorVersionNumber')
+ key.Close()
+ if value == 10:
return os_version_module.WIN10
-
- raise NotImplementedError('Unknown win version %s.' % os_version)
+ elif os_version.startswith('6.2.'):
+ return os_version_module.WIN8
+ elif os_version.startswith('6.3.'):
+ return os_version_module.WIN81
+ raise NotImplementedError(
+ 'Unknown win version: %s, CurrentMajorVersionNumber: %s' %
+ (os_version, value))
def CanFlushIndividualFilesFromSystemCache(self):
return True
« no previous file with comments | « telemetry/telemetry/core/os_version.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698