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

Unified Diff: tools/telemetry/telemetry/core/backends/browser_backend.py

Issue 21406004: [telemetry] Refactoring of telemetry for the webdriver backend to land in. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase. Created 7 years, 5 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/backends/browser_backend.py
diff --git a/tools/telemetry/telemetry/core/backends/browser_backend.py b/tools/telemetry/telemetry/core/backends/browser_backend.py
new file mode 100644
index 0000000000000000000000000000000000000000..64b01e77892c8dd23a4fd08ed3065941645d8d3b
--- /dev/null
+++ b/tools/telemetry/telemetry/core/backends/browser_backend.py
@@ -0,0 +1,96 @@
+# Copyright (c) 2013 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+from telemetry.core import util
+from telemetry.core import web_contents
+
+
+class ExtensionsNotSupportedException(Exception):
+ pass
+
+class BrowserBackend(object):
+ """A base class for browser backends."""
+
+ WEBPAGEREPLAY_HOST = '127.0.0.1'
+
+ def __init__(self, is_content_shell, supports_extensions, options,
+ tab_list_backend):
+ self.browser_type = options.browser_type
+ self.is_content_shell = is_content_shell
+ self._supports_extensions = supports_extensions
+ self.options = options
+ self._browser = None
+ self._tab_list_backend = tab_list_backend(self)
+
+ def AddReplayServerOptions(self, options):
+ pass
+
+ def SetBrowser(self, browser):
+ self._browser = browser
+ self._tab_list_backend.Init()
+
+ @property
+ def browser(self):
+ return self._browser
+
+ @property
+ def supports_extensions(self):
+ """True if this browser backend supports extensions."""
+ return self._supports_extensions
+
+ @property
+ def wpr_mode(self):
+ return self.options.wpr_mode
+
+ @property
+ def supports_tab_control(self):
+ raise NotImplementedError()
+
+ @property
+ def tab_list_backend(self):
+ return self._tab_list_backend
+
+ @property
+ def supports_tracing(self):
+ raise NotImplementedError()
+
+ def StartTracing(self, custom_categories=None,
+ timeout=web_contents.DEFAULT_WEB_CONTENTS_TIMEOUT):
+ raise NotImplementedError()
+
+ def StopTracing(self):
+ raise NotImplementedError()
+
+ def GetTraceResultAndReset(self):
+ raise NotImplementedError()
+
+ def GetRemotePort(self, _):
+ return util.GetAvailableLocalPort()
+
+ def Start(self):
+ raise NotImplementedError()
+
+ def CreateForwarder(self, *port_pairs):
+ raise NotImplementedError()
+
+ def IsBrowserRunning(self):
+ raise NotImplementedError()
+
+ def GetStandardOutput(self):
+ raise NotImplementedError()
+
+ def GetStackTrace(self):
+ raise NotImplementedError()
+
+class DoNothingForwarder(object):
+ def __init__(self, *port_pairs):
+ self._host_port = port_pairs[0].local_port
+
+ @property
+ def url(self):
+ assert self._host_port
+ return 'http://127.0.0.1:%i' % self._host_port
+
+ def Close(self):
+ self._host_port = None
« no previous file with comments | « tools/telemetry/telemetry/core/backends/__init__.py ('k') | tools/telemetry/telemetry/core/backends/chrome/__init__.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698