Upstream version 10.38.222.0
[platform/framework/web/crosswalk.git] / src / tools / telemetry / docs / telemetry.html
1
2 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
3 <html><head><title>Python: package telemetry</title>
4 </head><body bgcolor="#f0f0f8">
5
6 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading">
7 <tr bgcolor="#7799ee">
8 <td valign=bottom>&nbsp;<br>
9 <font color="#ffffff" face="helvetica, arial">&nbsp;<br><big><big><strong>telemetry</strong></big></big></font></td
10 ><td align=right valign=bottom
11 ><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="../telemetry/__init__.py">telemetry/__init__.py</a></font></td></tr></table>
12     <p><tt>A&nbsp;library&nbsp;for&nbsp;cross-platform&nbsp;browser&nbsp;tests.</tt></p>
13 <p>
14 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
15 <tr bgcolor="#aa55cc">
16 <td colspan=3 valign=bottom>&nbsp;<br>
17 <font color="#ffffff" face="helvetica, arial"><big><strong>Package Contents</strong></big></font></td></tr>
18     
19 <tr><td bgcolor="#aa55cc"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
20 <td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="telemetry.core.html"><strong>core</strong>&nbsp;(package)</a><br>
21 <a href="telemetry.decorators.html">decorators</a><br>
22 <a href="telemetry.exception_formatter.html">exception_formatter</a><br>
23 </td><td width="25%" valign=top><a href="telemetry.page.html"><strong>page</strong>&nbsp;(package)</a><br>
24 <a href="telemetry.test.html">test</a><br>
25 <a href="telemetry.test_runner.html">test_runner</a><br>
26 </td><td width="25%" valign=top><a href="telemetry.unittest.html"><strong>unittest</strong>&nbsp;(package)</a><br>
27 <a href="telemetry.util.html"><strong>util</strong>&nbsp;(package)</a><br>
28 <a href="telemetry.value.html"><strong>value</strong>&nbsp;(package)</a><br>
29 </td><td width="25%" valign=top><a href="telemetry.web_components.html"><strong>web_components</strong>&nbsp;(package)</a><br>
30 </td></tr></table></td></tr></table><p>
31 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
32 <tr bgcolor="#ee77aa">
33 <td colspan=3 valign=bottom>&nbsp;<br>
34 <font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr>
35     
36 <tr><td bgcolor="#ee77aa"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
37 <td width="100%"><dl>
38 <dt><font face="helvetica, arial"><a href="__builtin__.html#object">__builtin__.object</a>
39 </font></dt><dd>
40 <dl>
41 <dt><font face="helvetica, arial"><a href="telemetry.core.browser.html#Browser">telemetry.core.browser.Browser</a>
42 </font></dt></dl>
43 </dd>
44 <dt><font face="helvetica, arial"><a href="optparse.html#Values">optparse.Values</a>
45 </font></dt><dd>
46 <dl>
47 <dt><font face="helvetica, arial"><a href="telemetry.core.browser_options.html#BrowserFinderOptions">telemetry.core.browser_options.BrowserFinderOptions</a>
48 </font></dt></dl>
49 </dd>
50 <dt><font face="helvetica, arial"><a href="telemetry.core.web_contents.html#WebContents">telemetry.core.web_contents.WebContents</a>(<a href="__builtin__.html#object">__builtin__.object</a>)
51 </font></dt><dd>
52 <dl>
53 <dt><font face="helvetica, arial"><a href="telemetry.core.tab.html#Tab">telemetry.core.tab.Tab</a>
54 </font></dt></dl>
55 </dd>
56 <dt><font face="helvetica, arial"><a href="telemetry.page.page_test.html#PageTest">telemetry.page.page_test.PageTest</a>(<a href="telemetry.core.command_line.html#ArgumentHandlerMixIn">telemetry.core.command_line.ArgumentHandlerMixIn</a>)
57 </font></dt><dd>
58 <dl>
59 <dt><font face="helvetica, arial"><a href="telemetry.page.page_measurement.html#PageMeasurement">telemetry.page.page_measurement.PageMeasurement</a>
60 </font></dt></dl>
61 </dd>
62 </dl>
63  <p>
64 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
65 <tr bgcolor="#ffc8d8">
66 <td colspan=3 valign=bottom>&nbsp;<br>
67 <font color="#000000" face="helvetica, arial"><a name="Browser">class <strong>Browser</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr>
68     
69 <tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
70 <td colspan=2><tt>A&nbsp;running&nbsp;browser&nbsp;instance&nbsp;that&nbsp;can&nbsp;be&nbsp;controlled&nbsp;in&nbsp;a&nbsp;limited&nbsp;way.<br>
71 &nbsp;<br>
72 To&nbsp;create&nbsp;a&nbsp;browser&nbsp;instance,&nbsp;use&nbsp;browser_finder.FindBrowser.<br>
73 &nbsp;<br>
74 Be&nbsp;sure&nbsp;to&nbsp;clean&nbsp;up&nbsp;after&nbsp;yourself&nbsp;by&nbsp;calling&nbsp;<a href="#Browser-Close">Close</a>()&nbsp;when&nbsp;you&nbsp;are&nbsp;done&nbsp;with<br>
75 the&nbsp;browser.&nbsp;Or&nbsp;better&nbsp;yet:<br>
76 &nbsp;&nbsp;browser_to_create&nbsp;=&nbsp;FindBrowser(options)<br>
77 &nbsp;&nbsp;with&nbsp;browser_to_create.Create()&nbsp;as&nbsp;browser:<br>
78 &nbsp;&nbsp;&nbsp;&nbsp;...&nbsp;do&nbsp;all&nbsp;your&nbsp;operations&nbsp;on&nbsp;browser&nbsp;here<br>&nbsp;</tt></td></tr>
79 <tr><td>&nbsp;</td>
80 <td width="100%">Methods defined here:<br>
81 <dl><dt><a name="Browser-Close"><strong>Close</strong></a>(self)</dt><dd><tt>Closes&nbsp;this&nbsp;browser.</tt></dd></dl>
82
83 <dl><dt><a name="Browser-GetStackTrace"><strong>GetStackTrace</strong></a>(self)</dt></dl>
84
85 <dl><dt><a name="Browser-GetStandardOutput"><strong>GetStandardOutput</strong></a>(self)</dt></dl>
86
87 <dl><dt><a name="Browser-GetSystemInfo"><strong>GetSystemInfo</strong></a>(self)</dt><dd><tt>Returns&nbsp;low-level&nbsp;information&nbsp;about&nbsp;the&nbsp;system,&nbsp;if&nbsp;available.<br>
88 &nbsp;<br>
89 See&nbsp;the&nbsp;documentation&nbsp;of&nbsp;the&nbsp;SystemInfo&nbsp;class&nbsp;for&nbsp;more&nbsp;details.</tt></dd></dl>
90
91 <dl><dt><a name="Browser-SetHTTPServerDirectories"><strong>SetHTTPServerDirectories</strong></a>(self, paths)</dt><dd><tt>Returns&nbsp;True&nbsp;if&nbsp;the&nbsp;HTTP&nbsp;server&nbsp;was&nbsp;started,&nbsp;False&nbsp;otherwise.</tt></dd></dl>
92
93 <dl><dt><a name="Browser-SetReplayArchivePath"><strong>SetReplayArchivePath</strong></a>(self, archive_path, append_to_existing_wpr<font color="#909090">=False</font>, make_javascript_deterministic<font color="#909090">=True</font>)</dt></dl>
94
95 <dl><dt><a name="Browser-Start"><strong>Start</strong></a>(self)</dt></dl>
96
97 <dl><dt><a name="Browser-StartLocalServer"><strong>StartLocalServer</strong></a>(self, server)</dt><dd><tt>Starts&nbsp;a&nbsp;LocalServer&nbsp;and&nbsp;associates&nbsp;it&nbsp;with&nbsp;this&nbsp;browser.<br>
98 &nbsp;<br>
99 It&nbsp;will&nbsp;be&nbsp;closed&nbsp;when&nbsp;the&nbsp;browser&nbsp;closes.</tt></dd></dl>
100
101 <dl><dt><a name="Browser-StartProfiling"><strong>StartProfiling</strong></a>(self, profiler_name, base_output_file)</dt><dd><tt>Starts&nbsp;profiling&nbsp;using&nbsp;|profiler_name|.&nbsp;Results&nbsp;are&nbsp;saved&nbsp;to<br>
102 |base_output_file|.&lt;process_name&gt;.</tt></dd></dl>
103
104 <dl><dt><a name="Browser-StartTracing"><strong>StartTracing</strong></a>(self, custom_categories<font color="#909090">=None</font>, timeout<font color="#909090">=10</font>)</dt></dl>
105
106 <dl><dt><a name="Browser-StopProfiling"><strong>StopProfiling</strong></a>(self)</dt><dd><tt>Stops&nbsp;all&nbsp;active&nbsp;profilers&nbsp;and&nbsp;saves&nbsp;their&nbsp;results.<br>
107 &nbsp;<br>
108 Returns:<br>
109 &nbsp;&nbsp;A&nbsp;list&nbsp;of&nbsp;filenames&nbsp;produced&nbsp;by&nbsp;the&nbsp;profiler.</tt></dd></dl>
110
111 <dl><dt><a name="Browser-StopTracing"><strong>StopTracing</strong></a>(self)</dt><dd><tt>Stops&nbsp;tracing&nbsp;and&nbsp;returns&nbsp;the&nbsp;result&nbsp;as&nbsp;TimelineData&nbsp;<a href="__builtin__.html#object">object</a>.</tt></dd></dl>
112
113 <dl><dt><a name="Browser-__enter__"><strong>__enter__</strong></a>(self)</dt></dl>
114
115 <dl><dt><a name="Browser-__exit__"><strong>__exit__</strong></a>(self, *args)</dt></dl>
116
117 <dl><dt><a name="Browser-__init__"><strong>__init__</strong></a>(self, backend, platform_backend)</dt></dl>
118
119 <dl><dt><a name="Browser-is_profiler_active"><strong>is_profiler_active</strong></a>(self, profiler_name)</dt></dl>
120
121 <hr>
122 Data descriptors defined here:<br>
123 <dl><dt><strong>__dict__</strong></dt>
124 <dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
125 </dl>
126 <dl><dt><strong>__weakref__</strong></dt>
127 <dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
128 </dl>
129 <dl><dt><strong>browser_type</strong></dt>
130 </dl>
131 <dl><dt><strong>cpu_stats</strong></dt>
132 <dd><tt>Returns&nbsp;a&nbsp;dict&nbsp;of&nbsp;cpu&nbsp;statistics&nbsp;for&nbsp;the&nbsp;system.<br>
133 {&nbsp;'Browser':&nbsp;{<br>
134 &nbsp;&nbsp;&nbsp;&nbsp;'CpuProcessTime':&nbsp;S,<br>
135 &nbsp;&nbsp;&nbsp;&nbsp;'TotalTime':&nbsp;T<br>
136 &nbsp;&nbsp;},<br>
137 &nbsp;&nbsp;'Gpu':&nbsp;{<br>
138 &nbsp;&nbsp;&nbsp;&nbsp;'CpuProcessTime':&nbsp;S,<br>
139 &nbsp;&nbsp;&nbsp;&nbsp;'TotalTime':&nbsp;T<br>
140 &nbsp;&nbsp;},<br>
141 &nbsp;&nbsp;'Renderer':&nbsp;{<br>
142 &nbsp;&nbsp;&nbsp;&nbsp;'CpuProcessTime':&nbsp;S,<br>
143 &nbsp;&nbsp;&nbsp;&nbsp;'TotalTime':&nbsp;T<br>
144 &nbsp;&nbsp;}<br>
145 }<br>
146 Any&nbsp;of&nbsp;the&nbsp;above&nbsp;keys&nbsp;may&nbsp;be&nbsp;missing&nbsp;on&nbsp;a&nbsp;per-platform&nbsp;basis.</tt></dd>
147 </dl>
148 <dl><dt><strong>extensions</strong></dt>
149 </dl>
150 <dl><dt><strong>foreground_tab</strong></dt>
151 </dl>
152 <dl><dt><strong>http_server</strong></dt>
153 </dl>
154 <dl><dt><strong>io_stats</strong></dt>
155 <dd><tt>Returns&nbsp;a&nbsp;dict&nbsp;of&nbsp;IO&nbsp;statistics&nbsp;for&nbsp;the&nbsp;browser:<br>
156 {&nbsp;'Browser':&nbsp;{<br>
157 &nbsp;&nbsp;&nbsp;&nbsp;'ReadOperationCount':&nbsp;W,<br>
158 &nbsp;&nbsp;&nbsp;&nbsp;'WriteOperationCount':&nbsp;X,<br>
159 &nbsp;&nbsp;&nbsp;&nbsp;'ReadTransferCount':&nbsp;Y,<br>
160 &nbsp;&nbsp;&nbsp;&nbsp;'WriteTransferCount':&nbsp;Z<br>
161 &nbsp;&nbsp;},<br>
162 &nbsp;&nbsp;'Gpu':&nbsp;{<br>
163 &nbsp;&nbsp;&nbsp;&nbsp;'ReadOperationCount':&nbsp;W,<br>
164 &nbsp;&nbsp;&nbsp;&nbsp;'WriteOperationCount':&nbsp;X,<br>
165 &nbsp;&nbsp;&nbsp;&nbsp;'ReadTransferCount':&nbsp;Y,<br>
166 &nbsp;&nbsp;&nbsp;&nbsp;'WriteTransferCount':&nbsp;Z<br>
167 &nbsp;&nbsp;},<br>
168 &nbsp;&nbsp;'Renderer':&nbsp;{<br>
169 &nbsp;&nbsp;&nbsp;&nbsp;'ReadOperationCount':&nbsp;W,<br>
170 &nbsp;&nbsp;&nbsp;&nbsp;'WriteOperationCount':&nbsp;X,<br>
171 &nbsp;&nbsp;&nbsp;&nbsp;'ReadTransferCount':&nbsp;Y,<br>
172 &nbsp;&nbsp;&nbsp;&nbsp;'WriteTransferCount':&nbsp;Z<br>
173 &nbsp;&nbsp;}<br>
174 }</tt></dd>
175 </dl>
176 <dl><dt><strong>is_content_shell</strong></dt>
177 <dd><tt>Returns&nbsp;whether&nbsp;this&nbsp;browser&nbsp;is&nbsp;a&nbsp;content&nbsp;shell,&nbsp;only.</tt></dd>
178 </dl>
179 <dl><dt><strong>is_tracing_running</strong></dt>
180 </dl>
181 <dl><dt><strong>local_servers</strong></dt>
182 <dd><tt>Returns&nbsp;the&nbsp;currently&nbsp;running&nbsp;local&nbsp;servers.</tt></dd>
183 </dl>
184 <dl><dt><strong>memory_stats</strong></dt>
185 <dd><tt>Returns&nbsp;a&nbsp;dict&nbsp;of&nbsp;memory&nbsp;statistics&nbsp;for&nbsp;the&nbsp;browser:<br>
186 {&nbsp;'Browser':&nbsp;{<br>
187 &nbsp;&nbsp;&nbsp;&nbsp;'VM':&nbsp;R,<br>
188 &nbsp;&nbsp;&nbsp;&nbsp;'VMPeak':&nbsp;S,<br>
189 &nbsp;&nbsp;&nbsp;&nbsp;'WorkingSetSize':&nbsp;T,<br>
190 &nbsp;&nbsp;&nbsp;&nbsp;'WorkingSetSizePeak':&nbsp;U,<br>
191 &nbsp;&nbsp;&nbsp;&nbsp;'ProportionalSetSize':&nbsp;V,<br>
192 &nbsp;&nbsp;&nbsp;&nbsp;'PrivateDirty':&nbsp;W<br>
193 &nbsp;&nbsp;},<br>
194 &nbsp;&nbsp;'Gpu':&nbsp;{<br>
195 &nbsp;&nbsp;&nbsp;&nbsp;'VM':&nbsp;R,<br>
196 &nbsp;&nbsp;&nbsp;&nbsp;'VMPeak':&nbsp;S,<br>
197 &nbsp;&nbsp;&nbsp;&nbsp;'WorkingSetSize':&nbsp;T,<br>
198 &nbsp;&nbsp;&nbsp;&nbsp;'WorkingSetSizePeak':&nbsp;U,<br>
199 &nbsp;&nbsp;&nbsp;&nbsp;'ProportionalSetSize':&nbsp;V,<br>
200 &nbsp;&nbsp;&nbsp;&nbsp;'PrivateDirty':&nbsp;W<br>
201 &nbsp;&nbsp;},<br>
202 &nbsp;&nbsp;'Renderer':&nbsp;{<br>
203 &nbsp;&nbsp;&nbsp;&nbsp;'VM':&nbsp;R,<br>
204 &nbsp;&nbsp;&nbsp;&nbsp;'VMPeak':&nbsp;S,<br>
205 &nbsp;&nbsp;&nbsp;&nbsp;'WorkingSetSize':&nbsp;T,<br>
206 &nbsp;&nbsp;&nbsp;&nbsp;'WorkingSetSizePeak':&nbsp;U,<br>
207 &nbsp;&nbsp;&nbsp;&nbsp;'ProportionalSetSize':&nbsp;V,<br>
208 &nbsp;&nbsp;&nbsp;&nbsp;'PrivateDirty':&nbsp;W<br>
209 &nbsp;&nbsp;},<br>
210 &nbsp;&nbsp;'SystemCommitCharge':&nbsp;X,<br>
211 &nbsp;&nbsp;'SystemTotalPhysicalMemory':&nbsp;Y,<br>
212 &nbsp;&nbsp;'ProcessCount':&nbsp;Z,<br>
213 }<br>
214 Any&nbsp;of&nbsp;the&nbsp;above&nbsp;keys&nbsp;may&nbsp;be&nbsp;missing&nbsp;on&nbsp;a&nbsp;per-platform&nbsp;basis.</tt></dd>
215 </dl>
216 <dl><dt><strong>platform</strong></dt>
217 </dl>
218 <dl><dt><strong>supports_extensions</strong></dt>
219 </dl>
220 <dl><dt><strong>supports_system_info</strong></dt>
221 </dl>
222 <dl><dt><strong>supports_tab_control</strong></dt>
223 </dl>
224 <dl><dt><strong>supports_tracing</strong></dt>
225 </dl>
226 <dl><dt><strong>synthetic_gesture_source_type</strong></dt>
227 </dl>
228 <dl><dt><strong>tabs</strong></dt>
229 </dl>
230 </td></tr></table> <p>
231 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
232 <tr bgcolor="#ffc8d8">
233 <td colspan=3 valign=bottom>&nbsp;<br>
234 <font color="#000000" face="helvetica, arial"><a name="BrowserFinderOptions">class <strong>BrowserFinderOptions</strong></a>(<a href="optparse.html#Values">optparse.Values</a>)</font></td></tr>
235     
236 <tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
237 <td colspan=2><tt>Options&nbsp;to&nbsp;be&nbsp;used&nbsp;for&nbsp;discovering&nbsp;a&nbsp;browser.<br>&nbsp;</tt></td></tr>
238 <tr><td>&nbsp;</td>
239 <td width="100%">Methods defined here:<br>
240 <dl><dt><a name="BrowserFinderOptions-AppendExtraBrowserArgs"><strong>AppendExtraBrowserArgs</strong></a>(self, args)</dt></dl>
241
242 <dl><dt><a name="BrowserFinderOptions-Copy"><strong>Copy</strong></a>(self)</dt></dl>
243
244 <dl><dt><a name="BrowserFinderOptions-CreateParser"><strong>CreateParser</strong></a>(self, *args, **kwargs)</dt></dl>
245
246 <dl><dt><a name="BrowserFinderOptions-MergeDefaultValues"><strong>MergeDefaultValues</strong></a>(self, defaults)</dt></dl>
247
248 <dl><dt><a name="BrowserFinderOptions-__init__"><strong>__init__</strong></a>(self, browser_type<font color="#909090">=None</font>)</dt></dl>
249
250 <hr>
251 Methods inherited from <a href="optparse.html#Values">optparse.Values</a>:<br>
252 <dl><dt><a name="BrowserFinderOptions-__cmp__"><strong>__cmp__</strong></a>(self, other)</dt></dl>
253
254 <dl><dt><a name="BrowserFinderOptions-__repr__"><strong>__repr__</strong></a> = _repr(self)</dt></dl>
255
256 <dl><dt><a name="BrowserFinderOptions-__str__"><strong>__str__</strong></a>(self)</dt></dl>
257
258 <dl><dt><a name="BrowserFinderOptions-ensure_value"><strong>ensure_value</strong></a>(self, attr, value)</dt></dl>
259
260 <dl><dt><a name="BrowserFinderOptions-read_file"><strong>read_file</strong></a>(self, filename, mode<font color="#909090">='careful'</font>)</dt></dl>
261
262 <dl><dt><a name="BrowserFinderOptions-read_module"><strong>read_module</strong></a>(self, modname, mode<font color="#909090">='careful'</font>)</dt></dl>
263
264 </td></tr></table> <p>
265 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
266 <tr bgcolor="#ffc8d8">
267 <td colspan=3 valign=bottom>&nbsp;<br>
268 <font color="#000000" face="helvetica, arial"><a name="PageMeasurement">class <strong>PageMeasurement</strong></a>(<a href="telemetry.page.page_test.html#PageTest">telemetry.page.page_test.PageTest</a>)</font></td></tr>
269     
270 <tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
271 <td colspan=2><tt>Glue&nbsp;code&nbsp;for&nbsp;running&nbsp;a&nbsp;measurement&nbsp;across&nbsp;a&nbsp;set&nbsp;of&nbsp;pages.<br>
272 &nbsp;<br>
273 To&nbsp;use&nbsp;this,&nbsp;subclass&nbsp;from&nbsp;the&nbsp;measurement&nbsp;and&nbsp;override&nbsp;MeasurePage.&nbsp;For<br>
274 example:<br>
275 &nbsp;<br>
276 &nbsp;&nbsp;&nbsp;class&nbsp;BodyChildElementMeasurement(<a href="#PageMeasurement">PageMeasurement</a>):<br>
277 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def&nbsp;<a href="#PageMeasurement-MeasurePage">MeasurePage</a>(self,&nbsp;page,&nbsp;tab,&nbsp;results):<br>
278 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;body_child_count&nbsp;=&nbsp;tab.EvaluateJavaScript(<br>
279 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'document.body.children.length')<br>
280 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;results.Add('body_children',&nbsp;'count',&nbsp;body_child_count)<br>
281 &nbsp;<br>
282 &nbsp;&nbsp;&nbsp;if&nbsp;__name__&nbsp;==&nbsp;'__main__':<br>
283 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;page_measurement.Main(BodyChildElementMeasurement())<br>
284 &nbsp;<br>
285 To&nbsp;add&nbsp;test-specific&nbsp;options:<br>
286 &nbsp;<br>
287 &nbsp;&nbsp;&nbsp;class&nbsp;BodyChildElementMeasurement(<a href="#PageMeasurement">PageMeasurement</a>):<br>
288 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def&nbsp;<a href="#PageMeasurement-AddCommandLineArgs">AddCommandLineArgs</a>(parser):<br>
289 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;parser.add_option('--element',&nbsp;action='store',&nbsp;default='body')<br>
290 &nbsp;<br>
291 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;def&nbsp;<a href="#PageMeasurement-MeasurePage">MeasurePage</a>(self,&nbsp;page,&nbsp;tab,&nbsp;results):<br>
292 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;body_child_count&nbsp;=&nbsp;tab.EvaluateJavaScript(<br>
293 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'document.querySelector('%s').children.length')<br>
294 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;results.Add('children',&nbsp;'count',&nbsp;child_count)<br>&nbsp;</tt></td></tr>
295 <tr><td>&nbsp;</td>
296 <td width="100%"><dl><dt>Method resolution order:</dt>
297 <dd><a href="telemetry.page.page_measurement.html#PageMeasurement">PageMeasurement</a></dd>
298 <dd><a href="telemetry.page.page_test.html#PageTest">telemetry.page.page_test.PageTest</a></dd>
299 <dd><a href="telemetry.core.command_line.html#ArgumentHandlerMixIn">telemetry.core.command_line.ArgumentHandlerMixIn</a></dd>
300 <dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
301 </dl>
302 <hr>
303 Methods defined here:<br>
304 <dl><dt><a name="PageMeasurement-MeasurePage"><strong>MeasurePage</strong></a>(self, page, tab, results)</dt><dd><tt>Override&nbsp;to&nbsp;actually&nbsp;measure&nbsp;the&nbsp;page's&nbsp;performance.<br>
305 &nbsp;<br>
306 page&nbsp;is&nbsp;a&nbsp;page_set.Page<br>
307 tab&nbsp;is&nbsp;an&nbsp;instance&nbsp;of&nbsp;telemetry.core.<a href="#Tab">Tab</a><br>
308 &nbsp;<br>
309 Should&nbsp;call&nbsp;results.Add(name,&nbsp;units,&nbsp;value)&nbsp;for&nbsp;each&nbsp;result,&nbsp;or&nbsp;raise&nbsp;an<br>
310 exception&nbsp;on&nbsp;failure.&nbsp;The&nbsp;name&nbsp;and&nbsp;units&nbsp;of&nbsp;each&nbsp;Add()&nbsp;call&nbsp;must&nbsp;be<br>
311 the&nbsp;same&nbsp;across&nbsp;all&nbsp;iterations.&nbsp;The&nbsp;name&nbsp;'url'&nbsp;must&nbsp;not&nbsp;be&nbsp;used.<br>
312 &nbsp;<br>
313 Prefer&nbsp;field&nbsp;names&nbsp;that&nbsp;are&nbsp;in&nbsp;accordance&nbsp;with&nbsp;python&nbsp;variable&nbsp;style.&nbsp;E.g.<br>
314 field_name.<br>
315 &nbsp;<br>
316 Put&nbsp;together:<br>
317 &nbsp;<br>
318 &nbsp;&nbsp;&nbsp;def&nbsp;<a href="#PageMeasurement-MeasurePage">MeasurePage</a>(self,&nbsp;page,&nbsp;tab,&nbsp;results):<br>
319 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;res&nbsp;=&nbsp;tab.EvaluateJavaScript('2+2')<br>
320 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;res&nbsp;!=&nbsp;4:<br>
321 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;raise&nbsp;Exception('Oh,&nbsp;wow.')<br>
322 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;results.Add('two_plus_two',&nbsp;'count',&nbsp;res)</tt></dd></dl>
323
324 <dl><dt><a name="PageMeasurement-__init__"><strong>__init__</strong></a>(self, action_name_to_run<font color="#909090">=''</font>, needs_browser_restart_after_each_page<font color="#909090">=False</font>, discard_first_result<font color="#909090">=False</font>, clear_cache_before_each_run<font color="#909090">=False</font>)</dt></dl>
325
326 <hr>
327 Data descriptors defined here:<br>
328 <dl><dt><strong>results_are_the_same_on_every_page</strong></dt>
329 <dd><tt>By&nbsp;default,&nbsp;measurements&nbsp;are&nbsp;assumed&nbsp;to&nbsp;output&nbsp;the&nbsp;same&nbsp;values&nbsp;for&nbsp;every<br>
330 page.&nbsp;This&nbsp;allows&nbsp;incremental&nbsp;output,&nbsp;for&nbsp;example&nbsp;in&nbsp;CSV.&nbsp;If,&nbsp;however,&nbsp;the<br>
331 measurement&nbsp;discovers&nbsp;what&nbsp;values&nbsp;it&nbsp;can&nbsp;report&nbsp;as&nbsp;it&nbsp;goes,&nbsp;and&nbsp;those&nbsp;values<br>
332 may&nbsp;vary&nbsp;from&nbsp;page&nbsp;to&nbsp;page,&nbsp;you&nbsp;need&nbsp;to&nbsp;override&nbsp;this&nbsp;function&nbsp;and&nbsp;return<br>
333 False.&nbsp;Output&nbsp;will&nbsp;not&nbsp;appear&nbsp;in&nbsp;this&nbsp;mode&nbsp;until&nbsp;the&nbsp;entire&nbsp;pageset&nbsp;has<br>
334 run.</tt></dd>
335 </dl>
336 <hr>
337 Methods inherited from <a href="telemetry.page.page_test.html#PageTest">telemetry.page.page_test.PageTest</a>:<br>
338 <dl><dt><a name="PageMeasurement-CanRunForPage"><strong>CanRunForPage</strong></a>(self, page)</dt><dd><tt>Override&nbsp;to&nbsp;customize&nbsp;if&nbsp;the&nbsp;test&nbsp;can&nbsp;be&nbsp;ran&nbsp;for&nbsp;the&nbsp;given&nbsp;page.</tt></dd></dl>
339
340 <dl><dt><a name="PageMeasurement-CleanUpAfterPage"><strong>CleanUpAfterPage</strong></a>(self, page, tab)</dt><dd><tt>Called&nbsp;after&nbsp;the&nbsp;test&nbsp;run&nbsp;method&nbsp;was&nbsp;run,&nbsp;even&nbsp;if&nbsp;it&nbsp;failed.</tt></dd></dl>
341
342 <dl><dt><a name="PageMeasurement-CreateExpectations"><strong>CreateExpectations</strong></a>(self, page_set)</dt><dd><tt>Override&nbsp;to&nbsp;make&nbsp;this&nbsp;test&nbsp;generate&nbsp;its&nbsp;own&nbsp;expectations&nbsp;instead&nbsp;of<br>
343 any&nbsp;that&nbsp;may&nbsp;have&nbsp;been&nbsp;defined&nbsp;in&nbsp;the&nbsp;page&nbsp;set.</tt></dd></dl>
344
345 <dl><dt><a name="PageMeasurement-CreatePageSet"><strong>CreatePageSet</strong></a>(self, args, options)</dt><dd><tt>Override&nbsp;to&nbsp;make&nbsp;this&nbsp;test&nbsp;generate&nbsp;its&nbsp;own&nbsp;page&nbsp;set&nbsp;instead&nbsp;of<br>
346 allowing&nbsp;arbitrary&nbsp;page&nbsp;sets&nbsp;entered&nbsp;from&nbsp;the&nbsp;command-line.</tt></dd></dl>
347
348 <dl><dt><a name="PageMeasurement-CustomizeBrowserOptions"><strong>CustomizeBrowserOptions</strong></a>(self, options)</dt><dd><tt>Override&nbsp;to&nbsp;add&nbsp;test-specific&nbsp;options&nbsp;to&nbsp;the&nbsp;BrowserOptions&nbsp;<a href="__builtin__.html#object">object</a></tt></dd></dl>
349
350 <dl><dt><a name="PageMeasurement-CustomizeBrowserOptionsForPageSet"><strong>CustomizeBrowserOptionsForPageSet</strong></a>(self, page_set, options)</dt><dd><tt>Set&nbsp;options&nbsp;required&nbsp;for&nbsp;this&nbsp;page&nbsp;set.<br>
351 &nbsp;<br>
352 These&nbsp;options&nbsp;will&nbsp;be&nbsp;used&nbsp;every&nbsp;time&nbsp;the&nbsp;browser&nbsp;is&nbsp;started&nbsp;while&nbsp;running<br>
353 this&nbsp;page&nbsp;set.&nbsp;They&nbsp;may,&nbsp;however,&nbsp;be&nbsp;further&nbsp;modified&nbsp;by<br>
354 CustomizeBrowserOptionsForSinglePage&nbsp;or&nbsp;by&nbsp;the&nbsp;profiler.</tt></dd></dl>
355
356 <dl><dt><a name="PageMeasurement-CustomizeBrowserOptionsForSinglePage"><strong>CustomizeBrowserOptionsForSinglePage</strong></a>(self, page, options)</dt><dd><tt>Set&nbsp;options&nbsp;specific&nbsp;to&nbsp;the&nbsp;test&nbsp;and&nbsp;the&nbsp;given&nbsp;page.<br>
357 &nbsp;<br>
358 This&nbsp;will&nbsp;be&nbsp;called&nbsp;with&nbsp;the&nbsp;current&nbsp;page&nbsp;when&nbsp;the&nbsp;browser&nbsp;is&nbsp;(re)started.<br>
359 Changing&nbsp;options&nbsp;at&nbsp;this&nbsp;point&nbsp;only&nbsp;makes&nbsp;sense&nbsp;if&nbsp;the&nbsp;browser&nbsp;is&nbsp;being<br>
360 restarted&nbsp;for&nbsp;each&nbsp;page.&nbsp;Note&nbsp;that&nbsp;if&nbsp;page&nbsp;has&nbsp;a&nbsp;startup_url,&nbsp;the&nbsp;browser<br>
361 will&nbsp;always&nbsp;be&nbsp;restarted&nbsp;for&nbsp;each&nbsp;run.</tt></dd></dl>
362
363 <dl><dt><a name="PageMeasurement-DidNavigateToPage"><strong>DidNavigateToPage</strong></a>(self, page, tab)</dt><dd><tt>Override&nbsp;to&nbsp;do&nbsp;operations&nbsp;right&nbsp;after&nbsp;the&nbsp;page&nbsp;is&nbsp;navigated&nbsp;and&nbsp;after<br>
364 all&nbsp;waiting&nbsp;for&nbsp;completion&nbsp;has&nbsp;occurred.</tt></dd></dl>
365
366 <dl><dt><a name="PageMeasurement-DidRunAction"><strong>DidRunAction</strong></a>(self, page, tab, action)</dt><dd><tt>Override&nbsp;to&nbsp;do&nbsp;operations&nbsp;after&nbsp;running&nbsp;the&nbsp;action&nbsp;on&nbsp;the&nbsp;page.</tt></dd></dl>
367
368 <dl><dt><a name="PageMeasurement-DidRunActions"><strong>DidRunActions</strong></a>(self, page, tab)</dt><dd><tt>Override&nbsp;to&nbsp;do&nbsp;operations&nbsp;after&nbsp;running&nbsp;the&nbsp;actions&nbsp;on&nbsp;the&nbsp;page.</tt></dd></dl>
369
370 <dl><dt><a name="PageMeasurement-DidRunPageRepeats"><strong>DidRunPageRepeats</strong></a>(self, page)</dt><dd><tt>Override&nbsp;to&nbsp;do&nbsp;operations&nbsp;after&nbsp;each&nbsp;page&nbsp;is&nbsp;iterated&nbsp;over.</tt></dd></dl>
371
372 <dl><dt><a name="PageMeasurement-DidRunTest"><strong>DidRunTest</strong></a>(self, browser, results)</dt><dd><tt>Override&nbsp;to&nbsp;do&nbsp;operations&nbsp;after&nbsp;all&nbsp;page&nbsp;set(s)&nbsp;are&nbsp;completed.<br>
373 &nbsp;<br>
374 This&nbsp;will&nbsp;occur&nbsp;before&nbsp;the&nbsp;browser&nbsp;is&nbsp;torn&nbsp;down.</tt></dd></dl>
375
376 <dl><dt><a name="PageMeasurement-DidStartBrowser"><strong>DidStartBrowser</strong></a>(self, browser)</dt><dd><tt>Override&nbsp;to&nbsp;customize&nbsp;the&nbsp;browser&nbsp;right&nbsp;after&nbsp;it&nbsp;has&nbsp;launched.</tt></dd></dl>
377
378 <dl><dt><a name="PageMeasurement-DidStartHTTPServer"><strong>DidStartHTTPServer</strong></a>(self, tab)</dt><dd><tt>Override&nbsp;to&nbsp;do&nbsp;operations&nbsp;after&nbsp;the&nbsp;HTTP&nbsp;server&nbsp;is&nbsp;started.</tt></dd></dl>
379
380 <dl><dt><a name="PageMeasurement-IsExiting"><strong>IsExiting</strong></a>(self)</dt></dl>
381
382 <dl><dt><a name="PageMeasurement-RequestExit"><strong>RequestExit</strong></a>(self)</dt></dl>
383
384 <dl><dt><a name="PageMeasurement-RestartBrowserBeforeEachPage"><strong>RestartBrowserBeforeEachPage</strong></a>(self)</dt><dd><tt>Should&nbsp;the&nbsp;browser&nbsp;be&nbsp;restarted&nbsp;for&nbsp;the&nbsp;page?<br>
385 &nbsp;<br>
386 This&nbsp;returns&nbsp;true&nbsp;if&nbsp;the&nbsp;test&nbsp;needs&nbsp;to&nbsp;unconditionally&nbsp;restart&nbsp;the<br>
387 browser&nbsp;for&nbsp;each&nbsp;page.&nbsp;It&nbsp;may&nbsp;be&nbsp;called&nbsp;before&nbsp;the&nbsp;browser&nbsp;is&nbsp;started.</tt></dd></dl>
388
389 <dl><dt><a name="PageMeasurement-Run"><strong>Run</strong></a>(self, page, tab, results)</dt></dl>
390
391 <dl><dt><a name="PageMeasurement-RunNavigateSteps"><strong>RunNavigateSteps</strong></a>(self, page, tab)</dt><dd><tt>Navigates&nbsp;the&nbsp;tab&nbsp;to&nbsp;the&nbsp;page&nbsp;URL&nbsp;attribute.<br>
392 &nbsp;<br>
393 Runs&nbsp;the&nbsp;'navigate_steps'&nbsp;page&nbsp;attribute&nbsp;as&nbsp;a&nbsp;compound&nbsp;action.</tt></dd></dl>
394
395 <dl><dt><a name="PageMeasurement-StopBrowserAfterPage"><strong>StopBrowserAfterPage</strong></a>(self, browser, page)</dt><dd><tt>Should&nbsp;the&nbsp;browser&nbsp;be&nbsp;stopped&nbsp;after&nbsp;the&nbsp;page&nbsp;is&nbsp;run?<br>
396 &nbsp;<br>
397 This&nbsp;is&nbsp;called&nbsp;after&nbsp;a&nbsp;page&nbsp;is&nbsp;run&nbsp;to&nbsp;decide&nbsp;whether&nbsp;the&nbsp;browser&nbsp;needs&nbsp;to<br>
398 be&nbsp;stopped&nbsp;to&nbsp;clean&nbsp;up&nbsp;its&nbsp;state.&nbsp;If&nbsp;it&nbsp;is&nbsp;stopped,&nbsp;then&nbsp;it&nbsp;will&nbsp;be<br>
399 restarted&nbsp;to&nbsp;run&nbsp;the&nbsp;next&nbsp;page.<br>
400 &nbsp;<br>
401 A&nbsp;test&nbsp;that&nbsp;overrides&nbsp;this&nbsp;can&nbsp;look&nbsp;at&nbsp;both&nbsp;the&nbsp;page&nbsp;and&nbsp;the&nbsp;browser&nbsp;to<br>
402 decide&nbsp;whether&nbsp;it&nbsp;needs&nbsp;to&nbsp;stop&nbsp;the&nbsp;browser.</tt></dd></dl>
403
404 <dl><dt><a name="PageMeasurement-TabForPage"><strong>TabForPage</strong></a>(self, page, browser)</dt><dd><tt>Override&nbsp;to&nbsp;select&nbsp;a&nbsp;different&nbsp;tab&nbsp;for&nbsp;the&nbsp;page.&nbsp;&nbsp;For&nbsp;instance,&nbsp;to<br>
405 create&nbsp;a&nbsp;new&nbsp;tab&nbsp;for&nbsp;every&nbsp;page,&nbsp;return&nbsp;browser.tabs.New().</tt></dd></dl>
406
407 <dl><dt><a name="PageMeasurement-ValidatePageSet"><strong>ValidatePageSet</strong></a>(self, page_set)</dt><dd><tt>Override&nbsp;to&nbsp;examine&nbsp;the&nbsp;page&nbsp;set&nbsp;before&nbsp;the&nbsp;test&nbsp;run.&nbsp;&nbsp;Useful&nbsp;for<br>
408 example&nbsp;to&nbsp;validate&nbsp;that&nbsp;the&nbsp;pageset&nbsp;can&nbsp;be&nbsp;used&nbsp;with&nbsp;the&nbsp;test.</tt></dd></dl>
409
410 <dl><dt><a name="PageMeasurement-WillNavigateToPage"><strong>WillNavigateToPage</strong></a>(self, page, tab)</dt><dd><tt>Override&nbsp;to&nbsp;do&nbsp;operations&nbsp;before&nbsp;the&nbsp;page&nbsp;is&nbsp;navigated,&nbsp;notably&nbsp;Telemetry<br>
411 will&nbsp;already&nbsp;have&nbsp;performed&nbsp;the&nbsp;following&nbsp;operations&nbsp;on&nbsp;the&nbsp;browser&nbsp;before<br>
412 calling&nbsp;this&nbsp;function:<br>
413 *&nbsp;Ensure&nbsp;only&nbsp;one&nbsp;tab&nbsp;is&nbsp;open.<br>
414 *&nbsp;Call&nbsp;WaitForDocumentReadyStateToComplete&nbsp;on&nbsp;the&nbsp;tab.</tt></dd></dl>
415
416 <dl><dt><a name="PageMeasurement-WillRunAction"><strong>WillRunAction</strong></a>(self, page, tab, action)</dt><dd><tt>Override&nbsp;to&nbsp;do&nbsp;operations&nbsp;before&nbsp;running&nbsp;the&nbsp;action&nbsp;on&nbsp;the&nbsp;page.</tt></dd></dl>
417
418 <dl><dt><a name="PageMeasurement-WillRunActions"><strong>WillRunActions</strong></a>(self, page, tab)</dt><dd><tt>Override&nbsp;to&nbsp;do&nbsp;operations&nbsp;before&nbsp;running&nbsp;the&nbsp;actions&nbsp;on&nbsp;the&nbsp;page.</tt></dd></dl>
419
420 <dl><dt><a name="PageMeasurement-WillRunPageRepeats"><strong>WillRunPageRepeats</strong></a>(self, page)</dt><dd><tt>Override&nbsp;to&nbsp;do&nbsp;operations&nbsp;before&nbsp;each&nbsp;page&nbsp;is&nbsp;iterated&nbsp;over.</tt></dd></dl>
421
422 <dl><dt><a name="PageMeasurement-WillRunTest"><strong>WillRunTest</strong></a>(self, options)</dt><dd><tt>Override&nbsp;to&nbsp;do&nbsp;operations&nbsp;before&nbsp;the&nbsp;page&nbsp;set(s)&nbsp;are&nbsp;navigated.</tt></dd></dl>
423
424 <dl><dt><a name="PageMeasurement-WillStartBrowser"><strong>WillStartBrowser</strong></a>(self, browser)</dt><dd><tt>Override&nbsp;to&nbsp;manipulate&nbsp;the&nbsp;browser&nbsp;environment&nbsp;before&nbsp;it&nbsp;launches.</tt></dd></dl>
425
426 <hr>
427 Data descriptors inherited from <a href="telemetry.page.page_test.html#PageTest">telemetry.page.page_test.PageTest</a>:<br>
428 <dl><dt><strong>action_name_to_run</strong></dt>
429 </dl>
430 <dl><dt><strong>attempts</strong></dt>
431 <dd><tt>Maximum&nbsp;number&nbsp;of&nbsp;times&nbsp;test&nbsp;will&nbsp;be&nbsp;attempted.</tt></dd>
432 </dl>
433 <dl><dt><strong>clear_cache_before_each_run</strong></dt>
434 <dd><tt>When&nbsp;set&nbsp;to&nbsp;True,&nbsp;the&nbsp;browser's&nbsp;disk&nbsp;and&nbsp;memory&nbsp;cache&nbsp;will&nbsp;be&nbsp;cleared<br>
435 before&nbsp;each&nbsp;run.</tt></dd>
436 </dl>
437 <dl><dt><strong>close_tabs_before_run</strong></dt>
438 <dd><tt>When&nbsp;set&nbsp;to&nbsp;True,&nbsp;all&nbsp;tabs&nbsp;are&nbsp;closed&nbsp;before&nbsp;running&nbsp;the&nbsp;test&nbsp;for&nbsp;the<br>
439 first&nbsp;time.</tt></dd>
440 </dl>
441 <dl><dt><strong>discard_first_result</strong></dt>
442 <dd><tt>When&nbsp;set&nbsp;to&nbsp;True,&nbsp;the&nbsp;first&nbsp;run&nbsp;of&nbsp;the&nbsp;test&nbsp;is&nbsp;discarded.&nbsp;&nbsp;This&nbsp;is<br>
443 useful&nbsp;for&nbsp;cases&nbsp;where&nbsp;it's&nbsp;desirable&nbsp;to&nbsp;have&nbsp;some&nbsp;test&nbsp;resource&nbsp;cached&nbsp;so<br>
444 the&nbsp;first&nbsp;run&nbsp;of&nbsp;the&nbsp;test&nbsp;can&nbsp;warm&nbsp;things&nbsp;up.</tt></dd>
445 </dl>
446 <dl><dt><strong>max_errors</strong></dt>
447 <dd><tt>Maximum&nbsp;number&nbsp;of&nbsp;errors&nbsp;allowed&nbsp;for&nbsp;the&nbsp;page&nbsp;set.</tt></dd>
448 </dl>
449 <dl><dt><strong>max_failures</strong></dt>
450 <dd><tt>Maximum&nbsp;number&nbsp;of&nbsp;failures&nbsp;allowed&nbsp;for&nbsp;the&nbsp;page&nbsp;set.</tt></dd>
451 </dl>
452 <hr>
453 Class methods inherited from <a href="telemetry.core.command_line.html#ArgumentHandlerMixIn">telemetry.core.command_line.ArgumentHandlerMixIn</a>:<br>
454 <dl><dt><a name="PageMeasurement-AddCommandLineArgs"><strong>AddCommandLineArgs</strong></a>(cls, parser)<font color="#909090"><font face="helvetica, arial"> from <a href="__builtin__.html#type">__builtin__.type</a></font></font></dt><dd><tt>Override&nbsp;to&nbsp;accept&nbsp;custom&nbsp;command-line&nbsp;arguments.</tt></dd></dl>
455
456 <dl><dt><a name="PageMeasurement-ProcessCommandLineArgs"><strong>ProcessCommandLineArgs</strong></a>(cls, parser, args)<font color="#909090"><font face="helvetica, arial"> from <a href="__builtin__.html#type">__builtin__.type</a></font></font></dt><dd><tt>Override&nbsp;to&nbsp;process&nbsp;command-line&nbsp;arguments.<br>
457 &nbsp;<br>
458 We&nbsp;pass&nbsp;in&nbsp;parser&nbsp;so&nbsp;we&nbsp;can&nbsp;call&nbsp;parser.error().</tt></dd></dl>
459
460 <hr>
461 Data descriptors inherited from <a href="telemetry.core.command_line.html#ArgumentHandlerMixIn">telemetry.core.command_line.ArgumentHandlerMixIn</a>:<br>
462 <dl><dt><strong>__dict__</strong></dt>
463 <dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
464 </dl>
465 <dl><dt><strong>__weakref__</strong></dt>
466 <dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
467 </dl>
468 </td></tr></table> <p>
469 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
470 <tr bgcolor="#ffc8d8">
471 <td colspan=3 valign=bottom>&nbsp;<br>
472 <font color="#000000" face="helvetica, arial"><a name="Tab">class <strong>Tab</strong></a>(<a href="telemetry.core.web_contents.html#WebContents">telemetry.core.web_contents.WebContents</a>)</font></td></tr>
473     
474 <tr bgcolor="#ffc8d8"><td rowspan=2><tt>&nbsp;&nbsp;&nbsp;</tt></td>
475 <td colspan=2><tt>Represents&nbsp;a&nbsp;tab&nbsp;in&nbsp;the&nbsp;browser<br>
476 &nbsp;<br>
477 The&nbsp;important&nbsp;parts&nbsp;of&nbsp;the&nbsp;<a href="#Tab">Tab</a>&nbsp;<a href="__builtin__.html#object">object</a>&nbsp;are&nbsp;in&nbsp;the&nbsp;runtime&nbsp;and&nbsp;page&nbsp;objects.<br>
478 E.g.:<br>
479 &nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;Navigates&nbsp;the&nbsp;tab&nbsp;to&nbsp;a&nbsp;given&nbsp;url.<br>
480 &nbsp;&nbsp;&nbsp;&nbsp;tab.<a href="#Tab-Navigate">Navigate</a>('<a href="http://www.google.com/">http://www.google.com/</a>')<br>
481 &nbsp;<br>
482 &nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;Evaluates&nbsp;1+1&nbsp;in&nbsp;the&nbsp;tab's&nbsp;JavaScript&nbsp;context.<br>
483 &nbsp;&nbsp;&nbsp;&nbsp;tab.Evaluate('1+1')<br>&nbsp;</tt></td></tr>
484 <tr><td>&nbsp;</td>
485 <td width="100%"><dl><dt>Method resolution order:</dt>
486 <dd><a href="telemetry.core.tab.html#Tab">Tab</a></dd>
487 <dd><a href="telemetry.core.web_contents.html#WebContents">telemetry.core.web_contents.WebContents</a></dd>
488 <dd><a href="__builtin__.html#object">__builtin__.object</a></dd>
489 </dl>
490 <hr>
491 Methods defined here:<br>
492 <dl><dt><a name="Tab-Activate"><strong>Activate</strong></a>(self)</dt><dd><tt>Brings&nbsp;this&nbsp;tab&nbsp;to&nbsp;the&nbsp;foreground&nbsp;asynchronously.<br>
493 &nbsp;<br>
494 Not&nbsp;all&nbsp;browsers&nbsp;or&nbsp;browser&nbsp;versions&nbsp;support&nbsp;this&nbsp;method.<br>
495 Be&nbsp;sure&nbsp;to&nbsp;check&nbsp;browser.supports_tab_control.<br>
496 &nbsp;<br>
497 Please&nbsp;note:&nbsp;this&nbsp;is&nbsp;asynchronous.&nbsp;There&nbsp;is&nbsp;a&nbsp;delay&nbsp;between&nbsp;this&nbsp;call<br>
498 and&nbsp;the&nbsp;page's&nbsp;documentVisibilityState&nbsp;becoming&nbsp;'visible',&nbsp;and&nbsp;yet&nbsp;more<br>
499 delay&nbsp;until&nbsp;the&nbsp;actual&nbsp;tab&nbsp;is&nbsp;visible&nbsp;to&nbsp;the&nbsp;user.&nbsp;None&nbsp;of&nbsp;these&nbsp;delays<br>
500 are&nbsp;included&nbsp;in&nbsp;this&nbsp;call.</tt></dd></dl>
501
502 <dl><dt><a name="Tab-ClearCache"><strong>ClearCache</strong></a>(self, force)</dt><dd><tt>Clears&nbsp;the&nbsp;browser's&nbsp;networking&nbsp;related&nbsp;disk,&nbsp;memory&nbsp;and&nbsp;other&nbsp;caches.<br>
503 &nbsp;<br>
504 Args:<br>
505 &nbsp;&nbsp;force:&nbsp;Iff&nbsp;true,&nbsp;navigates&nbsp;to&nbsp;about:blank&nbsp;which&nbsp;destroys&nbsp;the&nbsp;previous<br>
506 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;renderer,&nbsp;ensuring&nbsp;that&nbsp;even&nbsp;"live"&nbsp;resources&nbsp;in&nbsp;the&nbsp;memory&nbsp;cache&nbsp;are<br>
507 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cleared.</tt></dd></dl>
508
509 <dl><dt><a name="Tab-ClearHighlight"><strong>ClearHighlight</strong></a>(self, color)</dt><dd><tt>Clears&nbsp;a&nbsp;highlight&nbsp;of&nbsp;the&nbsp;given&nbsp;bitmap.RgbaColor.</tt></dd></dl>
510
511 <dl><dt><a name="Tab-CollectGarbage"><strong>CollectGarbage</strong></a>(self)</dt></dl>
512
513 <dl><dt><a name="Tab-GetCookieByName"><strong>GetCookieByName</strong></a>(self, name, timeout<font color="#909090">=60</font>)</dt><dd><tt>Returns&nbsp;the&nbsp;value&nbsp;of&nbsp;the&nbsp;cookie&nbsp;by&nbsp;the&nbsp;given&nbsp;|name|.</tt></dd></dl>
514
515 <dl><dt><a name="Tab-Highlight"><strong>Highlight</strong></a>(self, color)</dt><dd><tt>Synchronously&nbsp;highlights&nbsp;entire&nbsp;tab&nbsp;contents&nbsp;with&nbsp;the&nbsp;given&nbsp;RgbaColor.<br>
516 &nbsp;<br>
517 TODO(tonyg):&nbsp;It&nbsp;is&nbsp;possible&nbsp;that&nbsp;the&nbsp;z-index&nbsp;hack&nbsp;here&nbsp;might&nbsp;not&nbsp;work&nbsp;for<br>
518 all&nbsp;pages.&nbsp;If&nbsp;this&nbsp;happens,&nbsp;DevTools&nbsp;also&nbsp;provides&nbsp;a&nbsp;method&nbsp;for&nbsp;this.</tt></dd></dl>
519
520 <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">=60</font>)</dt><dd><tt>Navigates&nbsp;to&nbsp;url.<br>
521 &nbsp;<br>
522 If&nbsp;|script_to_evaluate_on_commit|&nbsp;is&nbsp;given,&nbsp;the&nbsp;script&nbsp;source&nbsp;string&nbsp;will&nbsp;be<br>
523 evaluated&nbsp;when&nbsp;the&nbsp;navigation&nbsp;is&nbsp;committed.&nbsp;This&nbsp;is&nbsp;after&nbsp;the&nbsp;context&nbsp;of<br>
524 the&nbsp;page&nbsp;exists,&nbsp;but&nbsp;before&nbsp;any&nbsp;script&nbsp;on&nbsp;the&nbsp;page&nbsp;itself&nbsp;has&nbsp;executed.</tt></dd></dl>
525
526 <dl><dt><a name="Tab-PerformActionAndWaitForNavigate"><strong>PerformActionAndWaitForNavigate</strong></a>(self, action_function, timeout<font color="#909090">=60</font>)</dt><dd><tt>Executes&nbsp;action_function,&nbsp;and&nbsp;waits&nbsp;for&nbsp;the&nbsp;navigation&nbsp;to&nbsp;complete.<br>
527 &nbsp;<br>
528 action_function&nbsp;must&nbsp;be&nbsp;a&nbsp;Python&nbsp;function&nbsp;that&nbsp;results&nbsp;in&nbsp;a&nbsp;navigation.<br>
529 This&nbsp;function&nbsp;returns&nbsp;when&nbsp;the&nbsp;navigation&nbsp;is&nbsp;complete&nbsp;or&nbsp;when<br>
530 the&nbsp;timeout&nbsp;has&nbsp;been&nbsp;exceeded.</tt></dd></dl>
531
532 <dl><dt><a name="Tab-Screenshot"><strong>Screenshot</strong></a>(self, timeout<font color="#909090">=60</font>)</dt><dd><tt>Capture&nbsp;a&nbsp;screenshot&nbsp;of&nbsp;the&nbsp;tab's&nbsp;contents.<br>
533 &nbsp;<br>
534 Returns:<br>
535 &nbsp;&nbsp;A&nbsp;telemetry.core.Bitmap.</tt></dd></dl>
536
537 <dl><dt><a name="Tab-StartVideoCapture"><strong>StartVideoCapture</strong></a>(self, min_bitrate_mbps)</dt><dd><tt>Starts&nbsp;capturing&nbsp;video&nbsp;of&nbsp;the&nbsp;tab's&nbsp;contents.<br>
538 &nbsp;<br>
539 This&nbsp;works&nbsp;by&nbsp;flashing&nbsp;the&nbsp;entire&nbsp;tab&nbsp;contents&nbsp;to&nbsp;a&nbsp;arbitrary&nbsp;color&nbsp;and&nbsp;then<br>
540 starting&nbsp;video&nbsp;recording.&nbsp;When&nbsp;the&nbsp;frames&nbsp;are&nbsp;processed,&nbsp;we&nbsp;can&nbsp;look&nbsp;for<br>
541 that&nbsp;flash&nbsp;as&nbsp;the&nbsp;content&nbsp;bounds.<br>
542 &nbsp;<br>
543 Args:<br>
544 &nbsp;&nbsp;min_bitrate_mbps:&nbsp;The&nbsp;minimum&nbsp;caputre&nbsp;bitrate&nbsp;in&nbsp;MegaBits&nbsp;Per&nbsp;Second.<br>
545 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;platform&nbsp;is&nbsp;free&nbsp;to&nbsp;deliver&nbsp;a&nbsp;higher&nbsp;bitrate&nbsp;if&nbsp;it&nbsp;can&nbsp;do&nbsp;so<br>
546 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;without&nbsp;increasing&nbsp;overhead.</tt></dd></dl>
547
548 <dl><dt><a name="Tab-StopVideoCapture"><strong>StopVideoCapture</strong></a>(self)</dt><dd><tt>Stops&nbsp;recording&nbsp;video&nbsp;of&nbsp;the&nbsp;tab's&nbsp;contents.<br>
549 &nbsp;<br>
550 This&nbsp;looks&nbsp;for&nbsp;the&nbsp;initial&nbsp;color&nbsp;flash&nbsp;in&nbsp;the&nbsp;first&nbsp;frame&nbsp;to&nbsp;establish&nbsp;the<br>
551 tab&nbsp;content&nbsp;boundaries&nbsp;and&nbsp;then&nbsp;omits&nbsp;all&nbsp;frames&nbsp;displaying&nbsp;the&nbsp;flash.<br>
552 &nbsp;<br>
553 Yields:<br>
554 &nbsp;&nbsp;(time_ms,&nbsp;bitmap)&nbsp;tuples&nbsp;representing&nbsp;each&nbsp;video&nbsp;keyframe.&nbsp;Only&nbsp;the&nbsp;first<br>
555 &nbsp;&nbsp;frame&nbsp;in&nbsp;a&nbsp;run&nbsp;of&nbsp;sequential&nbsp;duplicate&nbsp;bitmaps&nbsp;is&nbsp;typically&nbsp;included.<br>
556 &nbsp;&nbsp;&nbsp;&nbsp;time_ms&nbsp;is&nbsp;milliseconds&nbsp;since&nbsp;navigationStart.<br>
557 &nbsp;&nbsp;&nbsp;&nbsp;bitmap&nbsp;is&nbsp;a&nbsp;telemetry.core.Bitmap.</tt></dd></dl>
558
559 <dl><dt><a name="Tab-__init__"><strong>__init__</strong></a>(self, inspector_backend)</dt></dl>
560
561 <hr>
562 Data descriptors defined here:<br>
563 <dl><dt><strong>browser</strong></dt>
564 <dd><tt>The&nbsp;browser&nbsp;in&nbsp;which&nbsp;this&nbsp;tab&nbsp;resides.</tt></dd>
565 </dl>
566 <dl><dt><strong>dom_stats</strong></dt>
567 <dd><tt>A&nbsp;dictionary&nbsp;populated&nbsp;with&nbsp;measured&nbsp;DOM&nbsp;statistics.<br>
568 &nbsp;<br>
569 Currently&nbsp;this&nbsp;dictionary&nbsp;contains:<br>
570 {<br>
571 &nbsp;&nbsp;'document_count':&nbsp;integer,<br>
572 &nbsp;&nbsp;'node_count':&nbsp;integer,<br>
573 &nbsp;&nbsp;'event_listener_count':&nbsp;integer<br>
574 }</tt></dd>
575 </dl>
576 <dl><dt><strong>is_video_capture_running</strong></dt>
577 </dl>
578 <dl><dt><strong>screenshot_supported</strong></dt>
579 <dd><tt>True&nbsp;if&nbsp;the&nbsp;browser&nbsp;instance&nbsp;is&nbsp;capable&nbsp;of&nbsp;capturing&nbsp;screenshots.</tt></dd>
580 </dl>
581 <dl><dt><strong>url</strong></dt>
582 </dl>
583 <dl><dt><strong>video_capture_supported</strong></dt>
584 <dd><tt>True&nbsp;if&nbsp;the&nbsp;browser&nbsp;instance&nbsp;is&nbsp;capable&nbsp;of&nbsp;capturing&nbsp;video.</tt></dd>
585 </dl>
586 <hr>
587 Methods inherited from <a href="telemetry.core.web_contents.html#WebContents">telemetry.core.web_contents.WebContents</a>:<br>
588 <dl><dt><a name="Tab-Close"><strong>Close</strong></a>(self)</dt><dd><tt>Closes&nbsp;this&nbsp;page.<br>
589 &nbsp;<br>
590 Not&nbsp;all&nbsp;browsers&nbsp;or&nbsp;browser&nbsp;versions&nbsp;support&nbsp;this&nbsp;method.<br>
591 Be&nbsp;sure&nbsp;to&nbsp;check&nbsp;browser.supports_tab_control.</tt></dd></dl>
592
593 <dl><dt><a name="Tab-EvaluateJavaScript"><strong>EvaluateJavaScript</strong></a>(self, expr, timeout<font color="#909090">=90</font>)</dt><dd><tt>Evalutes&nbsp;expr&nbsp;in&nbsp;JavaScript&nbsp;and&nbsp;returns&nbsp;the&nbsp;JSONized&nbsp;result.<br>
594 &nbsp;<br>
595 Consider&nbsp;using&nbsp;ExecuteJavaScript&nbsp;for&nbsp;cases&nbsp;where&nbsp;the&nbsp;result&nbsp;of&nbsp;the<br>
596 expression&nbsp;is&nbsp;not&nbsp;needed.<br>
597 &nbsp;<br>
598 If&nbsp;evaluation&nbsp;throws&nbsp;in&nbsp;JavaScript,&nbsp;a&nbsp;Python&nbsp;EvaluateException&nbsp;will<br>
599 be&nbsp;raised.<br>
600 &nbsp;<br>
601 If&nbsp;the&nbsp;result&nbsp;of&nbsp;the&nbsp;evaluation&nbsp;cannot&nbsp;be&nbsp;JSONized,&nbsp;then&nbsp;an<br>
602 EvaluationException&nbsp;will&nbsp;be&nbsp;raised.</tt></dd></dl>
603
604 <dl><dt><a name="Tab-EvaluateJavaScriptInContext"><strong>EvaluateJavaScriptInContext</strong></a>(self, expr, context_id, timeout<font color="#909090">=90</font>)</dt><dd><tt>Similar&nbsp;to&nbsp;ExecuteJavaScript,&nbsp;except&nbsp;context_id&nbsp;can&nbsp;refer&nbsp;to&nbsp;an&nbsp;iframe.<br>
605 The&nbsp;main&nbsp;page&nbsp;has&nbsp;context_id=1,&nbsp;the&nbsp;first&nbsp;iframe&nbsp;context_id=2,&nbsp;etc.</tt></dd></dl>
606
607 <dl><dt><a name="Tab-ExecuteJavaScript"><strong>ExecuteJavaScript</strong></a>(self, expr, timeout<font color="#909090">=90</font>)</dt><dd><tt>Executes&nbsp;expr&nbsp;in&nbsp;JavaScript.&nbsp;Does&nbsp;not&nbsp;return&nbsp;the&nbsp;result.<br>
608 &nbsp;<br>
609 If&nbsp;the&nbsp;expression&nbsp;failed&nbsp;to&nbsp;evaluate,&nbsp;EvaluateException&nbsp;will&nbsp;be&nbsp;raised.</tt></dd></dl>
610
611 <dl><dt><a name="Tab-ExecuteJavaScriptInContext"><strong>ExecuteJavaScriptInContext</strong></a>(self, expr, context_id, timeout<font color="#909090">=90</font>)</dt><dd><tt>Similar&nbsp;to&nbsp;ExecuteJavaScript,&nbsp;except&nbsp;context_id&nbsp;can&nbsp;refer&nbsp;to&nbsp;an&nbsp;iframe.<br>
612 The&nbsp;main&nbsp;page&nbsp;has&nbsp;context_id=1,&nbsp;the&nbsp;first&nbsp;iframe&nbsp;context_id=2,&nbsp;etc.</tt></dd></dl>
613
614 <dl><dt><a name="Tab-HasReachedQuiescence"><strong>HasReachedQuiescence</strong></a>(self)</dt><dd><tt>Determine&nbsp;whether&nbsp;the&nbsp;page&nbsp;has&nbsp;reached&nbsp;quiescence&nbsp;after&nbsp;loading.<br>
615 &nbsp;<br>
616 Returns:<br>
617 &nbsp;&nbsp;True&nbsp;if&nbsp;2&nbsp;seconds&nbsp;have&nbsp;passed&nbsp;since&nbsp;last&nbsp;resource&nbsp;received,&nbsp;false<br>
618 &nbsp;&nbsp;otherwise.</tt></dd></dl>
619
620 <dl><dt><a name="Tab-StartTimelineRecording"><strong>StartTimelineRecording</strong></a>(self, options<font color="#909090">=None</font>)</dt></dl>
621
622 <dl><dt><a name="Tab-StopTimelineRecording"><strong>StopTimelineRecording</strong></a>(self)</dt></dl>
623
624 <dl><dt><a name="Tab-TakeJSHeapSnapshot"><strong>TakeJSHeapSnapshot</strong></a>(self, timeout<font color="#909090">=120</font>)</dt></dl>
625
626 <dl><dt><a name="Tab-WaitForDocumentReadyStateToBeComplete"><strong>WaitForDocumentReadyStateToBeComplete</strong></a>(self, timeout<font color="#909090">=90</font>)</dt></dl>
627
628 <dl><dt><a name="Tab-WaitForDocumentReadyStateToBeInteractiveOrBetter"><strong>WaitForDocumentReadyStateToBeInteractiveOrBetter</strong></a>(self, timeout<font color="#909090">=90</font>)</dt></dl>
629
630 <dl><dt><a name="Tab-WaitForJavaScriptExpression"><strong>WaitForJavaScriptExpression</strong></a>(self, expr, timeout)</dt><dd><tt>Waits&nbsp;for&nbsp;the&nbsp;given&nbsp;JavaScript&nbsp;expression&nbsp;to&nbsp;be&nbsp;True.<br>
631 &nbsp;<br>
632 This&nbsp;method&nbsp;is&nbsp;robust&nbsp;against&nbsp;any&nbsp;given&nbsp;Evaluation&nbsp;timing&nbsp;out.</tt></dd></dl>
633
634 <hr>
635 Data descriptors inherited from <a href="telemetry.core.web_contents.html#WebContents">telemetry.core.web_contents.WebContents</a>:<br>
636 <dl><dt><strong>__dict__</strong></dt>
637 <dd><tt>dictionary&nbsp;for&nbsp;instance&nbsp;variables&nbsp;(if&nbsp;defined)</tt></dd>
638 </dl>
639 <dl><dt><strong>__weakref__</strong></dt>
640 <dd><tt>list&nbsp;of&nbsp;weak&nbsp;references&nbsp;to&nbsp;the&nbsp;object&nbsp;(if&nbsp;defined)</tt></dd>
641 </dl>
642 <dl><dt><strong>is_timeline_recording_running</strong></dt>
643 </dl>
644 <dl><dt><strong>message_output_stream</strong></dt>
645 </dl>
646 <dl><dt><strong>timeline_model</strong></dt>
647 </dl>
648 </td></tr></table></td></tr></table><p>
649 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
650 <tr bgcolor="#eeaa77">
651 <td colspan=3 valign=bottom>&nbsp;<br>
652 <font color="#ffffff" face="helvetica, arial"><big><strong>Functions</strong></big></font></td></tr>
653     
654 <tr><td bgcolor="#eeaa77"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
655 <td width="100%"><dl><dt><a name="-RunPage"><strong>RunPage</strong></a> = Run(test, page_set, expectations, finder_options)</dt><dd><tt>Runs&nbsp;a&nbsp;given&nbsp;test&nbsp;against&nbsp;a&nbsp;given&nbsp;page_set&nbsp;with&nbsp;the&nbsp;given&nbsp;options.</tt></dd></dl>
656 </td></tr></table><p>
657 <table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section">
658 <tr bgcolor="#55aa55">
659 <td colspan=3 valign=bottom>&nbsp;<br>
660 <font color="#ffffff" face="helvetica, arial"><big><strong>Data</strong></big></font></td></tr>
661     
662 <tr><td bgcolor="#55aa55"><tt>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</tt></td><td>&nbsp;</td>
663 <td width="100%"><strong>__all__</strong> = ['Browser', 'BrowserFinderOptions', 'PageMeasurement', 'RunPage', 'Tab']</td></tr></table>
664 </body></html>