| Index: LayoutTests/fast/events/resize-events-fixed-layout.html
|
| diff --git a/LayoutTests/fast/events/resize-events-fixed-layout.html b/LayoutTests/fast/events/resize-events-fixed-layout.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..b9ee8264b7759ecd541772f29cbd0eb9738af3bf
|
| --- /dev/null
|
| +++ b/LayoutTests/fast/events/resize-events-fixed-layout.html
|
| @@ -0,0 +1,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.internals)
|
| + window.internals.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>
|
|
|