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 |