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
|
<!DOCTYPE html>
<html>
<head>
<style>
div.block { height: 400px; border: 1px solid black; margin:10px; }
</style>
</head>
<body>
<div>
Following actions must not emit resize events: page load, dynamic content generation and page scaling.<br/>
When fixed layout is enabled, changing fixed layout size must emit resize event.<br/>
The spec DOM Level 2 Events states that the resize event occurs when document view size (a.k.a layout size) is changed. Refer to http://www.w3.org/TR/DOM-Level-2-Events/events.html<br/>
However, showing/hiding scrollbars shouldn't be considered a layout size change. Refer to webkit.org/b/80242<br/>
</div>
<div id=expandingblock>
</div>
<pre id="console"></pre>
<script src="../js/resources/js-test-pre.js"></script>
<script>
var resizeEventCount = 0;
window.onresize = function() {
resizeEventCount++;
}
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.enableFixedLayoutMode(true);
testRunner.setFixedLayoutSize(700, 240);
testRunner.waitUntilDone();
}
function test() {
setTimeout(showScrollbar, 20);
}
// Add many div blocks to increase document height more than view height.
function showScrollbar() {
for (var i = 0; i < 10; i++) {
var el = document.createElement('div');
el.setAttribute('class','block');
document.getElementById('expandingblock').appendChild(el);
}
setTimeout(scalePage, 20);
}
function scalePage() {
if (window.eventSender)
window.eventSender.setPageScaleFactor(3, 0, 0);
setTimeout(changeFixedLayoutSize, 20);
}
function changeFixedLayoutSize() {
if (window.testRunner)
testRunner.setFixedLayoutSize(1600, 1600);
setTimeout(finish, 20);
}
function finish() {
// setFixedLayoutSize() must emit a resize event.
shouldBe("resizeEventCount", "1");
if (window.testRunner)
testRunner.notifyDone();
}
window.onload = test;
</script>
</body>
</html>
|