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

Unified Diff: tools/chrome_remote_control/chrome_remote_control/browser_backend.py

Issue 11361165: [chrome_remote_control] Rename chrome_remote_control to telemetry. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 1 month 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/chrome_remote_control/chrome_remote_control/browser_backend.py
diff --git a/tools/chrome_remote_control/chrome_remote_control/browser_backend.py b/tools/chrome_remote_control/chrome_remote_control/browser_backend.py
deleted file mode 100644
index a779254f870b0b31151d4e6194f4d0c96965deef..0000000000000000000000000000000000000000
--- a/tools/chrome_remote_control/chrome_remote_control/browser_backend.py
+++ /dev/null
@@ -1,115 +0,0 @@
-# Copyright (c) 2012 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 urllib2
-import httplib
-import socket
-import json
-
-from chrome_remote_control import browser_gone_exception
-from chrome_remote_control import inspector_backend
-from chrome_remote_control import tab
-from chrome_remote_control import util
-from chrome_remote_control import wpr_modes
-from chrome_remote_control import wpr_server
-
-class BrowserBackend(object):
- """A base class for broser backends. Provides basic functionality
- once a remote-debugger port has been established."""
- def __init__(self, is_content_shell, options):
- self.is_content_shell = is_content_shell
- self.options = options
- self._port = None
-
- def GetBrowserStartupArgs(self):
- args = []
- args.extend(self.options.extra_browser_args)
- args.append('--disable-background-networking')
- args.append('--metrics-recording-only')
- args.append('--no-first-run')
- if self.options.wpr_mode != wpr_modes.WPR_OFF:
- args.extend(wpr_server.CHROME_FLAGS)
- return args
-
- @property
- def wpr_mode(self):
- return self.options.wpr_mode
-
- def _WaitForBrowserToComeUp(self):
- def IsBrowserUp():
- try:
- self._ListTabs()
- except socket.error:
- if not self.IsBrowserRunning():
- raise browser_gone_exception.BrowserGoneException()
- return False
- except httplib.BadStatusLine:
- if not self.IsBrowserRunning():
- raise browser_gone_exception.BrowserGoneException()
- return False
- except urllib2.URLError:
- if not self.IsBrowserRunning():
- raise browser_gone_exception.BrowserGoneException()
- return False
- else:
- return True
- try:
- util.WaitFor(IsBrowserUp, timeout=30)
- except util.TimeoutException:
- raise browser_gone_exception.BrowserGoneException()
-
- @property
- def _debugger_url(self):
- return 'http://localhost:%i/json' % self._port
-
- def _ListTabs(self, timeout=None):
- req = urllib2.urlopen(self._debugger_url, timeout=timeout)
- data = req.read()
- all_contexts = json.loads(data)
- tabs = [ctx for ctx in all_contexts
- if not ctx['url'].startswith('chrome-extension://')]
- # FIXME(dtu): The remote debugger protocol returns in order of most
- # recently created tab first. In order to convert it to the UI tab
- # order, we just reverse the list, which assumes we can't move tabs.
- # We should guarantee that the remote debugger returns in the UI tab order.
- tabs.reverse()
- return tabs
-
- def NewTab(self, timeout=None):
- req = urllib2.urlopen(self._debugger_url + '/new', timeout=timeout)
- data = req.read()
- new_tab = json.loads(data)
- return new_tab
-
- def CloseTab(self, index, timeout=None):
- assert self.num_tabs > 1, 'Closing the last tab not supported.'
- target_tab = self._ListTabs()[index]
- tab_id = target_tab['webSocketDebuggerUrl'].split('/')[-1]
- target_num_tabs = self.num_tabs - 1
-
- urllib2.urlopen('%s/close/%s' % (self._debugger_url, tab_id),
- timeout=timeout)
-
- util.WaitFor(lambda: self.num_tabs == target_num_tabs, timeout=5)
-
- @property
- def num_tabs(self):
- return len(self._ListTabs())
-
- def GetNthTabUrl(self, index):
- return self._ListTabs()[index]['url']
-
- def ConnectToNthTab(self, browser, index):
- ib = inspector_backend.InspectorBackend(self, self._ListTabs()[index])
- return tab.Tab(browser, ib)
-
- def DoesDebuggerUrlExist(self, url):
- matches = [t for t in self._ListTabs()
- if t['webSocketDebuggerUrl'] == url]
- return len(matches) >= 1
-
- def CreateForwarder(self, host_port):
- raise NotImplementedError()
-
- def IsBrowserRunning(self):
- raise NotImplementedError()

Powered by Google App Engine
This is Rietveld 408576698