| Index: tools/telemetry/telemetry/browser_backend.py
|
| diff --git a/tools/telemetry/telemetry/browser_backend.py b/tools/telemetry/telemetry/browser_backend.py
|
| index b45919dd237c2d5c92e5d358f6f05432512e7a6e..7b69e9f266451e41cd785ffbcb888e6bd4ee470c 100644
|
| --- a/tools/telemetry/telemetry/browser_backend.py
|
| +++ b/tools/telemetry/telemetry/browser_backend.py
|
| @@ -7,6 +7,7 @@ import socket
|
| import json
|
|
|
| from telemetry import browser_gone_exception
|
| +from telemetry import extension_page
|
| from telemetry import inspector_backend
|
| from telemetry import tab
|
| from telemetry import user_agent
|
| @@ -65,6 +66,14 @@ class BrowserBackend(object):
|
| def _debugger_url(self):
|
| return 'http://localhost:%i/json' % self._port
|
|
|
| + def _ListExtensionPages(self, extension_id, timeout=None):
|
| + req = urllib2.urlopen(self._debugger_url, timeout=timeout)
|
| + data = req.read()
|
| + all_contexts = json.loads(data)
|
| + pages = [ctx for ctx in all_contexts
|
| + if ctx['url'].startswith('chrome-extension://%s' % extension_id)]
|
| + return pages
|
| +
|
| def _ListTabs(self, timeout=None):
|
| req = urllib2.urlopen(self._debugger_url, timeout=timeout)
|
| data = req.read()
|
| @@ -102,6 +111,11 @@ class BrowserBackend(object):
|
| def GetNthTabUrl(self, index):
|
| return self._ListTabs()[index]['url']
|
|
|
| + def ConnectToExtensionPage(self, browser, extension_id):
|
| + ib = inspector_backend.InspectorBackend(self,
|
| + self._ListExtensionPages(extension_id)[0])
|
| + return extension_page.ExtensionPage(browser, ib)
|
| +
|
| def ConnectToNthTab(self, browser, index):
|
| ib = inspector_backend.InspectorBackend(self, self._ListTabs()[index])
|
| return tab.Tab(browser, ib)
|
|
|