1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
<!DOCTYPE html>
<script src="../../resources/js-test.js"></script>
<script>
var numScrolls;
var pageHeight = 2000;
var pageWidth = 2000;
function reset()
{
window.scrollTo(0, 0);
internals.setPageScaleFactor(2);
}
// Test Document scroll seperately so we ensure it scrolls all the way in one
// shot.
function testDocumentScroll() {
internals.executeCommand(document, 'ScrollToEndOfDocument', '');
shouldBe('window.scrollY', 'pageHeight - window.innerHeight');
shouldBe('window.scrollX', '0');
internals.executeCommand(document, 'ScrollToBeginningOfDocument', '');
shouldBe('window.scrollY', '0');
shouldBe('window.scrollX', '0');
}
function testScroll(forwardCmd, backwardCmd) {
internals.executeCommand(document, forwardCmd, '');
if (internals.visualViewportScrollY() === 0) {
debug('FAIL: Command ' + forwardCmd + ' failed to scroll page at all.');
return;
}
numScrolls = Math.ceil((pageHeight - internals.visualViewportHeight()) / internals.visualViewportScrollY());
for(var i = 0; i < numScrolls - 1; ++i) {
internals.executeCommand(document, forwardCmd, '');
}
shouldBe('internals.visualViewportScrollY()', 'pageHeight - internals.visualViewportHeight()');
shouldBe('internals.visualViewportScrollX()', '0');
for(var i = 0; i < numScrolls; ++i) {
internals.executeCommand(document, backwardCmd, '');
}
shouldBe('internals.visualViewportScrollY()', '0');
shouldBe('internals.visualViewportScrollX()', '0');
}
function runTest()
{
description(
'Test that scrolling editor commands while pinch-zoomed scrolls ' +
'both viewports. To test manually, pinch zoom into the page and ' +
'use the arrow keys, page up/down, home/end to scroll the page. ' +
'You should be able to reach the end of the page bounds (i.e. ' +
'scroll to see the divs at the bounds.)');
if (window.internals) {
internals.settings.setScrollAnimatorEnabled(false);
reset();
debug('');
debug('Testing Document Scrolling:');
testDocumentScroll();
reset();
debug('');
debug('Testing Page Scrolling:');
testScroll('ScrollPageForward', 'ScrollPageBackward');
reset();
debug('');
debug('Testing Line Scrolling:');
testScroll('ScrollLineDown', 'ScrollLineUp');
}
}
addEventListener('load', runTest);
</script>
<style>
::-webkit-scrollbar {
width: 0px;
height: 0px;
}
div {
width: 200px;
height: 20px;
background-color: red;
}
html{
padding: 0px;
margin: 0px;
width: 2000px;
height: 2000px;
}
.top {
position: absolute;
top: 0px;
left: 300px;
}
.middle{
position: absolute;
top: 975px;
left: 300px;
}
.bottom {
position: absolute;
top: 1980px;
left: 300px;
}
.left {
position: absolute;
top: 275px;
left: 0px;
}
.right {
position: absolute;
top: 275px;
left: 1800px;
}
</style>
<p id="description" style="width: 800px"></p>
<p id="console" style="width: 800px"></p>
<div class="top">Top of page</div>
<div class="bottom">Bottom of page</div>
<div class="left">Left of page</div>
<div class="right">Right of page</div>
<div class="middle">Middle of page</div>
|