| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395 |
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
- <html><head><title>Python: module telemetry.internal.browser.tab</title>
- <meta charset="utf-8">
- </head><body bgcolor="#f0f0f8">
- <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
- <tr bgcolor="#7799ee">
- <td valign=bottom> <br>
- <font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="telemetry.html"><font color="#ffffff">telemetry</font></a>.<a href="telemetry.internal.html"><font color="#ffffff">internal</font></a>.<a href="telemetry.internal.browser.html"><font color="#ffffff">browser</font></a>.tab</strong></big></big></font></td
- ><td align=right valign=bottom
- ><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="../telemetry/internal/browser/tab.py">telemetry/internal/browser/tab.py</a></font></td></tr></table>
- <p><tt># Copyright 2012 The Chromium Authors. All rights reserved.<br>
- # Use of this source code is governed by a BSD-style license that can be<br>
- # found in the LICENSE file.</tt></p>
- <p>
- <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
- <tr bgcolor="#aa55cc">
- <td colspan=3 valign=bottom> <br>
- <font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr>
-
- <tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td>
- <td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="telemetry.internal.image_processing.video.html">telemetry.internal.image_processing.video</a><br>
- </td><td width="25%" valign=top><a href="telemetry.internal.browser.web_contents.html">telemetry.internal.browser.web_contents</a><br>
- </td><td width="25%" valign=top></td><td width="25%" valign=top></td></tr></table></td></tr></table><p>
- <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
- <tr bgcolor="#ee77aa">
- <td colspan=3 valign=bottom> <br>
- <font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
-
- <tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td>
- <td width="100%"><dl>
- <dt><font face="helvetica, arial"><a href="telemetry.internal.browser.web_contents.html#WebContents">telemetry.internal.browser.web_contents.WebContents</a>(<a href="__builtin__.html#object">__builtin__.object</a>)
- </font></dt><dd>
- <dl>
- <dt><font face="helvetica, arial"><a href="telemetry.internal.browser.tab.html#Tab">Tab</a>
- </font></dt></dl>
- </dd>
- </dl>
- <p>
- <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
- <tr bgcolor="#ffc8d8">
- <td colspan=3 valign=bottom> <br>
- <font color="#000000" face="helvetica, arial"><a name="Tab">class <strong>Tab</strong></a>(<a href="telemetry.internal.browser.web_contents.html#WebContents">telemetry.internal.browser.web_contents.WebContents</a>)</font></td></tr>
-
- <tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td>
- <td colspan=2><tt>Represents a tab in the browser<br>
- <br>
- The important parts of the <a href="#Tab">Tab</a> object are in the runtime and page objects.<br>
- E.g.:<br>
- # Navigates the tab to a given url.<br>
- tab.<a href="#Tab-Navigate">Navigate</a>('<a href="http://www.google.com/">http://www.google.com/</a>')<br>
- <br>
- # Evaluates 1+1 in the tab's JavaScript context.<br>
- tab.Evaluate('1+1')<br> </tt></td></tr>
- <tr><td> </td>
- <td width="100%"><dl><dt>Method resolution order:</dt>
- <dd><a href="telemetry.internal.browser.tab.html#Tab">Tab</a></dd>
- <dd><a href="telemetry.internal.browser.web_contents.html#WebContents">telemetry.internal.browser.web_contents.WebContents</a></dd>
- <dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
- </dl>
- <hr>
- Methods defined here:<br>
- <dl><dt><a name="Tab-Activate"><strong>Activate</strong></a>(self)</dt><dd><tt>Brings this tab to the foreground asynchronously.<br>
- <br>
- Not all browsers or browser versions support this method.<br>
- Be sure to check browser.supports_tab_control.<br>
- <br>
- Please note: this is asynchronous. There is a delay between this call<br>
- and the page's documentVisibilityState becoming 'visible', and yet more<br>
- delay until the actual tab is visible to the user. None of these delays<br>
- are included in this call.<br>
- <br>
- Raises:<br>
- devtools_http.DevToolsClientConnectionError<br>
- devtools_client_backend.TabNotFoundError<br>
- tab_list_backend.TabUnexpectedResponseException</tt></dd></dl>
- <dl><dt><a name="Tab-ClearCache"><strong>ClearCache</strong></a>(self, force)</dt><dd><tt>Clears the browser's networking related disk, memory and other caches.<br>
- <br>
- Args:<br>
- force: Iff true, navigates to about:blank which destroys the previous<br>
- renderer, ensuring that even "live" resources in the memory cache are<br>
- cleared.<br>
- <br>
- Raises:<br>
- exceptions.EvaluateException<br>
- exceptions.WebSocketDisconnected<br>
- exceptions.TimeoutException<br>
- exceptions.DevtoolsTargetCrashException<br>
- errors.DeviceUnresponsiveError</tt></dd></dl>
- <dl><dt><a name="Tab-ClearHighlight"><strong>ClearHighlight</strong></a>(self, color)</dt><dd><tt>Clears a highlight of the given bitmap.RgbaColor.<br>
- <br>
- Raises:<br>
- exceptions.EvaluateException<br>
- exceptions.WebSocketDisconnected<br>
- exceptions.TimeoutException<br>
- exceptions.DevtoolsTargetCrashException</tt></dd></dl>
- <dl><dt><a name="Tab-Close"><strong>Close</strong></a>(self)</dt><dd><tt>Closes this tab.<br>
- <br>
- Not all browsers or browser versions support this method.<br>
- Be sure to check browser.supports_tab_control.<br>
- <br>
- Raises:<br>
- devtools_http.DevToolsClientConnectionError<br>
- devtools_client_backend.TabNotFoundError<br>
- tab_list_backend.TabUnexpectedResponseException<br>
- exceptions.TimeoutException</tt></dd></dl>
- <dl><dt><a name="Tab-CollectGarbage"><strong>CollectGarbage</strong></a>(self)</dt><dd><tt>Forces a garbage collection.<br>
- <br>
- Raises:<br>
- exceptions.WebSocketDisconnected<br>
- exceptions.TimeoutException<br>
- exceptions.DevtoolsTargetCrashException</tt></dd></dl>
- <dl><dt><a name="Tab-GetCookieByName"><strong>GetCookieByName</strong></a>(self, name, timeout<font color="#909090">=60</font>)</dt><dd><tt>Returns the value of the cookie by the given |name|.<br>
- <br>
- Raises:<br>
- exceptions.WebSocketDisconnected<br>
- exceptions.TimeoutException<br>
- exceptions.DevtoolsTargetCrashException</tt></dd></dl>
- <dl><dt><a name="Tab-Highlight"><strong>Highlight</strong></a>(self, color)</dt><dd><tt>Synchronously highlights entire tab contents with the given RgbaColor.<br>
- <br>
- TODO(tonyg): It is possible that the z-index hack here might not work for<br>
- all pages. If this happens, DevTools also provides a method for this.<br>
- <br>
- Raises:<br>
- exceptions.EvaluateException<br>
- exceptions.WebSocketDisconnected<br>
- exceptions.TimeoutException<br>
- exceptions.DevtoolsTargetCrashException</tt></dd></dl>
- <dl><dt><a name="Tab-Screenshot"><strong>Screenshot</strong></a>(self, timeout<font color="#909090">=60</font>)</dt><dd><tt>Capture a screenshot of the tab's contents.<br>
- <br>
- Returns:<br>
- A telemetry.core.Bitmap.<br>
- Raises:<br>
- exceptions.WebSocketDisconnected<br>
- exceptions.TimeoutException<br>
- exceptions.DevtoolsTargetCrashException</tt></dd></dl>
- <dl><dt><a name="Tab-StartVideoCapture"><strong>StartVideoCapture</strong></a>(self, min_bitrate_mbps, highlight_bitmap<font color="#909090">=RgbaColor(r=222, g=100, b=13, a=255)</font>)</dt><dd><tt>Starts capturing video of the tab's contents.<br>
- <br>
- This works by flashing the entire tab contents to a arbitrary color and then<br>
- starting video recording. When the frames are processed, we can look for<br>
- that flash as the content bounds.<br>
- <br>
- Args:<br>
- min_bitrate_mbps: The minimum caputre bitrate in MegaBits Per Second.<br>
- The platform is free to deliver a higher bitrate if it can do so<br>
- without increasing overhead.<br>
- <br>
- Raises:<br>
- exceptions.EvaluateException<br>
- exceptions.WebSocketDisconnected<br>
- exceptions.TimeoutException<br>
- exceptions.DevtoolsTargetCrashException<br>
- ValueError: If the required |min_bitrate_mbps| can't be achieved.</tt></dd></dl>
- <dl><dt><a name="Tab-StopVideoCapture"><strong>StopVideoCapture</strong></a>(self)</dt><dd><tt>Stops recording video of the tab's contents.<br>
- <br>
- This looks for the initial color flash in the first frame to establish the<br>
- tab content boundaries and then omits all frames displaying the flash.<br>
- <br>
- Returns:<br>
- video: A video object which is a telemetry.core.Video</tt></dd></dl>
- <dl><dt><a name="Tab-__init__"><strong>__init__</strong></a>(self, inspector_backend, tab_list_backend, browser)</dt></dl>
- <hr>
- Data descriptors defined here:<br>
- <dl><dt><strong>browser</strong></dt>
- <dd><tt>The browser in which this tab resides.</tt></dd>
- </dl>
- <dl><dt><strong>dom_stats</strong></dt>
- <dd><tt>A dictionary populated with measured DOM statistics.<br>
- <br>
- Currently this dictionary contains:<br>
- {<br>
- 'document_count': integer,<br>
- 'node_count': integer,<br>
- 'event_listener_count': integer<br>
- }<br>
- <br>
- Raises:<br>
- inspector_memory.InspectorMemoryException<br>
- exceptions.TimeoutException<br>
- exceptions.DevtoolsTargetCrashException</tt></dd>
- </dl>
- <dl><dt><strong>is_video_capture_running</strong></dt>
- </dl>
- <dl><dt><strong>screenshot_supported</strong></dt>
- <dd><tt>True if the browser instance is capable of capturing screenshots.</tt></dd>
- </dl>
- <dl><dt><strong>url</strong></dt>
- <dd><tt>Returns the URL of the tab, as reported by devtools.<br>
- <br>
- Raises:<br>
- devtools_http.DevToolsClientConnectionError</tt></dd>
- </dl>
- <dl><dt><strong>video_capture_supported</strong></dt>
- <dd><tt>True if the browser instance is capable of capturing video.</tt></dd>
- </dl>
- <hr>
- Methods inherited from <a href="telemetry.internal.browser.web_contents.html#WebContents">telemetry.internal.browser.web_contents.WebContents</a>:<br>
- <dl><dt><a name="Tab-CloseConnections"><strong>CloseConnections</strong></a>(self)</dt><dd><tt>Closes all TCP sockets held open by the browser.<br>
- <br>
- Raises:<br>
- exceptions.DevtoolsTargetCrashException if the tab is not alive.</tt></dd></dl>
- <dl><dt><a name="Tab-EnableAllContexts"><strong>EnableAllContexts</strong></a>(self)</dt><dd><tt>Enable all contexts in a page. Returns the number of available contexts.<br>
- <br>
- Raises:<br>
- exceptions.WebSocketDisconnected<br>
- exceptions.TimeoutException<br>
- exceptions.DevtoolsTargetCrashException</tt></dd></dl>
- <dl><dt><a name="Tab-EvaluateJavaScript"><strong>EvaluateJavaScript</strong></a>(self, expr, timeout<font color="#909090">=90</font>)</dt><dd><tt>Evalutes expr in JavaScript and returns the JSONized result.<br>
- <br>
- Consider using ExecuteJavaScript for cases where the result of the<br>
- expression is not needed.<br>
- <br>
- If evaluation throws in JavaScript, a Python EvaluateException will<br>
- be raised.<br>
- <br>
- If the result of the evaluation cannot be JSONized, then an<br>
- EvaluationException will be raised.<br>
- <br>
- Raises:<br>
- exceptions.Error: See <a href="#Tab-EvaluateJavaScriptInContext">EvaluateJavaScriptInContext</a>() for a detailed list<br>
- of possible exceptions.</tt></dd></dl>
- <dl><dt><a name="Tab-EvaluateJavaScriptInContext"><strong>EvaluateJavaScriptInContext</strong></a>(self, expr, context_id, timeout<font color="#909090">=90</font>)</dt><dd><tt>Similar to ExecuteJavaScript, except context_id can refer to an iframe.<br>
- The main page has context_id=1, the first iframe context_id=2, etc.<br>
- <br>
- Raises:<br>
- exceptions.EvaluateException<br>
- exceptions.WebSocketDisconnected<br>
- exceptions.TimeoutException<br>
- exceptions.DevtoolsTargetCrashException</tt></dd></dl>
- <dl><dt><a name="Tab-ExecuteJavaScript"><strong>ExecuteJavaScript</strong></a>(self, statement, timeout<font color="#909090">=90</font>)</dt><dd><tt>Executes statement in JavaScript. Does not return the result.<br>
- <br>
- If the statement failed to evaluate, EvaluateException will be raised.<br>
- <br>
- Raises:<br>
- exceptions.Error: See <a href="#Tab-ExecuteJavaScriptInContext">ExecuteJavaScriptInContext</a>() for a detailed list of<br>
- possible exceptions.</tt></dd></dl>
- <dl><dt><a name="Tab-ExecuteJavaScriptInContext"><strong>ExecuteJavaScriptInContext</strong></a>(self, expr, context_id, timeout<font color="#909090">=90</font>)</dt><dd><tt>Similar to ExecuteJavaScript, except context_id can refer to an iframe.<br>
- The main page has context_id=1, the first iframe context_id=2, etc.<br>
- <br>
- Raises:<br>
- exceptions.EvaluateException<br>
- exceptions.WebSocketDisconnected<br>
- exceptions.TimeoutException<br>
- exceptions.DevtoolsTargetCrashException</tt></dd></dl>
- <dl><dt><a name="Tab-GetUrl"><strong>GetUrl</strong></a>(self)</dt><dd><tt>Returns the URL to which the <a href="telemetry.internal.browser.web_contents.html#WebContents">WebContents</a> is connected.<br>
- <br>
- Raises:<br>
- exceptions.Error: If there is an error in inspector backend connection.</tt></dd></dl>
- <dl><dt><a name="Tab-GetWebviewContexts"><strong>GetWebviewContexts</strong></a>(self)</dt><dd><tt>Returns a list of webview contexts within the current inspector backend.<br>
- <br>
- Returns:<br>
- A list of <a href="telemetry.internal.browser.web_contents.html#WebContents">WebContents</a> objects representing the webview contexts.<br>
- <br>
- Raises:<br>
- exceptions.Error: If there is an error in inspector backend connection.</tt></dd></dl>
- <dl><dt><a name="Tab-HasReachedQuiescence"><strong>HasReachedQuiescence</strong></a>(self)</dt><dd><tt>Determine whether the page has reached quiescence after loading.<br>
- <br>
- Returns:<br>
- True if 2 seconds have passed since last resource received, false<br>
- otherwise.<br>
- Raises:<br>
- exceptions.Error: See <a href="#Tab-EvaluateJavaScript">EvaluateJavaScript</a>() for a detailed list of<br>
- possible exceptions.</tt></dd></dl>
- <dl><dt><a name="Tab-IsAlive"><strong>IsAlive</strong></a>(self)</dt><dd><tt>Whether the <a href="telemetry.internal.browser.web_contents.html#WebContents">WebContents</a> is still operating normally.<br>
- <br>
- Since <a href="telemetry.internal.browser.web_contents.html#WebContents">WebContents</a> function asynchronously, this method does not guarantee<br>
- that the <a href="telemetry.internal.browser.web_contents.html#WebContents">WebContents</a> will still be alive at any point in the future.<br>
- <br>
- Returns:<br>
- A boolean indicating whether the <a href="telemetry.internal.browser.web_contents.html#WebContents">WebContents</a> is opearting normally.</tt></dd></dl>
- <dl><dt><a name="Tab-Navigate"><strong>Navigate</strong></a>(self, url, script_to_evaluate_on_commit<font color="#909090">=None</font>, timeout<font color="#909090">=90</font>)</dt><dd><tt>Navigates to url.<br>
- <br>
- If |script_to_evaluate_on_commit| is given, the script source string will be<br>
- evaluated when the navigation is committed. This is after the context of<br>
- the page exists, but before any script on the page itself has executed.<br>
- <br>
- Raises:<br>
- exceptions.TimeoutException<br>
- exceptions.DevtoolsTargetCrashException</tt></dd></dl>
- <dl><dt><a name="Tab-StartTimelineRecording"><strong>StartTimelineRecording</strong></a>(self)</dt><dd><tt>Starts timeline recording.<br>
- <br>
- Raises:<br>
- exceptions.TimeoutException<br>
- exceptions.DevtoolsTargetCrashException</tt></dd></dl>
- <dl><dt><a name="Tab-StopTimelineRecording"><strong>StopTimelineRecording</strong></a>(self)</dt><dd><tt>Stops timeline recording.<br>
- <br>
- Raises:<br>
- exceptions.TimeoutException<br>
- exceptions.DevtoolsTargetCrashException</tt></dd></dl>
- <dl><dt><a name="Tab-SynthesizeScrollGesture"><strong>SynthesizeScrollGesture</strong></a>(self, x<font color="#909090">=100</font>, y<font color="#909090">=800</font>, xDistance<font color="#909090">=0</font>, yDistance<font color="#909090">=-500</font>, xOverscroll<font color="#909090">=None</font>, yOverscroll<font color="#909090">=None</font>, preventFling<font color="#909090">=True</font>, speed<font color="#909090">=None</font>, gestureSourceType<font color="#909090">=None</font>, repeatCount<font color="#909090">=None</font>, repeatDelayMs<font color="#909090">=None</font>, interactionMarkerName<font color="#909090">=None</font>)</dt><dd><tt>Runs an inspector command that causes a repeatable browser driven scroll.<br>
- <br>
- Args:<br>
- x: X coordinate of the start of the gesture in CSS pixels.<br>
- y: Y coordinate of the start of the gesture in CSS pixels.<br>
- xDistance: Distance to scroll along the X axis (positive to scroll left).<br>
- yDistance: Ddistance to scroll along the Y axis (positive to scroll up).<br>
- xOverscroll: Number of additional pixels to scroll back along the X axis.<br>
- xOverscroll: Number of additional pixels to scroll back along the Y axis.<br>
- preventFling: Prevents a fling gesture.<br>
- speed: Swipe speed in pixels per second.<br>
- gestureSourceType: Which type of input events to be generated.<br>
- repeatCount: Number of additional repeats beyond the first scroll.<br>
- repeatDelayMs: Number of milliseconds delay between each repeat.<br>
- interactionMarkerName: The name of the interaction markers to generate.<br>
- <br>
- Raises:<br>
- exceptions.TimeoutException<br>
- exceptions.DevtoolsTargetCrashException</tt></dd></dl>
- <dl><dt><a name="Tab-WaitForDocumentReadyStateToBeComplete"><strong>WaitForDocumentReadyStateToBeComplete</strong></a>(self, timeout<font color="#909090">=90</font>)</dt><dd><tt>Waits for the document to finish loading.<br>
- <br>
- Raises:<br>
- exceptions.Error: See <a href="#Tab-WaitForJavaScriptExpression">WaitForJavaScriptExpression</a>() for a detailed list<br>
- of possible exceptions.</tt></dd></dl>
- <dl><dt><a name="Tab-WaitForDocumentReadyStateToBeInteractiveOrBetter"><strong>WaitForDocumentReadyStateToBeInteractiveOrBetter</strong></a>(self, timeout<font color="#909090">=90</font>)</dt><dd><tt>Waits for the document to be interactive.<br>
- <br>
- Raises:<br>
- exceptions.Error: See <a href="#Tab-WaitForJavaScriptExpression">WaitForJavaScriptExpression</a>() for a detailed list<br>
- of possible exceptions.</tt></dd></dl>
- <dl><dt><a name="Tab-WaitForJavaScriptExpression"><strong>WaitForJavaScriptExpression</strong></a>(self, expr, timeout, dump_page_state_on_timeout<font color="#909090">=True</font>)</dt><dd><tt>Waits for the given JavaScript expression to be True.<br>
- <br>
- This method is robust against any given Evaluation timing out.<br>
- <br>
- Args:<br>
- expr: The expression to evaluate.<br>
- timeout: The number of seconds to wait for the expression to be True.<br>
- dump_page_state_on_timeout: Whether to provide additional information on<br>
- the page state if a TimeoutException is thrown.<br>
- <br>
- Raises:<br>
- exceptions.TimeoutException: On a timeout.<br>
- exceptions.Error: See <a href="#Tab-EvaluateJavaScript">EvaluateJavaScript</a>() for a detailed list of<br>
- possible exceptions.</tt></dd></dl>
- <dl><dt><a name="Tab-WaitForNavigate"><strong>WaitForNavigate</strong></a>(self, timeout<font color="#909090">=90</font>)</dt><dd><tt>Waits for the navigation to complete.<br>
- <br>
- The current page is expect to be in a navigation.<br>
- This function returns when the navigation is complete or when<br>
- the timeout has been exceeded.<br>
- <br>
- Raises:<br>
- exceptions.TimeoutException<br>
- exceptions.DevtoolsTargetCrashException</tt></dd></dl>
- <hr>
- Data descriptors inherited from <a href="telemetry.internal.browser.web_contents.html#WebContents">telemetry.internal.browser.web_contents.WebContents</a>:<br>
- <dl><dt><strong>__dict__</strong></dt>
- <dd><tt>dictionary for instance variables (if defined)</tt></dd>
- </dl>
- <dl><dt><strong>__weakref__</strong></dt>
- <dd><tt>list of weak references to the object (if defined)</tt></dd>
- </dl>
- <dl><dt><strong>id</strong></dt>
- <dd><tt>Return the unique id string for this tab object.</tt></dd>
- </dl>
- <dl><dt><strong>message_output_stream</strong></dt>
- </dl>
- <dl><dt><strong>timeline_model</strong></dt>
- </dl>
- </td></tr></table></td></tr></table><p>
- <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
- <tr bgcolor="#55aa55">
- <td colspan=3 valign=bottom> <br>
- <font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
-
- <tr><td bgcolor="#55aa55"><tt> </tt></td><td> </td>
- <td width="100%"><strong>DEFAULT_TAB_TIMEOUT</strong> = 60</td></tr></table>
- </body></html>
|