OLD | NEW |
---|---|
1 # Copyright 2015 The Chromium Authors. All rights reserved. | 1 # Copyright 2015 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 import optparse | 5 import optparse |
6 import os | 6 import os |
7 import py_utils | 7 import py_utils |
8 import re | 8 import re |
9 | 9 |
10 from devil.android import flag_changer | 10 from devil.android import flag_changer |
11 from devil.android.perf import cache_control | 11 from devil.android.perf import cache_control |
12 from devil.android.sdk import intent | 12 from devil.android.sdk import intent |
13 | |
14 from systrace import trace_result | 13 from systrace import trace_result |
15 from systrace import tracing_agents | 14 from systrace import tracing_agents |
15 from telemetry.timeline import trace_data as trace_data_module | |
rnephew (Reviews Here)
2017/02/24 17:21:26
I eventually would like to move this out of teleme
| |
16 | 16 |
17 | 17 |
18 class ChromeStartupTracingAgent(tracing_agents.TracingAgent): | 18 class ChromeStartupTracingAgent(tracing_agents.TracingAgent): |
19 def __init__(self, device, package_info, cold, url): | 19 def __init__(self, device, package_info, cold, url): |
20 tracing_agents.TracingAgent.__init__(self) | 20 tracing_agents.TracingAgent.__init__(self) |
21 self._device = device | 21 self._device = device |
22 self._package_info = package_info | 22 self._package_info = package_info |
23 self._cold = cold | 23 self._cold = cold |
24 self._logcat_monitor = self._device.GetLogcatMonitor() | 24 self._logcat_monitor = self._device.GetLogcatMonitor() |
25 self._url = url | 25 self._url = url |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
70 finally: | 70 finally: |
71 self._TearDownTracing() | 71 self._TearDownTracing() |
72 return True | 72 return True |
73 | 73 |
74 @py_utils.Timeout(tracing_agents.GET_RESULTS_TIMEOUT) | 74 @py_utils.Timeout(tracing_agents.GET_RESULTS_TIMEOUT) |
75 def GetResults(self, timeout=None): | 75 def GetResults(self, timeout=None): |
76 with open(self._PullTrace(), 'r') as f: | 76 with open(self._PullTrace(), 'r') as f: |
77 trace_data = f.read() | 77 trace_data = f.read() |
78 return trace_result.TraceResult('traceEvents', trace_data) | 78 return trace_result.TraceResult('traceEvents', trace_data) |
79 | 79 |
80 def CollectAgentTraceData(self, trace_data_builder): | |
rnephew (Reviews Here)
2017/02/24 17:21:26
Made changes to make it operate more like the trac
| |
81 with open(self._PullTrace(), 'r') as f: | |
82 data = f.read() | |
83 trace_data_builder.AddTraceFor(trace_data_module.CHROME_TRACE_PART, data) | |
84 | |
80 def _PullTrace(self): | 85 def _PullTrace(self): |
81 trace_file = self._trace_file.replace('/storage/emulated/0/', '/sdcard/') | 86 trace_file = self._trace_file.replace('/storage/emulated/0/', '/sdcard/') |
82 host_file = os.path.join(os.path.curdir, os.path.basename(trace_file)) | 87 host_file = os.path.join(os.path.curdir, os.path.basename(trace_file)) |
83 self._device.PullFile(trace_file, host_file) | 88 self._device.PullFile(trace_file, host_file) |
84 return host_file | 89 return host_file |
85 | 90 |
86 def SupportsExplicitClockSync(self): | 91 def SupportsExplicitClockSync(self): |
87 return False | 92 return False |
88 | 93 |
89 def RecordClockSyncMarker(self, sync_id, did_record_sync_marker_callback): | 94 def RecordClockSyncMarker(self, sync_id, did_record_sync_marker_callback): |
(...skipping 24 matching lines...) Expand all Loading... | |
114 default='https://www.google.com', metavar='URL') | 119 default='https://www.google.com', metavar='URL') |
115 options.add_option('--cold', help='Flush the OS page cache before starting ' | 120 options.add_option('--cold', help='Flush the OS page cache before starting ' |
116 'the browser. Note that this require a device with root ' | 121 'the browser. Note that this require a device with root ' |
117 'access.', default=False, action='store_true') | 122 'access.', default=False, action='store_true') |
118 return options | 123 return options |
119 | 124 |
120 def get_config(options): | 125 def get_config(options): |
121 return ChromeStartupConfig(options.device, options.package_info, | 126 return ChromeStartupConfig(options.device, options.package_info, |
122 options.cold, options.url, | 127 options.cold, options.url, |
123 options.chrome_categories) | 128 options.chrome_categories) |
OLD | NEW |