OLD | NEW |
---|---|
1 # Copyright 2013 The Chromium Authors. All rights reserved. | 1 # Copyright 2013 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 from metrics import Metric | 5 from metrics import Metric |
6 | 6 |
7 class LoadingMetric(Metric): | 7 class LoadingMetric(Metric): |
8 """A metric for page loading time based entirely on window.performance""" | 8 """A metric for page loading time based entirely on window.performance""" |
9 | 9 |
10 def Start(self, page, tab): | 10 def Start(self, page, tab): |
11 raise NotImplementedError() | 11 raise NotImplementedError() |
12 | 12 |
13 def Stop(self, page, tab): | 13 def Stop(self, page, tab): |
14 raise NotImplementedError() | 14 raise NotImplementedError() |
15 | 15 |
16 def AddResults(self, tab, results): | 16 def AddResults(self, tab, results): |
17 load_timings = tab.EvaluateJavaScript('window.performance.timing') | 17 load_timings = tab.EvaluateJavaScript('window.performance.timing') |
18 load_time_ms = ( | 18 |
19 float(load_timings['loadEventStart']) - | 19 # All numbers in milliseconds. |
tonyg
2014/03/25 16:12:25
Let's factor just this file out into a separate pa
bolian
2014/03/25 18:19:01
Done. Np at all, that is good.
Split out: https://
| |
20 load_timings['navigationStart']) | 20 page_load = ( |
21 dom_content_loaded_time_ms = ( | 21 float(load_timings['loadEventStart']) - load_timings['navigationStart']) |
22 results.Add('page_load', 'ms', page_load) | |
tonyg
2014/03/25 16:12:25
Naming convention suggestion:
# NavigationStart r
bolian
2014/03/25 18:19:01
Doen. much better.
| |
23 | |
24 dom_content_loaded = ( | |
22 float(load_timings['domContentLoadedEventStart']) - | 25 float(load_timings['domContentLoadedEventStart']) - |
23 load_timings['navigationStart']) | 26 load_timings['navigationStart']) |
24 results.Add('load_time', 'ms', load_time_ms) | 27 results.Add('dom_content_loaded', 'ms', dom_content_loaded) |
25 results.Add('dom_content_loaded_time', 'ms', | 28 |
26 dom_content_loaded_time_ms) | 29 delay_before_fetch = ( |
30 float(load_timings['fetchStart']) - load_timings['navigationStart']) | |
31 results.Add('delay_before_fetch', 'ms', delay_before_fetch, | |
32 data_type='unimportant') | |
33 | |
34 delay_before_request = ( | |
35 float(load_timings['requestStart']) - load_timings['navigationStart']) | |
36 results.Add('delay_before_request', 'ms', delay_before_request, | |
37 data_type='unimportant') | |
38 | |
39 domain_lookup = ( | |
40 float(load_timings['domainLookupEnd']) - | |
41 load_timings['domainLookupStart']) | |
42 results.Add('domain_lookup', 'ms', domain_lookup, data_type='unimportant') | |
43 | |
44 connect = ( | |
45 float(load_timings['connectEnd']) - load_timings['connectStart']) | |
46 results.Add('connect', 'ms', connect, data_type='unimportant') | |
47 | |
48 request = ( | |
49 float(load_timings['responseStart']) - load_timings['requestStart']) | |
50 results.Add('request', 'ms', request, data_type='unimportant') | |
51 | |
52 response = ( | |
53 float(load_timings['responseEnd']) - load_timings['responseStart']) | |
54 results.Add('response', 'ms', response, data_type='unimportant') | |
OLD | NEW |