OLD | NEW |
---|---|
1 #! /usr/bin/python | 1 #! /usr/bin/python |
2 # Copyright 2016 The Chromium Authors. All rights reserved. | 2 # Copyright 2016 The Chromium Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 | 5 |
6 """Loading trace recorder.""" | 6 """Loading trace recorder.""" |
7 | 7 |
8 import argparse | 8 import argparse |
9 import datetime | 9 import datetime |
10 import json | 10 import json |
(...skipping 12 matching lines...) Expand all Loading... | |
23 import devil_chromium | 23 import devil_chromium |
24 | 24 |
25 import device_setup | 25 import device_setup |
26 import devtools_monitor | 26 import devtools_monitor |
27 import loading_trace | 27 import loading_trace |
28 import page_track | 28 import page_track |
29 import request_track | 29 import request_track |
30 import tracing | 30 import tracing |
31 | 31 |
32 | 32 |
33 def MonitorUrl(connection, url, clear_cache=False): | 33 def MonitorUrl(connection, url, clear_cache=False, |
34 categories=tracing.DEFAULT_CATEGORIES): | |
34 """Monitor a URL via a trace recorder. | 35 """Monitor a URL via a trace recorder. |
35 | 36 |
36 Args: | 37 Args: |
37 connection: A device_monitor.DevToolsConnection instance. | 38 connection: A device_monitor.DevToolsConnection instance. |
38 url: url to navigate to as string. | 39 url: url to navigate to as string. |
39 clear_cache: boolean indicating if cache should be cleared before loading. | 40 clear_cache: boolean indicating if cache should be cleared before loading. |
Benoit L
2016/02/22 10:26:13
nit: missing `categories` arg.
gabadie
2016/02/22 11:05:06
Done.
| |
40 | 41 |
41 Returns: | 42 Returns: |
42 loading_trace.LoadingTrace. | 43 loading_trace.LoadingTrace. |
43 """ | 44 """ |
44 page = page_track.PageTrack(connection) | 45 page = page_track.PageTrack(connection) |
45 request = request_track.RequestTrack(connection) | 46 request = request_track.RequestTrack(connection) |
46 trace = tracing.TracingTrack(connection) | 47 trace = tracing.TracingTrack(connection, categories=categories) |
47 connection.SetUpMonitoring() | 48 connection.SetUpMonitoring() |
48 if clear_cache: | 49 if clear_cache: |
49 connection.ClearCache() | 50 connection.ClearCache() |
50 connection.SendAndIgnoreResponse('Page.navigate', {'url': url}) | 51 connection.SendAndIgnoreResponse('Page.navigate', {'url': url}) |
51 connection.StartMonitoring() | 52 connection.StartMonitoring() |
52 metadata = {'date': datetime.datetime.utcnow().isoformat(), | 53 metadata = {'date': datetime.datetime.utcnow().isoformat(), |
53 'seconds_since_epoch': time.time()} | 54 'seconds_since_epoch': time.time()} |
54 return loading_trace.LoadingTrace(url, metadata, page, request, trace) | 55 return loading_trace.LoadingTrace(url, metadata, page, request, trace) |
55 | 56 |
56 def RecordAndDumpTrace(device, url, output_filename): | 57 def RecordAndDumpTrace(device, url, output_filename): |
(...skipping 13 matching lines...) Expand all Loading... | |
70 args = parser.parse_args() | 71 args = parser.parse_args() |
71 url = args.url | 72 url = args.url |
72 if not url.startswith('http'): | 73 if not url.startswith('http'): |
73 url = 'http://' + url | 74 url = 'http://' + url |
74 device = device_utils.DeviceUtils.HealthyDevices()[0] | 75 device = device_utils.DeviceUtils.HealthyDevices()[0] |
75 RecordAndDumpTrace(device, url, args.output) | 76 RecordAndDumpTrace(device, url, args.output) |
76 | 77 |
77 | 78 |
78 if __name__ == '__main__': | 79 if __name__ == '__main__': |
79 main() | 80 main() |
OLD | NEW |