OLD | NEW |
1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 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 time | 5 import time |
6 | 6 |
7 from telemetry.page.actions.javascript_click import ClickElementAction | 7 from telemetry.page.actions.javascript_click import ClickElementAction |
8 from telemetry.page.actions.loop import LoopAction | 8 from telemetry.page.actions.loop import LoopAction |
9 from telemetry.page.actions.navigate import NavigateAction | 9 from telemetry.page.actions.navigate import NavigateAction |
10 from telemetry.page.actions.pinch import PinchAction | 10 from telemetry.page.actions.pinch import PinchAction |
11 from telemetry.page.actions.play import PlayAction | 11 from telemetry.page.actions.play import PlayAction |
12 from telemetry.page.actions.repaint_continuously import ( | 12 from telemetry.page.actions.repaint_continuously import ( |
13 RepaintContinuouslyAction) | 13 RepaintContinuouslyAction) |
14 from telemetry.page.actions.scroll import ScrollAction | 14 from telemetry.page.actions.scroll import ScrollAction |
15 from telemetry.page.actions.scroll_bounce import ScrollBounceAction | 15 from telemetry.page.actions.scroll_bounce import ScrollBounceAction |
16 from telemetry.page.actions.seek import SeekAction | 16 from telemetry.page.actions.seek import SeekAction |
17 from telemetry.page.actions.swipe import SwipeAction | 17 from telemetry.page.actions.swipe import SwipeAction |
18 from telemetry.page.actions.tap import TapAction | 18 from telemetry.page.actions.tap import TapAction |
19 from telemetry.page.actions.wait import WaitForElementAction | 19 from telemetry.page.actions.wait import WaitForElementAction |
20 from telemetry.web_perf import timeline_interaction_record as tir_module | 20 from telemetry.web_perf import timeline_interaction_record |
21 | 21 |
22 | 22 |
23 class ActionRunner(object): | 23 class ActionRunner(object): |
24 | 24 |
25 def __init__(self, tab): | 25 def __init__(self, tab): |
26 self._tab = tab | 26 self._tab = tab |
27 | 27 |
28 def _RunAction(self, action): | 28 def _RunAction(self, action): |
29 action.WillRunAction(self._tab) | 29 action.WillRunAction(self._tab) |
30 action.RunAction(self._tab) | 30 action.RunAction(self._tab) |
(...skipping 13 matching lines...) Expand all Loading... |
44 user-defined string, but must not contain '/'. | 44 user-defined string, but must not contain '/'. |
45 is_smooth: Whether to check for smoothness metrics for this interaction. | 45 is_smooth: Whether to check for smoothness metrics for this interaction. |
46 is_responsive: Whether to check for responsiveness metrics for | 46 is_responsive: Whether to check for responsiveness metrics for |
47 this interaction. | 47 this interaction. |
48 repeatable: Whether other interactions may use the same logical name | 48 repeatable: Whether other interactions may use the same logical name |
49 as this interaction. All interactions with the same logical name must | 49 as this interaction. All interactions with the same logical name must |
50 have the same flags. | 50 have the same flags. |
51 """ | 51 """ |
52 flags = [] | 52 flags = [] |
53 if is_smooth: | 53 if is_smooth: |
54 flags.append(tir_module.IS_SMOOTH) | 54 flags.append(timeline_interaction_record.IS_SMOOTH) |
55 if is_responsive: | 55 if is_responsive: |
56 flags.append(tir_module.IS_RESPONSIVE) | 56 flags.append(timeline_interaction_record.IS_RESPONSIVE) |
57 if repeatable: | 57 if repeatable: |
58 flags.append(tir_module.REPEATABLE) | 58 flags.append(timeline_interaction_record.REPEATABLE) |
59 | 59 |
60 interaction = Interaction(self._tab, label, flags) | 60 interaction = Interaction(self._tab, label, flags) |
61 interaction.Begin() | 61 interaction.Begin() |
62 return interaction | 62 return interaction |
63 | 63 |
64 def BeginGestureInteraction(self, label, is_smooth=False, is_responsive=False, | 64 def BeginGestureInteraction(self, label, is_smooth=False, is_responsive=False, |
65 repeatable=False): | 65 repeatable=False): |
66 """Marks the beginning of a gesture-based interaction record. | 66 """Marks the beginning of a gesture-based interaction record. |
67 | 67 |
68 This is similar to normal interaction record, but it will | 68 This is similar to normal interaction record, but it will |
(...skipping 496 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
565 | 565 |
566 self._action_runner = action_runner | 566 self._action_runner = action_runner |
567 self._label = label | 567 self._label = label |
568 self._flags = flags | 568 self._flags = flags |
569 self._started = False | 569 self._started = False |
570 | 570 |
571 def Begin(self): | 571 def Begin(self): |
572 assert not self._started | 572 assert not self._started |
573 self._started = True | 573 self._started = True |
574 self._action_runner.ExecuteJavaScript('console.time("%s");' % | 574 self._action_runner.ExecuteJavaScript('console.time("%s");' % |
575 tir_module.TimelineInteractionRecord.GetJavaScriptMarker( | 575 timeline_interaction_record.GetJavaScriptMarker( |
576 self._label, self._flags)) | 576 self._label, self._flags)) |
577 | 577 |
578 def End(self): | 578 def End(self): |
579 assert self._started | 579 assert self._started |
580 self._started = False | 580 self._started = False |
581 self._action_runner.ExecuteJavaScript('console.timeEnd("%s");' % | 581 self._action_runner.ExecuteJavaScript('console.timeEnd("%s");' % |
582 tir_module.TimelineInteractionRecord.GetJavaScriptMarker( | 582 timeline_interaction_record.GetJavaScriptMarker( |
583 self._label, self._flags)) | 583 self._label, self._flags)) |
OLD | NEW |