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

[css-contain] Make contain:layout a stacking context

The CSSWG has recently resolved that layout containment
should create a stacking context like paint containment
(see issue https://github.com/w3c/csswg-drafts/issues/2942).

This is the spec text about this
(https://drafts.csswg.org/css-contain/#containment-layout):
  "5. The element creates a stacking context."

The patch is just a simple change in
ComputedStyle::UpdateIsStackingContext() to add the new condition.

Apart from that TestExpectations file is updated
as we're now passing some tests from WPT.
We're also failing one test, but for an unrelated issue
(see bug #880802).

BUG=870157
TEST=external/wpt/css/css-contain/contain-layout-016.html
TEST=external/wpt/css/css-contain/contain-layout-018.html
TEST=external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-layout-stacking-context-001.html

Change-Id: Icdc102692801534364adf3fc0929192b886cdbc4
Reviewed-on: https://chromium-review.googlesource.com/1211922
Commit-Queue: Manuel Rego <rego@igalia.com>
Reviewed-by: default avatarMorten Stenshorne <mstensho@chromium.org>
Reviewed-by: default avatarChris Harrelson <chrishtr@chromium.org>
Reviewed-by: default avatarEmil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#589689}
parent f3fd3216
...@@ -301,10 +301,11 @@ crbug.com/174167 external/wpt/css/css-tables/visibility-collapse-rowcol-002.html ...@@ -301,10 +301,11 @@ crbug.com/174167 external/wpt/css/css-tables/visibility-collapse-rowcol-002.html
# [css-contain] # [css-contain]
crbug.com/880802 external/wpt/css/css-contain/contain-layout-017.html [ Failure ]
crbug.com/847274 external/wpt/css/css-contain/contain-paint-005.html [ Failure ] crbug.com/847274 external/wpt/css/css-contain/contain-paint-005.html [ Failure ]
crbug.com/847274 external/wpt/css/css-contain/contain-paint-006.html [ Failure ] crbug.com/847274 external/wpt/css/css-contain/contain-paint-006.html [ Failure ]
crbug.com/880802 external/wpt/css/css-contain/contain-paint-021.html [ Failure ]
crbug.com/881057 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-layout-formatting-context-margin-001.html [ Failure ] crbug.com/881057 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-layout-formatting-context-margin-001.html [ Failure ]
crbug.com/881057 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-layout-stacking-context-001.html [ Failure ]
crbug.com/881057 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-clip-002.html [ Failure ] crbug.com/881057 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-clip-002.html [ Failure ]
crbug.com/881057 [ Mac ] external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-clip-003.html [ Failure ] crbug.com/881057 [ Mac ] external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-clip-003.html [ Failure ]
crbug.com/881057 [ Mac ] external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-clip-004.html [ Failure ] crbug.com/881057 [ Mac ] external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/contain/contain-paint-clip-004.html [ Failure ]
...@@ -2887,8 +2888,6 @@ crbug.com/626703 external/wpt/css/css-contain/contain-layout-cell-002.html [ Fai ...@@ -2887,8 +2888,6 @@ crbug.com/626703 external/wpt/css/css-contain/contain-layout-cell-002.html [ Fai
crbug.com/626703 external/wpt/css/css-contain/contain-paint-clip-015.html [ Failure ] crbug.com/626703 external/wpt/css/css-contain/contain-paint-clip-015.html [ Failure ]
crbug.com/626703 external/wpt/css/css-contain/contain-size-monolithic-001.html [ Failure ] crbug.com/626703 external/wpt/css/css-contain/contain-size-monolithic-001.html [ Failure ]
crbug.com/626703 external/wpt/css/css-contain/contain-style-counters-004.html [ Failure ] crbug.com/626703 external/wpt/css/css-contain/contain-style-counters-004.html [ Failure ]
crbug.com/868102 external/wpt/css/css-contain/contain-paint-021.html [ Failure ]
crbug.com/870157 external/wpt/css/css-contain/contain-layout-016.html [ Failure ]
crbug.com/626703 external/wpt/clear-site-data/executionContexts.sub.html [ Timeout ] crbug.com/626703 external/wpt/clear-site-data/executionContexts.sub.html [ Timeout ]
crbug.com/626703 [ Win10 ] external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-column-row-gap-004.html [ Failure ] crbug.com/626703 [ Win10 ] external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-column-row-gap-004.html [ Failure ]
crbug.com/626703 [ Linux Mac Win7 ] external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-column-row-gap-004.html [ Failure ] crbug.com/626703 [ Linux Mac Win7 ] external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-column-row-gap-004.html [ Failure ]
......
...@@ -932,7 +932,7 @@ void ComputedStyle::UpdateIsStackingContext(bool is_document_element, ...@@ -932,7 +932,7 @@ void ComputedStyle::UpdateIsStackingContext(bool is_document_element,
HasBlendMode() || HasIsolation() || HasViewportConstrainedPosition() || HasBlendMode() || HasIsolation() || HasViewportConstrainedPosition() ||
GetPosition() == EPosition::kSticky || GetPosition() == EPosition::kSticky ||
HasPropertyThatCreatesStackingContext(WillChangeProperties()) || HasPropertyThatCreatesStackingContext(WillChangeProperties()) ||
ContainsPaint()) { ContainsPaint() || ContainsLayout()) {
SetIsStackingContext(true); SetIsStackingContext(true);
} }
} }
......
...@@ -93,6 +93,14 @@ TEST(ComputedStyleTest, Preserve3dForceStackingContext) { ...@@ -93,6 +93,14 @@ TEST(ComputedStyleTest, Preserve3dForceStackingContext) {
EXPECT_TRUE(style->IsStackingContext()); EXPECT_TRUE(style->IsStackingContext());
} }
TEST(ComputedStyleTest, LayoutContainmentStackingContext) {
scoped_refptr<ComputedStyle> style = ComputedStyle::Create();
EXPECT_FALSE(style->IsStackingContext());
style->SetContain(kContainsLayout);
style->UpdateIsStackingContext(false, false, false);
EXPECT_TRUE(style->IsStackingContext());
}
TEST(ComputedStyleTest, FirstPublicPseudoStyle) { TEST(ComputedStyleTest, FirstPublicPseudoStyle) {
scoped_refptr<ComputedStyle> style = ComputedStyle::Create(); scoped_refptr<ComputedStyle> style = ComputedStyle::Create();
style->SetHasPseudoStyle(kPseudoIdFirstLine); style->SetHasPseudoStyle(kPseudoIdFirstLine);
......
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