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

Side by Side Diff: LayoutTests/fast/events/hit-test-counts.html

Issue 354613002: Add test to track the number of hit tests on various events (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Merge with trunk Created 6 years, 5 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 <!DOCTYPE html>
2 <body onload=run()>
esprehn 2014/06/26 02:33:50 Remove <body>.
Rick Byers 2014/06/26 15:35:18 Done.
3 <p id=description></p>
4 <div id='target' style='width: 10px; height: 10px'></div>
5 <iframe id='frame' style='width: 50px; height: 50px; margin-top: 50px' scrolli ng=no
6 src='data:text/html,<iframe width=100 height=100></iframe>'></iframe>
esprehn 2014/06/26 02:33:50 use srcdoc, did you really want scrolling=no too?
Rick Byers 2014/06/26 15:35:18 done
7 <div id='console'></div>
esprehn 2014/06/26 02:33:50 The test runner will add console and description f
Rick Byers 2014/06/26 15:35:18 Done. I added console explicitly so that I could
8 <script src="../../resources/js-test.js"></script>
9 <script>
10 description("Count how many hit tests are required for various event scenarios. Hit tests can be expensive and it's often tempting to add more. These values s hould only ever be changed to go down, not up.");
11
12 function logCounts(name, documents)
13 {
14 var msg = name + ':';
15 for(var i = 0; i < documents.length; i++)
16 msg += ' ' + internals.hitTestCountDelta(documents[i]);
17 debug(msg);
18 }
19
20 function clearCounts(documents)
21 {
22 for(var i = 0; i < documents.length; i++)
23 internals.hitTestCountDelta(documents[i]);
24 }
25
26 function sendEvents(element, documents)
27 {
28 var targetRect = element.getBoundingClientRect();
29 var targetX = targetRect.left + targetRect.width / 2;
30 var targetY = targetRect.top + targetRect.height / 2;
31
32 logCounts('Initial', documents);
33
34 eventSender.mouseMoveTo(targetX, targetY);
35 logCounts('MouseMove', documents);
36
37 eventSender.mouseDown();
38 logCounts('MouseDown', documents);
39
40 eventSender.mouseUp();
41 logCounts('MouseUp', documents);
42
43 eventSender.mouseScrollBy(0, 5);
44 logCounts('Wheel', documents);
45
46 eventSender.addTouchPoint(targetX, targetY);
47 eventSender.touchStart();
48 logCounts('TouchStart', documents);
49
50 eventSender.updateTouchPoint(0, targetX + 1, targetY);
51 eventSender.touchMove();
52 logCounts('TouchMove', documents);
53
54 eventSender.releaseTouchPoint(0);
55 eventSender.touchEnd();
56 logCounts('TouchEnd', documents);
57
58 eventSender.gestureTapDown(targetX, targetY, 30, 30);
59 logCounts('GestureTapDown', documents);
60
61 eventSender.gestureShowPress(targetX, targetY, 30, 30);
62 logCounts('GestureShowPress', documents);
63
64 eventSender.gestureTap(targetX, targetY);
65 logCounts('GestureTap', documents);
66
67 eventSender.gestureTapDown(targetX, targetY, 30, 30);
68 clearCounts(documents);
69 eventSender.gestureScrollBegin(targetX, targetY);
70 logCounts('GestureScrollBegin', documents);
71
72 eventSender.gestureTapCancel(targetX, targetY);
73 logCounts('GestureTapCancel', documents);
74
75 eventSender.gestureScrollUpdate(0, 5);
76 logCounts('GestureScrollUpdate', documents);
77
78 eventSender.gestureScrollEnd();
79 logCounts('GestureScrollEnd', documents);
80 }
81
82 function run() {
esprehn 2014/06/26 02:33:50 onload = function() {
Rick Byers 2014/06/26 15:35:18 Done.
83 debug('Event on a simple div');
84 debug('---------------------');
85 sendEvents(document.getElementById('target'), [document]);
86 debug('');
87
88 debug('Event over one iframe nested in another');
89 debug('---------------------');
90 var frame = document.getElementById('frame');
91 var doc2 = frame.contentDocument;
92 var doc3 = doc2.querySelector('iframe').contentDocument;
93 sendEvents(frame, [document, doc2, doc3]);
94 debug('');
95 }
96 </script>
97 </body>
OLDNEW
« no previous file with comments | « no previous file | LayoutTests/fast/events/hit-test-counts-expected.txt » ('j') | Source/core/rendering/RenderView.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698