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

Side by Side Diff: third_party/WebKit/LayoutTests/fast/events/resources/panScroll.js

Issue 2289213002: Implement Middle Click Autoscroll on all platforms not just Windows (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Merge branch 'master' of https://chromium.googlesource.com/chromium/src into panscroll Created 4 years, 3 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
OLDNEW
(Empty)
1 var autoscrollInterval = 50;
2 var middleButton = 1;
3 var panScrollRadius = 15; // from FrameView::noPanScrollRadius
4
5 window.jsTestIsAsync = true;
6
7 function $(id)
8 {
9 return document.getElementById(id);
10 }
11
12 function testPanScroll(param)
13 {
14 function finishTest()
15 {
16 if ($('container'))
17 $('container').innerHTML = '';
18 if (param.finishTest)
19 param.finishTest();
20 if (window.finishJSTest) {
21 finishJSTest();
22 return;
23 }
24 if (window.testRunner)
25 testRunner.notifyDone();
26 }
27
28 var scrollable = param.scrollable;
29 var scrolledObject = param.scrolledObject || scrollable;
30
31 if (!scrollable.innerHTML) {
32 for (var i = 0; i < 100; ++i) {
33 var line = document.createElement('div');
34 line.innerHTML = "line " + i;
35 scrollable.appendChild(line);
36 }
37 }
38
39 var noModeScroll = false;
40 var scrolled = false;
41
42 scrolledObject.onscroll = function() {
43 if (noModeScroll) {
44 testFailed('still autoscroll');
45 finishTest();
46 return;
47 }
48
49 if (scrolled)
50 return;
51 scrolled = true;
52 testPassed('autoscroll started');
53
54 if (window.eventSender) {
55 if (param.clickOrDrag == 'click')
56 eventSender.mouseDown(middleButton);
57 eventSender.mouseUp(middleButton);
58 }
59 };
60
61 scrollable.ownerDocument.onmouseup = function(e) {
62 if (!scrolled || e.button != middleButton)
63 return;
64 noMoreScroll = true;
65 window.setTimeout(function() {
66 testPassed('autoscroll stopped');
67 finishTest();
68 }, autoscrollInterval * 2);
69 };
70
71 if (!window.eventSender)
72 return;
73 var startX = param.startX || scrollable.offsetLeft + 5;
74 var startY = param.startY || scrollable.offsetTop + 5;
75 var endX = param.endX || scrollable.offsetLeft + 5;
76 var endY = param.endY || scrollable.offsetTop + panScrollRadius + 6;
77 eventSender.mouseMoveTo(startX, startY);
78 eventSender.mouseDown(middleButton);
79 if (param.clickOrDrag == 'click')
80 eventSender.mouseUp(middleButton);
81 eventSender.mouseMoveTo(endX, endY);
82 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698