| Index: tools/telemetry/telemetry/internal/backends/chrome/ios_browser_backend.py
|
| diff --git a/tools/telemetry/telemetry/internal/backends/chrome/ios_browser_backend.py b/tools/telemetry/telemetry/internal/backends/chrome/ios_browser_backend.py
|
| deleted file mode 100644
|
| index 1c193f0b999ecf67edb869f42ab7600f89d65a21..0000000000000000000000000000000000000000
|
| --- a/tools/telemetry/telemetry/internal/backends/chrome/ios_browser_backend.py
|
| +++ /dev/null
|
| @@ -1,146 +0,0 @@
|
| -# Copyright 2014 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.
|
| -
|
| -import contextlib
|
| -import json
|
| -import logging
|
| -import re
|
| -import urllib2
|
| -
|
| -from telemetry.core import exceptions
|
| -from telemetry.core import util
|
| -from telemetry.internal.backends.chrome import chrome_browser_backend
|
| -from telemetry.internal.backends.chrome import system_info_backend
|
| -
|
| -
|
| -class IosBrowserBackend(chrome_browser_backend.ChromeBrowserBackend):
|
| - _DEBUGGER_URL_BUILDER = 'ws://localhost:%i/devtools/page/%i'
|
| - _DEBUGGER_URL_REGEX = r'ws://localhost:(\d+)/devtools/page/(\d+)'
|
| - _DEVICE_LIST_URL = 'http://localhost:9221/json'
|
| -
|
| - def __init__(self, ios_platform_backend, browser_options):
|
| - super(IosBrowserBackend, self).__init__(
|
| - ios_platform_backend,
|
| - supports_tab_control=False,
|
| - supports_extensions=False,
|
| - browser_options=browser_options,
|
| - output_profile_path=".",
|
| - extensions_to_load=None)
|
| - self._webviews = []
|
| - self._port = None
|
| - self._page = None
|
| - self._system_info_backend = None
|
| - self.UpdateRunningBrowsersInfo()
|
| -
|
| - def UpdateRunningBrowsersInfo(self):
|
| - """ Refresh to match current state of the running browser.
|
| - """
|
| - device_urls = self.GetDeviceUrls()
|
| - urls = self.GetWebSocketDebuggerUrls(device_urls)
|
| - for url in urls:
|
| - m = re.match(self._DEBUGGER_URL_REGEX, url)
|
| - if m:
|
| - self._webviews.append([int(m.group(1)), int(m.group(2))])
|
| - else:
|
| - logging.error('Unexpected url format: %s' % url)
|
| -
|
| - # TODO(baxley): For now, grab first item from |_webviews|. Ideally, we'd
|
| - # prefer to have the currently displayed tab, or something similar.
|
| - if self._webviews:
|
| - self._port = self._webviews[0][0]
|
| - self._page = self._webviews[0][1]
|
| -
|
| - def GetDeviceUrls(self):
|
| - device_urls = []
|
| - try:
|
| - with contextlib.closing(
|
| - urllib2.urlopen(self._DEVICE_LIST_URL)) as device_list:
|
| - json_urls = device_list.read()
|
| - device_urls = json.loads(json_urls)
|
| - if not device_urls:
|
| - logging.debug('No iOS devices found. Will not try searching for iOS '
|
| - 'browsers.')
|
| - return []
|
| - except urllib2.URLError as e:
|
| - logging.debug('Error communicating with iOS device.')
|
| - logging.debug(str(e))
|
| - return []
|
| - return device_urls
|
| -
|
| - def GetWebSocketDebuggerUrls(self, device_urls):
|
| - """ Get a list of the websocket debugger URLs to communicate with
|
| - all running UIWebViews.
|
| - """
|
| - data = []
|
| - # Loop through all devices.
|
| - for d in device_urls:
|
| - def GetData():
|
| - try:
|
| - with contextlib.closing(
|
| - # pylint: disable=cell-var-from-loop
|
| - urllib2.urlopen('http://%s/json' % d['url'])) as f:
|
| - json_result = f.read()
|
| - data = json.loads(json_result)
|
| - return data
|
| - except urllib2.URLError as e:
|
| - logging.debug('Error communicating with iOS device.')
|
| - logging.debug(e)
|
| - return False
|
| - try:
|
| - # Retry a few times since it can take a few seconds for this API to be
|
| - # ready, if ios_webkit_debug_proxy is just launched.
|
| - data = util.WaitFor(GetData, 5)
|
| - except exceptions.TimeoutException as e:
|
| - logging.debug('Timeout retrieving data from iOS device')
|
| - logging.debug(e)
|
| - return []
|
| -
|
| - # Find all running UIWebViews.
|
| - debug_urls = []
|
| - for j in data:
|
| - debug_urls.append(j['webSocketDebuggerUrl'])
|
| -
|
| - return debug_urls
|
| -
|
| - def GetSystemInfo(self):
|
| - if self._system_info_backend is None:
|
| - self._system_info_backend = system_info_backend.SystemInfoBackend(
|
| - self._port, self._page)
|
| - return self._system_info_backend.GetSystemInfo()
|
| -
|
| - def IsBrowserRunning(self):
|
| - return bool(self._webviews)
|
| -
|
| - #TODO(baxley): The following were stubbed out to get the sunspider benchmark
|
| - # running. These should be implemented.
|
| - @property
|
| - def browser_directory(self):
|
| - logging.warn('Not implemented')
|
| - return None
|
| -
|
| - @property
|
| - def profile_directory(self):
|
| - logging.warn('Not implemented')
|
| - return None
|
| -
|
| - def Start(self):
|
| - logging.warn('Not implemented')
|
| -
|
| - def extension_backend(self):
|
| - logging.warn('Not implemented')
|
| - return None
|
| -
|
| - def GetBrowserStartupArgs(self):
|
| - logging.warn('Not implemented')
|
| - return None
|
| -
|
| - def HasBrowserFinishedLaunching(self):
|
| - logging.warn('Not implemented')
|
| - return False
|
| -
|
| - def GetStandardOutput(self):
|
| - raise NotImplementedError()
|
| -
|
| - def GetStackTrace(self):
|
| - raise NotImplementedError()
|
|
|