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

Side by Side Diff: third_party/WebKit/LayoutTests/fast/events/touch/resources/touch-user-gesture-frame.html

Issue 2414273003: Remove UserGesture on touch scrolls (Closed)
Patch Set: Improve comments Created 4 years, 1 month 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
OLDNEW
(Empty)
1 <style>
2 #target {
3 width: 100%;
4 height: 200px;
5 background: lightblue;
6 }
7 </style>
8 <script src='../../../../resources/js-test.js'></script>
9 <div id='target'>Target</div>
10 <div id='description'>Test user gesture behavior during touch events.</div>
11 <div id='console'></div>
12
13 <script>
14 window.jsTestIsAsync = true;
15 var openedPopup = undefined;
16 var cancelEvent = false;
17
18 function handler(e) {
19 if (cancelEvent)
20 e.preventDefault();
21
22 if (openedPopup !== undefined)
23 testFailed('Handler invoked multiple times');
24
25 var w = window.open('about:blank', '_blank');
26 if (w) {
27 w.close();
28 openedPopup = true;
29 } else {
30 openedPopup = false;
31 }
32 }
33
34 var target = document.getElementById('target');
35
36 function testPopupOnEventDuring(eventType, expectPopup, operation) {
37 openedPopup = undefined;
38 target.addEventListener(eventType, handler);
39
40 operation();
41
42 if (openedPopup===undefined)
43 testFailed(eventType + ' handler was not invoked');
44 else if (expectPopup)
45 shouldBeTrue('openedPopup');
46 else
47 shouldBeFalse('openedPopup');
48
49 target.removeEventListener(eventType, handler);
50 }
51
52 if (window.testRunner) {
53 testRunner.setCloseRemainingWindowsWhenComplete(true);
54 testRunner.setCanOpenWindows();
55 testRunner.setPopupBlockingEnabled(true);
56 }
57
58 window.addEventListener('load', function() {
59 var rect = target.getBoundingClientRect();
60 var targetX = rect.left + rect.width / 2;
61 var targetY = rect.top + rect.height / 2;
62
63 debug('touchstart should not be a user gesture');
64 eventSender.addTouchPoint(targetX, targetY);
65 testPopupOnEventDuring('touchstart', false, function() { eventSender.touchSt art(); });
66
67 debug('touchmove should not be a user gesture');
68 eventSender.updateTouchPoint(0, targetX + 1, targetY);
69 testPopupOnEventDuring('touchmove', false, function() { eventSender.touchMov e(); });
70
71 debug("touchend should not be a user gesture if it's moved beyond the slop r egion");
72 eventSender.releaseTouchPoint(0);
73 testPopupOnEventDuring('touchend', false, function() { eventSender.touchEnd( 'movedBeyondSlopRegion'); });
74
75 debug('touchend should be a user gesture when it occurs as part of a tap');
76 eventSender.addTouchPoint(targetX, targetY);
77 eventSender.touchStart();
78 eventSender.updateTouchPoint(0, targetX + 1, targetY);
79 eventSender.touchMove();
80 eventSender.releaseTouchPoint(0);
81 testPopupOnEventDuring('touchend', true, function() { eventSender.touchEnd() ; });
82
83 debug('touchmove and touchend should not be a user gesture when it occurs as part of a drag without scrolling');
84 cancelEvent = true;
85 eventSender.addTouchPoint(targetX, targetY);
86 eventSender.touchStart();
87 eventSender.updateTouchPoint(0, targetX + 1, targetY);
88 testPopupOnEventDuring('touchmove', false, function() { eventSender.touchMov e('movedBeyondSlopRegion'); });
89 eventSender.releaseTouchPoint(0);
90 testPopupOnEventDuring('touchend', false, function() { eventSender.touchEnd( 'movedBeyondSlopRegion'); });
91
92 finishJSTest();
93 });
94 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698