| <!doctype html><!-- webkit-test-runner [ experimental:AspectRatioOfImgFromWidthAndHeightEnabled=true ] --> |
| <title>Video width and height attributes are not used to infer aspect-ratio</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/common/media.js"></script> |
| <style> |
| video { |
| width: 100%; |
| max-width: 100px; |
| height: auto; |
| } |
| </style> |
| <body> |
| <script> |
| let t = async_test("Video width and height attributes are not used to infer aspect-ratio"); |
| function assert_ratio(img, expected) { |
| let epsilon = 0.001; |
| assert_approx_equals(parseInt(getComputedStyle(img).width, 10) / parseInt(getComputedStyle(img).height, 10), expected, epsilon); |
| } |
| // Create and append a new video and immediately check the ratio. |
| // This is not racy because the spec requires the user agent to queue a task: |
| // https://html.spec.whatwg.org/multipage/media.html#concept-media-load-algorithm |
| t.step(function() { |
| var video = document.createElement("video"); |
| video.setAttribute("width", "250"); |
| video.setAttribute("height", "100"); |
| video.src = getVideoURI('/media/2x2-green'); |
| document.body.appendChild(video); |
| // Videos default to a size of 300x150px and calculate their aspect ratio |
| // based on that before the video is loaded. So this should be 2, ignoring |
| // the 2.5 that it would be based on the attributes. |
| assert_ratio(video, 2); |
| |
| video.onloadeddata = t.step_func_done(function() { |
| // When loaded this video is square. |
| assert_ratio(video, 1); |
| }); |
| }); |
| </script> |