| <!DOCTYPE html> |
| <html> |
| <head> |
| <title>Test that overflow-x: hidden with a large viewport doesn't clip the controls when rotated</title> |
| <meta name='viewport' content='width=800'> |
| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| <script src="../media-controls.js"></script> |
| </head> |
| <style> |
| body { |
| overflow-x: hidden; |
| } |
| ::-webkit-scrollbar { |
| width: 0px; |
| height: 0px; |
| } |
| </style> |
| <body> |
| <video controls width=400 style="transform:rotate(180deg)"></video> |
| <video controls width=1200></video> |
| <video controls width=1200 style="transform:rotate(90deg)"></video> |
| <video controls width=1200 style="transform:rotate(30deg)"></video> |
| </body> |
| <script> |
| test(_ => { |
| const expectedWidth = [ |
| "400px", // Smaller than viewport so fully visible. |
| "800px", // Larger than viewport and horizontal so width=viewport_width. |
| "1200px", // Larger than viewport but vertical so fully visible anyway :). |
| "1004.14px", // Larger than viewport but angled so we'll see more than |
| // viewport but less than full. |
| ]; |
| |
| var videos = document.querySelectorAll('video'); |
| for (var i=0; i < videos.length; ++i) { |
| videos[i].src = 'content/test.ogv'; |
| } |
| |
| var forceLayout = document.body.offsetHeight; |
| |
| for (var i=0; i < videos.length; ++i) { |
| var controls = mediaControlsButton(videos[i], 'panel'); |
| assert_equals(getComputedStyle(controls).width, expectedWidth[i]); |
| } |
| }); |
| </script> |
| </html> |