Commit cf0137c1 authored by Manuel Rego Casasnovas's avatar Manuel Rego Casasnovas Committed by Commit Bot

[css-contain] Size containment replaced elements intrinsic size is zero

The spec is very clear about this
(https://drafts.csswg.org/css-contain/#containment-size):
  "Replaced elements must be treated as having an intrinsic width
   and height of 0."

The patch modifies LayoutReplaced::ComputeIntrinsicSizingInfo()
so that it returns zero for elements with "contain: size".

BUG=853441
TEST=external/wpt/css/css-contain/contain-size-013.html

Change-Id: I91490b120a110be20a91d564da4fdc3d9a11b70a
Reviewed-on: https://chromium-review.googlesource.com/1110819Reviewed-by: default avatarMorten Stenshorne <mstensho@chromium.org>
Commit-Queue: Manuel Rego Casasnovas <rego@igalia.com>
Cr-Commit-Position: refs/heads/master@{#569610}
parent 2d7caeff
<!DOCTYPE html>
<meta charset="utf-8">
<title>CSS Containment Test: Size containment replaced elements intrinsic size</title>
<link rel="author" title="Manuel Rego Casasnovas" href="mailto:rego@igalia.com">
<link rel="help" href="https://drafts.csswg.org/css-contain-1/#containment-size">
<link rel="match" href="../reference/ref-filled-green-100px-square.xht">
<meta name=assert content="This test checks that intrinsic size of replaced elements with 'contain: size' is zero.">
<style>
img {
background: green;
padding: 50px;
contain: size;
}
</style>
<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
<img src="/css/support/60x60-red.png" />
...@@ -639,6 +639,11 @@ LayoutRect LayoutReplaced::ReplacedContentRect() const { ...@@ -639,6 +639,11 @@ LayoutRect LayoutReplaced::ReplacedContentRect() const {
void LayoutReplaced::ComputeIntrinsicSizingInfo( void LayoutReplaced::ComputeIntrinsicSizingInfo(
IntrinsicSizingInfo& intrinsic_sizing_info) const { IntrinsicSizingInfo& intrinsic_sizing_info) const {
if (ShouldApplySizeContainment()) {
intrinsic_sizing_info.size = FloatSize();
return;
}
intrinsic_sizing_info.size = FloatSize(IntrinsicLogicalWidth().ToFloat(), intrinsic_sizing_info.size = FloatSize(IntrinsicLogicalWidth().ToFloat(),
IntrinsicLogicalHeight().ToFloat()); IntrinsicLogicalHeight().ToFloat());
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment