[css] Fix intrinsic sizes invalidation for images with % max-height

Previously we would reuse cached inline sizes for an image with
%max-height even when the parent height would change. This led to
trouble for cases like

<div style="height: 100px;" id=outer>
  <img src=300x300.png style="max-height: 100%">
</div>
outer.style.height = 200px;

The img's intrinsic width was still 100px, even after script changed it
to 200px.

This cache invalidation was already working for elements with a
specified aspect ratio but not for replaced elements with a natural
aspect ratio.

Fixed: 1256802
Change-Id: I6c21fdf9c7fa0795dcf0100f3b37665910cf9cb9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3226479
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/main@{#932050}
diff --git a/css/css-flexbox/flex-aspect-ratio-img-row-016.html b/css/css-flexbox/flex-aspect-ratio-img-row-016.html
new file mode 100644
index 0000000..0c5135a
--- /dev/null
+++ b/css/css-flexbox/flex-aspect-ratio-img-row-016.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<title>aspect-ratio flex item</title>
+<link rel="help" href="https://drafts.csswg.org/css-flexbox/#algo-main-item" title="Part E">
+<link rel="match" href="../reference/ref-filled-green-100px-square.xht" />
+<meta name="assert" content="% max-height is updated when height of parent changes when %max-height affects max-content size of item">
+
+<style>
+#target {
+  display: flex;
+  align-items: start;
+  width: 50px;
+  height: 50px;
+}
+
+img {
+  /* Remove min-width:auto because it complicates things. */
+  min-width: 0px;
+  max-height: 100%;
+  background: green;
+}
+</style>
+
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+<div id="target">
+  <!-- This image's natural size is 1000x1000 -->
+  <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAAPoAQMAAAB3bUanAAAAA1BMVEUAAACnej3aAAAAAXRSTlMAQObYZgAAAKpJREFUeNrswYEAAAAAgKD9qRepAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABg9uBAAAAAAADI/7URVFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWlPTgkAAAAABD0/7UrbAAAAADMAuw/AAGdJWCbAAAAAElFTkSuQmCC
+">
+</div>
+
+<script>
+document.body.offsetTop;
+target.style.width = '100px';
+document.body.offsetTop;
+target.style.height = '100px';
+</script>