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

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

Issue 10916227: More polish in prep for CrOS support (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: for landing Created 8 years, 3 months 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/tab.py
diff --git a/tools/chrome_remote_control/chrome_remote_control/tab.py b/tools/chrome_remote_control/chrome_remote_control/tab.py
index 976eee04b65c90b6f761a3dfc049423d7f4d9432..e86f95bc9c6ab5751a0e6045125cedfb5d2299db 100644
--- a/tools/chrome_remote_control/chrome_remote_control/tab.py
+++ b/tools/chrome_remote_control/chrome_remote_control/tab.py
@@ -6,6 +6,7 @@ import websocket
import socket
import time
+import tab_console
import tab_page
import tab_runtime
import util
@@ -13,21 +14,34 @@ import util
DEFAULT_TAB_TIMEOUT=60
class Tab(object):
- def __init__(self, inspector_backend):
- self._inspector_backend = inspector_backend
- self.page = tab_page.TabPage(self._inspector_backend)
- self.runtime = tab_runtime.TabRuntime(self._inspector_backend)
+ """Represents a tab in the browser
+
+ The important parts of the Tab object are in the runtime and page objects.
+ E.g.:
+ # Navigates the tab to a given url.
+ tab.page.Navigate("http://www.google.com/")
+ # Evaluates 1+1 in the tab's javascript context.
+ tab.runtime.Evaluate("1+1")
+ """
+ def __init__(self, browser, inspector_backend):
+ self._browser = browser
+ self._inspector_backend = inspector_backend
+ self._page = tab_page.TabPage(self._inspector_backend)
+ self._runtime = tab_runtime.TabRuntime(self._inspector_backend)
+ self._console = tab_console.TabConsole(self._inspector_backend)
def __del__(self):
self.Close()
def Close(self):
- self.page = None
- self.runtime = None
+ self._console = None
+ self._runtime = None
+ self._page = None
if self._inspector_backend:
self._inspector_backend.Close()
self._inspector_backend = None
+ self._browser = None
def __enter__(self):
return self
@@ -35,13 +49,33 @@ class Tab(object):
def __exit__(self, *args):
self.Close()
+ @property
+ def browser(self):
+ """The browser in which this tab resides."""
+ return self._browser
+
+ @property
+ def page(self):
+ """Methods for interacting with the current page."""
+ return self._page
+
+ @property
+ def runtime(self):
+ """Methods for interacting with the page's javascript runtime."""
+ return self._runtime
+
+ @property
+ def console(self):
+ """Methods for interacting with the page's console objec."""
+ return self._console
+
def WaitForDocumentReadyStateToBeComplete(self, timeout=60):
util.WaitFor(
- lambda: self.runtime.Evaluate('document.readyState') == 'complete',
+ lambda: self._runtime.Evaluate('document.readyState') == 'complete',
timeout)
def WaitForDocumentReadyStateToBeInteractiveOrBetter(self, timeout=60):
def IsReadyStateInteractiveOrBetter():
- rs = self.runtime.Evaluate('document.readyState')
+ rs = self._runtime.Evaluate('document.readyState')
return rs == 'complete' or rs == 'interactive'
util.WaitFor(IsReadyStateInteractiveOrBetter, timeout)

Powered by Google App Engine
This is Rietveld 408576698