| Index: tools/telemetry/telemetry/core/platform/platform_backend.py
|
| diff --git a/tools/telemetry/telemetry/core/platform/platform_backend.py b/tools/telemetry/telemetry/core/platform/platform_backend.py
|
| index 77e3ff7d82f7941028607300e49aae5383e7a128..f4700315416b1b31b39e546a7db9d8b25d47c389 100644
|
| --- a/tools/telemetry/telemetry/core/platform/platform_backend.py
|
| +++ b/tools/telemetry/telemetry/core/platform/platform_backend.py
|
| @@ -2,6 +2,11 @@
|
| # Use of this source code is governed by a BSD-style license that can be
|
| # found in the LICENSE file.
|
|
|
| +import weakref
|
| +
|
| +from telemetry.core.platform import tracing_controller_backend
|
| +
|
| +
|
| # pylint: disable=W0613
|
|
|
| # pylint: disable=W0212
|
| @@ -39,6 +44,9 @@ MAVERICKS = OSVersion('mavericks', 10.9)
|
| class PlatformBackend(object):
|
| def __init__(self):
|
| self._platform = None
|
| + self._running_browser_backends = weakref.WeakSet()
|
| + self._tracing_controller_backend = \
|
| + tracing_controller_backend.TracingControllerBackend(self)
|
|
|
| def SetPlatform(self, platform):
|
| assert self._platform == None
|
| @@ -48,6 +56,41 @@ class PlatformBackend(object):
|
| def platform(self):
|
| return self._platform
|
|
|
| + @property
|
| + def running_browser_backends(self):
|
| + return list(self._running_browser_backends)
|
| +
|
| + @property
|
| + def tracing_controller_backend(self):
|
| + return self._tracing_controller_backend
|
| +
|
| + def DidCreateBrowser(self, browser, browser_backend):
|
| + self.SetFullPerformanceModeEnabled(True)
|
| +
|
| + def DidStartBrowser(self, browser, browser_backend):
|
| + assert browser not in self._running_browser_backends
|
| + self._running_browser_backends.add(browser_backend)
|
| + self._tracing_controller_backend.DidStartBrowser(
|
| + browser, browser_backend)
|
| +
|
| + def WillCloseBrowser(self, browser, browser_backend):
|
| + self._tracing_controller_backend.WillCloseBrowser(
|
| + browser, browser_backend)
|
| +
|
| + is_last_browser = len(self._running_browser_backends) == 1
|
| + if is_last_browser:
|
| + self.SetFullPerformanceModeEnabled(False)
|
| +
|
| + self._running_browser_backends.remove(browser_backend)
|
| +
|
| + def GetBackendForBrowser(self, browser):
|
| + matches = [x for x in self._running_browser_backends
|
| + if x.browser == browser]
|
| + if len(matches) == 0:
|
| + raise Exception('No browser found')
|
| + assert len(matches) == 1
|
| + return matches[0]
|
| +
|
| def IsRawDisplayFrameRateSupported(self):
|
| return False
|
|
|
|
|