| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright 2012 The Chromium Authors. All rights reserved. | 2 # Copyright 2012 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 import logging | 5 import logging |
| 6 import sys | 6 import sys |
| 7 import time | 7 import time |
| 8 | 8 |
| 9 from telemetry import benchmark | 9 from telemetry import benchmark |
| 10 from telemetry.core import browser_options | 10 from telemetry.core import browser_options |
| 11 from telemetry.core import discover | 11 from telemetry.core import discover |
| 12 from telemetry.core import wpr_modes | 12 from telemetry.core import wpr_modes |
| 13 from telemetry.page import page_measurement | |
| 14 from telemetry.page import page_runner | 13 from telemetry.page import page_runner |
| 15 from telemetry.page import page_set | 14 from telemetry.page import page_set |
| 16 from telemetry.page import page_test | 15 from telemetry.page import page_test |
| 17 from telemetry.page import profile_creator | 16 from telemetry.page import profile_creator |
| 18 from telemetry.page import test_expectations | 17 from telemetry.page import test_expectations |
| 19 from telemetry.results import results_options | 18 from telemetry.results import results_options |
| 20 | 19 |
| 21 | 20 |
| 22 class RecorderPageTest(page_test.PageTest): # pylint: disable=W0223 | 21 class RecorderPageTest(page_test.PageTest): # pylint: disable=W0223 |
| 23 def __init__(self, action_names): | 22 def __init__(self, action_names): |
| (...skipping 16 matching lines...) Expand all Loading... |
| 40 self.page_test.DidNavigateToPage(page, tab) | 39 self.page_test.DidNavigateToPage(page, tab) |
| 41 | 40 |
| 42 def WillRunActions(self, page, tab): | 41 def WillRunActions(self, page, tab): |
| 43 if self.page_test: | 42 if self.page_test: |
| 44 self.page_test.WillRunActions(page, tab) | 43 self.page_test.WillRunActions(page, tab) |
| 45 | 44 |
| 46 def DidRunActions(self, page, tab): | 45 def DidRunActions(self, page, tab): |
| 47 if self.page_test: | 46 if self.page_test: |
| 48 self.page_test.DidRunActions(page, tab) | 47 self.page_test.DidRunActions(page, tab) |
| 49 | 48 |
| 50 def ValidatePage(self, page, tab, results): | 49 def ValidateAndMeasurePage(self, page, tab, results): |
| 51 if self.page_test: | 50 if self.page_test: |
| 52 self.page_test.ValidatePage(page, tab, results) | 51 self.page_test.ValidateAndMeasurePage(page, tab, results) |
| 53 | 52 |
| 54 def RunPage(self, page, tab, results): | 53 def RunPage(self, page, tab, results): |
| 55 tab.WaitForDocumentReadyStateToBeComplete() | 54 tab.WaitForDocumentReadyStateToBeComplete() |
| 56 | 55 |
| 57 # When recording, sleep to catch any resources that load post-onload. | 56 # When recording, sleep to catch any resources that load post-onload. |
| 58 # TODO(tonyg): This should probably monitor resource timing for activity | 57 # TODO(tonyg): This should probably monitor resource timing for activity |
| 59 # and sleep until 2s since the last network event with some timeout like | 58 # and sleep until 2s since the last network event with some timeout like |
| 60 # 20s. We could wrap this up as WaitForNetworkIdle() and share with the | 59 # 20s. We could wrap this up as WaitForNetworkIdle() and share with the |
| 61 # speed index metric. | 60 # speed index metric. |
| 62 time.sleep(3) | 61 time.sleep(3) |
| (...skipping 19 matching lines...) Expand all Loading... |
| 82 def RunNavigateSteps(self, page, tab): | 81 def RunNavigateSteps(self, page, tab): |
| 83 if self.page_test: | 82 if self.page_test: |
| 84 self.page_test.RunNavigateSteps(page, tab) | 83 self.page_test.RunNavigateSteps(page, tab) |
| 85 else: | 84 else: |
| 86 super(RecorderPageTest, self).RunNavigateSteps(page, tab) | 85 super(RecorderPageTest, self).RunNavigateSteps(page, tab) |
| 87 | 86 |
| 88 | 87 |
| 89 def FindAllActionNames(base_dir): | 88 def FindAllActionNames(base_dir): |
| 90 """Returns a set of of all action names used in our measurements.""" | 89 """Returns a set of of all action names used in our measurements.""" |
| 91 action_names = set() | 90 action_names = set() |
| 92 # Get all PageMeasurements except for ProfileCreators (see crbug.com/319573) | 91 # Get all PageTests except for ProfileCreators (see crbug.com/319573) |
| 93 for _, cls in discover.DiscoverClasses( | 92 for _, cls in discover.DiscoverClasses( |
| 94 base_dir, base_dir, page_measurement.PageMeasurement).items(): | 93 base_dir, base_dir, page_test.PageTest).items(): |
| 95 if not issubclass(cls, profile_creator.ProfileCreator): | 94 if not issubclass(cls, profile_creator.ProfileCreator): |
| 96 action_name = cls().action_name_to_run | 95 action_name = cls().action_name_to_run |
| 97 if action_name: | 96 if action_name: |
| 98 action_names.add(action_name) | 97 action_names.add(action_name) |
| 99 return action_names | 98 return action_names |
| 100 | 99 |
| 101 | 100 |
| 102 def _MaybeGetInstanceOfClass(target, base_dir, cls): | 101 def _MaybeGetInstanceOfClass(target, base_dir, cls): |
| 103 if isinstance(target, cls): | 102 if isinstance(target, cls): |
| 104 return target | 103 return target |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 184 quick_args = [a for a in sys.argv[1:] if not a.startswith('-')] | 183 quick_args = [a for a in sys.argv[1:] if not a.startswith('-')] |
| 185 if len(quick_args) != 1: | 184 if len(quick_args) != 1: |
| 186 print >> sys.stderr, 'Usage: record_wpr <PageSet|Benchmark>\n' | 185 print >> sys.stderr, 'Usage: record_wpr <PageSet|Benchmark>\n' |
| 187 sys.exit(1) | 186 sys.exit(1) |
| 188 target = quick_args.pop() | 187 target = quick_args.pop() |
| 189 wpr_recorder = WprRecorder(base_dir, target) | 188 wpr_recorder = WprRecorder(base_dir, target) |
| 190 results = wpr_recorder.CreateResults() | 189 results = wpr_recorder.CreateResults() |
| 191 wpr_recorder.Record(results) | 190 wpr_recorder.Record(results) |
| 192 wpr_recorder.HandleResults(results) | 191 wpr_recorder.HandleResults(results) |
| 193 return min(255, len(results.failures)) | 192 return min(255, len(results.failures)) |
| OLD | NEW |