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 3# found in the LICENSE file. 4 5from metrics import Metric 6 7class LoadingMetric(Metric): 8 """A metric for page loading time based entirely on window.performance""" 9 10 def Start(self, page, tab): 11 raise NotImplementedError() 12 13 def Stop(self, page, tab): 14 raise NotImplementedError() 15 16 def AddResults(self, tab, results): 17 load_timings = tab.EvaluateJavaScript('window.performance.timing') 18 load_time_ms = ( 19 float(load_timings['loadEventStart']) - 20 load_timings['navigationStart']) 21 dom_content_loaded_time_ms = ( 22 float(load_timings['domContentLoadedEventStart']) - 23 load_timings['navigationStart']) 24 results.Add('load_time', 'ms', load_time_ms) 25 results.Add('dom_content_loaded_time', 'ms', 26 dom_content_loaded_time_ms) 27