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

Unified Diff: tools/telemetry/telemetry/core/backends/chrome/chrome_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/chrome/chrome_browser_backend.py
diff --git a/tools/telemetry/telemetry/core/chrome/browser_backend.py b/tools/telemetry/telemetry/core/backends/chrome/chrome_browser_backend.py
similarity index 83%
rename from tools/telemetry/telemetry/core/chrome/browser_backend.py
rename to tools/telemetry/telemetry/core/backends/chrome/chrome_browser_backend.py
index c875f2abbd70cbb2182af77e74ab922f578e9c6f..47a8ec3a6ed80f2843bd1b733e60b3f3fef713b3 100644
--- a/tools/telemetry/telemetry/core/chrome/browser_backend.py
+++ b/tools/telemetry/telemetry/core/backends/chrome/chrome_browser_backend.py
@@ -2,40 +2,37 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-import urllib2
import httplib
-import socket
import json
import re
+import socket
import sys
+import urllib2
-from telemetry.core import util
from telemetry.core import exceptions
from telemetry.core import user_agent
+from telemetry.core import util
from telemetry.core import web_contents
from telemetry.core import wpr_modes
from telemetry.core import wpr_server
+from telemetry.core.backends import browser_backend
from telemetry.core.chrome import extension_dict_backend
+from telemetry.core.chrome import misc_web_contents_backend
from telemetry.core.chrome import tab_list_backend
from telemetry.core.chrome import tracing_backend
-from telemetry.core.chrome import misc_web_contents_backend
from telemetry.unittest import options_for_unittests
-class ExtensionsNotSupportedException(Exception):
- pass
-
-class BrowserBackend(object):
- """A base class for browser backends. Provides basic functionality
+class ChromeBrowserBackend(browser_backend.BrowserBackend):
+ """An abstract class for chrome browser backends. Provides basic functionality
once a remote-debugger port has been established."""
-
- WEBPAGEREPLAY_HOST = '127.0.0.1'
+ # It is OK to have abstract methods. pylint: disable=W0223
def __init__(self, is_content_shell, supports_extensions, options):
- self.browser_type = options.browser_type
- self.is_content_shell = is_content_shell
- self._supports_extensions = supports_extensions
- self.options = options
- self._browser = None
+ super(ChromeBrowserBackend, self).__init__(
+ is_content_shell=is_content_shell,
+ supports_extensions=supports_extensions,
+ options=options,
+ tab_list_backend=tab_list_backend.TabListBackend)
self._port = None
self._inspector_protocol_version = 0
@@ -54,24 +51,13 @@ class BrowserBackend(object):
'extensions.\n')
self._misc_web_contents_backend = (
misc_web_contents_backend.MiscWebContentsBackend(self))
- self._tab_list_backend = tab_list_backend.TabListBackend(self)
self._extension_dict_backend = None
if supports_extensions:
self._extension_dict_backend = (
extension_dict_backend.ExtensionDictBackend(self))
- 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
+ def AddReplayServerOptions(self, options):
+ options.append('--no-dns_forwarding')
@property
def misc_web_contents_backend(self):
@@ -80,10 +66,6 @@ class BrowserBackend(object):
return self._misc_web_contents_backend
@property
- def tab_list_backend(self):
- return self._tab_list_backend
-
- @property
def extension_dict_backend(self):
return self._extension_dict_backend
@@ -118,10 +100,6 @@ class BrowserBackend(object):
return args
- @property
- def wpr_mode(self):
- return self.options.wpr_mode
-
def _WaitForBrowserToComeUp(self, timeout=None):
def IsBrowserUp():
try:
@@ -239,37 +217,7 @@ class BrowserBackend(object):
return 'browser'
return m.group(1)
- def GetRemotePort(self, _):
- return util.GetAvailableLocalPort()
-
- def Start(self):
- raise NotImplementedError()
-
def Close(self):
if self._tracing_backend:
self._tracing_backend.Close()
self._tracing_backend = None
-
- 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/chrome/__init__.py ('k') | tools/telemetry/telemetry/core/browser.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698