chromium/third_party/blink/web_tests/external/wpt/css/css-flexbox/canvas-dynamic-change-001.html

<!DOCTYPE html>
<meta charset="UTF-8">
<title>Canvas size dynamic change in flexbox layout</title>
<link rel="help" href="https://drafts.csswg.org/css-flexbox/#flex-items">
<meta name="assert" content="This test ensures proper layouting of canvas element as flex-items"/>
<link href="support/flexbox.css" rel="stylesheet">
<style>
.red {
  width: 600px;
  height: 400px;
  background: red;
}
canvas {
  background: green;
}
</style>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/check-layout-th.js"></script>
<div id=log></div>

<div class="red">
  <div class="flexbox column">
    <!-- The height=400 attribute makes the aspect ratio be 300x400. 300 from
         the fallback width of replaced elements. 400 from the attribute.
	 After stretching to 600px wide, the height should be 800px. -->
    <canvas id="canvas" data-expected-height="800"></canvas>
  </div>
</div>

<script>
var canvas = document.getElementById('canvas');

requestAnimationFrame(function() {
  canvas.height = 400;
  checkLayout('.flexbox');
});

</script>