Index: tools/android/loading/trace_recorder.py |
diff --git a/tools/android/loading/trace_recorder.py b/tools/android/loading/trace_recorder.py |
index fdf6cc6c93ac39bcb3dbfc9e651da7c5d97c1835..61015d234bb5db1381b079ce20f3843b4377c086 100755 |
--- a/tools/android/loading/trace_recorder.py |
+++ b/tools/android/loading/trace_recorder.py |
@@ -30,20 +30,34 @@ import request_track |
import tracing |
+def MonitorUrl(connection, url, clear_cache=False): |
+ """Monitor a URL via a trace recorder. |
+ |
+ Args: |
+ connection: A device_monitor.DevToolsConnection instance. |
+ url: url to navigate to as string. |
+ clear_cache: boolean indicating if cache should be cleared before loading. |
+ |
+ Returns: |
+ loading_trace.LoadingTrace. |
+ """ |
+ logging.warning('Logging %scached %s' % ('un' if clear_cache else '', url)) |
+ page = page_track.PageTrack(connection) |
+ request = request_track.RequestTrack(connection) |
+ trace = tracing.TracingTrack(connection) |
+ connection.SetUpMonitoring() |
+ if clear_cache: |
+ connection.ClearCache() |
+ connection.SendAndIgnoreResponse('Page.navigate', {'url': url}) |
+ connection.StartMonitoring() |
+ metadata = {'date': datetime.datetime.utcnow().isoformat(), |
+ 'seconds_since_epoch': time.time()} |
+ return loading_trace.LoadingTrace(url, metadata, page, request, trace) |
+ |
def RecordAndDumpTrace(device, url, output_filename): |
with file(output_filename, 'w') as output,\ |
device_setup.DeviceConnection(device) as connection: |
- page = page_track.PageTrack(connection) |
- request = request_track.RequestTrack(connection) |
- tracing_track = tracing.TracingTrack(connection) |
- connection.SetUpMonitoring() |
- connection.SendAndIgnoreResponse('Network.clearBrowserCache', {}) |
- connection.SendAndIgnoreResponse('Page.navigate', {'url': url}) |
- connection.StartMonitoring() |
- metadata = {'date': datetime.datetime.utcnow().isoformat(), |
- 'seconds_since_epoch': time.time()} |
- trace = loading_trace.LoadingTrace(url, metadata, page, request, |
- tracing_track) |
+ trace = MonitorUrl(connection, url) |
json.dump(trace.ToJsonDict(), output) |