| <!DOCTYPE html> |
| <html> |
| <head> |
| <!-- |
| This test verifies that removing a horizontal scrollbar while the vertical |
| scrollbar's thumb is being dragged does not reset the vertical scroll offset. |
| --> |
| <style> |
| |
| body { |
| margin: 0; |
| overflow: hidden; |
| } |
| iframe { |
| border: 0; |
| width: 800px; |
| height: 600px; |
| } |
| ::-webkit-scrollbar { |
| width: 20px; |
| height: 20px; |
| } |
| ::-webkit-scrollbar-button { |
| height: 20px; |
| width: 20px; |
| background-color: gray; |
| } |
| ::-webkit-scrollbar-thumb { |
| height: 20px; |
| width: 20px; |
| background-color: blue; |
| } |
| |
| </style> |
| </head> |
| <body> |
| <iframe id="f"></iframe> |
| <script> |
| |
| var frame = document.getElementById("f").contentWindow; |
| var frameBody = frame.document.body; |
| |
| frameBody.style.width = "2000px"; |
| frameBody.style.height = "2000px"; |
| |
| frame.addEventListener('scroll', function() { |
| if (frameBody.scrollTop > 400) |
| frameBody.style.width = "600px"; |
| }); |
| |
| function runTest() { |
| testRunner.waitUntilDone(); |
| |
| // Tell eventSender not to batch mouse move events. |
| eventSender.dragMode = false; |
| |
| eventSender.mouseMoveTo(790, 50); |
| eventSender.mouseDown(); |
| eventSender.mouseMoveTo(790, 250); |
| |
| frame.addEventListener('scroll', finish); |
| } |
| |
| function finish() { |
| eventSender.mouseMoveTo(790, 350); |
| eventSender.mouseUp(); |
| |
| document.body.innerText = frameBody.scrollTop > 0 ? "PASS" : "FAIL"; |
| |
| testRunner.dumpAsText(); |
| testRunner.notifyDone(); |
| } |
| |
| if (window.testRunner && window.eventSender) |
| runTest(); |
| else |
| frameBody.innerText = 'Scroll down by dragging the thumb. ' + |
| 'Test passes if scroll offset does not jump back to 0.'; |
| |
| </script> |
| </body> |
| </html> |