OLD | NEW |
1 # Copyright 2016 The Chromium Authors. All rights reserved. | 1 # Copyright 2016 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 """Generates a loading report. | 5 """Generates a loading report. |
6 | 6 |
7 When executed as a script, takes a trace filename and print the report. | 7 When executed as a script, takes a trace filename and print the report. |
8 """ | 8 """ |
9 | 9 |
10 from activity_lens import ActivityLens | 10 from activity_lens import ActivityLens |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
100 self._load_end_msec = self._ComputePlt(trace) | 100 self._load_end_msec = self._ComputePlt(trace) |
101 | 101 |
102 dependencies_lens = request_dependencies_lens.RequestDependencyLens( | 102 dependencies_lens = request_dependencies_lens.RequestDependencyLens( |
103 self.trace) | 103 self.trace) |
104 requests = self.trace.request_track.GetEvents() | 104 requests = self.trace.request_track.GetEvents() |
105 preloaded_requests = \ | 105 preloaded_requests = \ |
106 prefetch_view.PrefetchSimulationView.PreloadedRequests( | 106 prefetch_view.PrefetchSimulationView.PreloadedRequests( |
107 requests[0], dependencies_lens, self.trace) | 107 requests[0], dependencies_lens, self.trace) |
108 self._requests = len(requests) | 108 self._requests = len(requests) |
109 self._preloaded_requests = len(preloaded_requests) | 109 self._preloaded_requests = len(preloaded_requests) |
| 110 self._dns_requests, self._dns_cost_msec = metrics.DnsRequestsAndCost(trace) |
110 | 111 |
111 self._user_lens_reports = {} | 112 self._user_lens_reports = {} |
112 first_text_paint_lens = FirstTextPaintLens(self.trace) | 113 first_text_paint_lens = FirstTextPaintLens(self.trace) |
113 first_contentful_paint_lens = FirstContentfulPaintLens(self.trace) | 114 first_contentful_paint_lens = FirstContentfulPaintLens(self.trace) |
114 first_significant_paint_lens = FirstSignificantPaintLens(self.trace) | 115 first_significant_paint_lens = FirstSignificantPaintLens(self.trace) |
115 activity = ActivityLens(trace) | 116 activity = ActivityLens(trace) |
116 network_lens = NetworkActivityLens(self.trace) | 117 network_lens = NetworkActivityLens(self.trace) |
117 for key, user_lens in [['first_text', first_text_paint_lens], | 118 for key, user_lens in [['first_text', first_text_paint_lens], |
118 ['contentful', first_contentful_paint_lens], | 119 ['contentful', first_contentful_paint_lens], |
119 ['significant', first_significant_paint_lens]]: | 120 ['significant', first_significant_paint_lens]]: |
(...skipping 17 matching lines...) Expand all Loading... |
137 self._navigation_start_msec, self._load_end_msec, content_lens, | 138 self._navigation_start_msec, self._load_end_msec, content_lens, |
138 activity, has_tracking_rules or has_ad_rules) | 139 activity, has_tracking_rules or has_ad_rules) |
139 | 140 |
140 def GenerateReport(self): | 141 def GenerateReport(self): |
141 """Returns a report as a dict.""" | 142 """Returns a report as a dict.""" |
142 report = { | 143 report = { |
143 'url': self.trace.url, | 144 'url': self.trace.url, |
144 'plt_ms': self._load_end_msec - self._navigation_start_msec, | 145 'plt_ms': self._load_end_msec - self._navigation_start_msec, |
145 'requests': self._requests, | 146 'requests': self._requests, |
146 'preloaded_requests': self._preloaded_requests, | 147 'preloaded_requests': self._preloaded_requests, |
147 'transfer_size': self._transfer_size} | 148 'transfer_size': self._transfer_size, |
| 149 'dns_requests': self._dns_requests, |
| 150 'dns_cost_ms': self._dns_cost_msec} |
148 | 151 |
149 for user_lens_type, user_lens_report in self._user_lens_reports.iteritems(): | 152 for user_lens_type, user_lens_report in self._user_lens_reports.iteritems(): |
150 for key, value in user_lens_report.GenerateReport().iteritems(): | 153 for key, value in user_lens_report.GenerateReport().iteritems(): |
151 report[user_lens_type + '_' + key] = value | 154 report[user_lens_type + '_' + key] = value |
152 | 155 |
153 report.update(self._cpu_busyness) | 156 report.update(self._cpu_busyness) |
154 report.update(self._ad_report) | 157 report.update(self._ad_report) |
155 report.update(self._ads_cost) | 158 report.update(self._ads_cost) |
156 return report | 159 return report |
157 | 160 |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
251 report = LoadingReport.FromTraceFilename( | 254 report = LoadingReport.FromTraceFilename( |
252 trace_filename, ad_rules, tracking_rules) | 255 trace_filename, ad_rules, tracking_rules) |
253 print json.dumps(report.GenerateReport(), indent=2, sort_keys=True) | 256 print json.dumps(report.GenerateReport(), indent=2, sort_keys=True) |
254 | 257 |
255 | 258 |
256 if __name__ == '__main__': | 259 if __name__ == '__main__': |
257 import sys | 260 import sys |
258 import json | 261 import json |
259 | 262 |
260 _Main(sys.argv) | 263 _Main(sys.argv) |
OLD | NEW |