Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(73)

Side by Side Diff: tools/perf/measurements/smooth_gesture_util.py

Issue 1067883002: [Telemetry] Add the feature of narrowing down the "gesture" interaction record to TBM. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix import statement in timeline_controller Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | tools/perf/measurements/smooth_gesture_util_unittest.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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
3 # found in the LICENSE file.
4 import copy
5
6 from telemetry.web_perf import timeline_interaction_record as tir_module
7
8
9 def GetAdjustedInteractionIfContainGesture(timeline, interaction_record):
10 """ Returns a new interaction record if interaction_record contains geture
11 whose time range that overlaps with interaction_record's range. If not,
12 returns a clone of original interaction_record.
13 The synthetic gesture controller inserts a trace marker to precisely
14 demarcate when the gesture was running. We check for overlap, not inclusion,
15 because gesture_actions can start/end slightly outside the telemetry markers
16 on Windows. This problem is probably caused by a race condition between
17 the browser and renderer process submitting the trace events for the
18 markers.
19 """
20 # Only adjust the range for gestures.
21 if not interaction_record.label.startswith('Gesture_'):
22 return copy.copy(interaction_record)
23 gesture_events = [
24 ev for ev
25 in timeline.IterAllAsyncSlicesOfName('SyntheticGestureController::running')
26 if ev.parent_slice is None and
27 ev.start <= interaction_record.end and
28 ev.end >= interaction_record.start]
29 if len(gesture_events) == 0:
30 return copy.copy(interaction_record)
31 if len(gesture_events) > 1:
32 raise Exception('More than one possible synthetic gesture marker found in '
33 'interaction_record %s.' % interaction_record.label)
34 return tir_module.TimelineInteractionRecord(
35 interaction_record.label, gesture_events[0].start,
36 gesture_events[0].end, gesture_events[0],
37 interaction_record._flags) # pylint: disable=W0212
OLDNEW
« no previous file with comments | « no previous file | tools/perf/measurements/smooth_gesture_util_unittest.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698