| Index: tools/telemetry/telemetry/core/backends/chrome/chrome_browser_backend.py
|
| diff --git a/tools/telemetry/telemetry/core/backends/chrome/chrome_browser_backend.py b/tools/telemetry/telemetry/core/backends/chrome/chrome_browser_backend.py
|
| index 27c0eab1ec39b7b465607bd0836bbd9ca1cf72e0..90d6c32ed5d3616c2b5965d31cb93bfdaae8fc5f 100644
|
| --- a/tools/telemetry/telemetry/core/backends/chrome/chrome_browser_backend.py
|
| +++ b/tools/telemetry/telemetry/core/backends/chrome/chrome_browser_backend.py
|
| @@ -24,6 +24,8 @@ from telemetry.core.backends.chrome import extension_backend
|
| from telemetry.core.backends.chrome import system_info_backend
|
| from telemetry.core.backends.chrome import tab_list_backend
|
| from telemetry.core.backends.chrome import tracing_backend
|
| +from telemetry.core.backends.chrome_inspector import devtools_client_backend
|
| +from telemetry.core.backends.chrome_inspector import devtools_http
|
| from telemetry.timeline import tracing_timeline_data
|
| from telemetry.unittest_util import options_for_unittests
|
|
|
| @@ -44,6 +46,7 @@ class ChromeBrowserBackend(browser_backend.BrowserBackend):
|
|
|
| self._platform_backend = platform_backend
|
| self._supports_tab_control = supports_tab_control
|
| + self._devtools_client = None
|
| self._tracing_backend = None
|
| self._system_info_backend = None
|
|
|
| @@ -69,6 +72,14 @@ class ChromeBrowserBackend(browser_backend.BrowserBackend):
|
| 'extensions.\n')
|
|
|
| @property
|
| + def devtools_client(self):
|
| + if not self._devtools_client:
|
| + assert self._port, 'No DevTools port info available.'
|
| + self._devtools_client = devtools_client_backend.DevToolsClientBackend(
|
| + self._port)
|
| + return self._devtools_client
|
| +
|
| + @property
|
| @decorators.Cache
|
| def extension_backend(self):
|
| if not self.supports_extensions:
|
| @@ -164,13 +175,7 @@ class ChromeBrowserBackend(browser_backend.BrowserBackend):
|
| return replay_args
|
|
|
| def HasBrowserFinishedLaunching(self):
|
| - try:
|
| - self.Request('', timeout=.1)
|
| - except (exceptions.BrowserGoneException,
|
| - exceptions.BrowserConnectionGoneException):
|
| - return False
|
| - else:
|
| - return True
|
| + return self.devtools_client.IsAlive()
|
|
|
| def _WaitForBrowserToComeUp(self, wait_for_extensions=True):
|
| try:
|
| @@ -226,20 +231,9 @@ class ChromeBrowserBackend(browser_backend.BrowserBackend):
|
| raise
|
|
|
| def ListInspectableContexts(self):
|
| - return json.loads(self.Request(''))
|
| -
|
| - def Request(self, path, timeout=30, throw_network_exception=False):
|
| - url = 'http://127.0.0.1:%i/json' % self._port
|
| - if path:
|
| - url += '/' + path
|
| try:
|
| - proxy_handler = urllib2.ProxyHandler({}) # Bypass any system proxy.
|
| - opener = urllib2.build_opener(proxy_handler)
|
| - with contextlib.closing(opener.open(url, timeout=timeout)) as req:
|
| - return req.read()
|
| - except (socket.error, httplib.BadStatusLine, urllib2.URLError) as e:
|
| - if throw_network_exception:
|
| - raise e
|
| + return self._devtools_client.ListInspectableContexts()
|
| + except devtools_http.DevToolsClientConnectionError as e:
|
| if not self.IsBrowserRunning():
|
| raise exceptions.BrowserGoneException(self.browser, e)
|
| raise exceptions.BrowserConnectionGoneException(self.browser, e)
|
| @@ -253,29 +247,6 @@ class ChromeBrowserBackend(browser_backend.BrowserBackend):
|
| raise NotImplementedError()
|
|
|
| @property
|
| - @decorators.Cache
|
| - def chrome_branch_number(self):
|
| - # Detect version information.
|
| - data = self.Request('version')
|
| - resp = json.loads(data)
|
| - if 'Protocol-Version' in resp:
|
| - if 'Browser' in resp:
|
| - branch_number_match = re.search(r'Chrome/\d+\.\d+\.(\d+)\.\d+',
|
| - resp['Browser'])
|
| - else:
|
| - branch_number_match = re.search(
|
| - r'Chrome/\d+\.\d+\.(\d+)\.\d+ (Mobile )?Safari',
|
| - resp['User-Agent'])
|
| -
|
| - if branch_number_match:
|
| - branch_number = int(branch_number_match.group(1))
|
| - if branch_number:
|
| - return branch_number
|
| -
|
| - # Branch number can't be determined, so fail any branch number checks.
|
| - return 0
|
| -
|
| - @property
|
| def supports_tab_control(self):
|
| return self._supports_tab_control
|
|
|
|
|