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

Unified Diff: tools/telemetry/telemetry/core/chrome/platform.py

Issue 11428107: Telemetry: extends Platform abstraction. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: __init__/close() Created 7 years, 10 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
Index: tools/telemetry/telemetry/core/chrome/platform.py
diff --git a/tools/telemetry/telemetry/core/chrome/platform.py b/tools/telemetry/telemetry/core/chrome/platform.py
index c668f7b2a62d402c8dc520da45102130ef8e7235..a528b2f8bd1b25d84ec32683a8d299d682190f3f 100644
--- a/tools/telemetry/telemetry/core/chrome/platform.py
+++ b/tools/telemetry/telemetry/core/chrome/platform.py
@@ -5,18 +5,74 @@
class Platform(object):
"""The platform that the target browser is running on.
- Provides a limited interface to obtain stats from the platform itself, where
- possible.
+ Provides a limited interface to interact with the platform itself, where
+ possible. It's important to note that platforms may not provide a specific
+ API, so check with IsFooBar() for availability.
"""
+ def __init__(self, platform_backend):
achuithb 2013/02/25 21:18:08 This breaks PosssibleCrOSBrowser.Create at line 30
+ self._platform_backend = platform_backend
- def GetSurfaceCollector(self, trace_tag):
+ def IsRawDisplayFrameRateSupported(self):
"""Platforms may be able to collect GL surface stats."""
- class StubSurfaceCollector(object):
- def __init__(self, trace_tag):
- pass
- def __enter__(self):
- pass
- def __exit__(self, *args):
- pass
-
- return StubSurfaceCollector(trace_tag)
+ return self._platform_backend.IsRawDisplayFrameRateSupported()
+
+ def StartRawDisplayFrameRateMeasurement(self, trace_tag):
+ """Start measuring GL surface stats."""
+ return self._platform_backend.StartRawDisplayFrameRateMeasurement(trace_tag)
+
+ def StopRawDisplayFrameRateMeasurement(self):
+ """Stop measuring GL surface stats and print results."""
+ return self._platform_backend.StopRawDisplayFrameRateMeasurement()
+
+ def SetFullPerformanceModeEnabled(self, enabled):
+ """Platforms may tweak their CPU governor, system status, etc.
+
+ Most platforms can operate in a battery saving mode. While good for battery
+ life, this can cause confusing performance results and add noise. Turning
+ full performance mode on disables these features, which is useful for
+ performance testing.
+ """
+ return self._platform_backend.SetFullPerformanceModeEnabled(enabled)
+
+ def CanMonitorThermalThrottling(self):
+ """Platforms may be able to detect thermal throttling.
+
+ Some fan-less computers go into a reduced performance mode when their heat
+ exceeds a certain threshold. Performance tests in particular should use this
+ API to detect if this has happened and interpret results accordingly.
+ """
+ return self._platform_backend.CanMonitorThermalThrottling()
+
+ def IsThermallyThrottled(self):
+ """Returns True if the device is currently thermally throttled."""
+ return self._platform_backend.IsThermallyThrottled()
+
+ def HasBeenThermallyThrottled(self):
+ """Returns True if the device has been thermally throttled."""
+ return self._platform_backend.HasBeenThermallyThrottled()
+
+
+def EmptyPlatform():
+ class EmptyPlatformBackend(object):
+ def IsRawDisplayFrameRateSupported(self):
+ return False
+
+ def StartRawDisplayFrameRateMeasurement(self, _):
+ return NotImplementedError()
+
+ def StopRawDisplayFrameRateMeasurement(self):
+ return NotImplementedError()
+
+ def SetFullPerformanceModeEnabled(self, enabled):
+ pass
+
+ def CanMonitorThermalThrottling(self):
+ return False
+
+ def IsThermallyThrottled(self):
+ return NotImplementedError()
+
+ def HasBeenThermallyThrottled(self):
+ return NotImplementedError()
+
+ return Platform(EmptyPlatformBackend())
« no previous file with comments | « tools/telemetry/telemetry/core/chrome/desktop_browser_finder.py ('k') | tools/telemetry/telemetry/page/page_runner.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698