Title: [289617] trunk
- Revision
- 289617
- Author
- [email protected]
- Date
- 2022-02-11 04:47:17 -0800 (Fri, 11 Feb 2022)
Log Message
[CSS Container Queries] Implement container name matching
https://bugs.webkit.org/show_bug.cgi?id=236495
Reviewed by Tim Nguyen.
LayoutTests/imported/w3c:
* web-platform-tests/css/css-contain/container-queries/container-name-invalidation-expected.txt:
* web-platform-tests/css/css-contain/container-queries/container-selection-expected.txt:
Source/WebCore:
Find the right container to evaluate against.
* style/ContainerQueryEvaluator.cpp:
(WebCore::Style::ContainerQueryEvaluator::evaluate const):
Modified Paths
Diff
Modified: trunk/LayoutTests/imported/w3c/ChangeLog (289616 => 289617)
--- trunk/LayoutTests/imported/w3c/ChangeLog 2022-02-11 12:05:38 UTC (rev 289616)
+++ trunk/LayoutTests/imported/w3c/ChangeLog 2022-02-11 12:47:17 UTC (rev 289617)
@@ -1,3 +1,13 @@
+2022-02-11 Antti Koivisto <[email protected]>
+
+ [CSS Container Queries] Implement container name matching
+ https://bugs.webkit.org/show_bug.cgi?id=236495
+
+ Reviewed by Tim Nguyen.
+
+ * web-platform-tests/css/css-contain/container-queries/container-name-invalidation-expected.txt:
+ * web-platform-tests/css/css-contain/container-queries/container-selection-expected.txt:
+
2022-02-11 Andreu Botella <[email protected]>
Clicking on an <input type="image"> will submit the form with null submitter
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-name-invalidation-expected.txt (289616 => 289617)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-name-invalidation-expected.txt 2022-02-11 12:05:38 UTC (rev 289616)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-name-invalidation-expected.txt 2022-02-11 12:47:17 UTC (rev 289617)
@@ -1,5 +1,5 @@
Test
-FAIL Changing a named container invalidates relevant descendants assert_equals: expected "rgb(0, 128, 0)" but got "rgb(0, 0, 0)"
-FAIL Changing container-name invalidates relevant descendants assert_equals: expected "rgb(0, 128, 0)" but got "rgb(0, 0, 0)"
+PASS Changing a named container invalidates relevant descendants
+FAIL Changing container-name invalidates relevant descendants assert_equals: expected "rgb(0, 0, 0)" but got "rgb(0, 128, 0)"
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-selection-expected.txt (289616 => 289617)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-selection-expected.txt 2022-02-11 12:05:38 UTC (rev 289616)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-selection-expected.txt 2022-02-11 12:47:17 UTC (rev 289617)
@@ -12,9 +12,9 @@
FAIL name(b) size(width: 16px) for .a-size > .b-size > span assert_equals: expected "true" but got ""
PASS name(c) size(width) for .a-size > .b-size > span
FAIL name(a) size(width: 16px) for .a-size > .a-size > span assert_equals: expected "true" but got ""
-FAIL a size(width: 32px) for .a-size > .b-size > span assert_equals: expected "true" but got ""
+PASS a size(width: 32px) for .a-size > .b-size > span
PASS b size(width: 16px) for .a-size > .b-size > span
-FAIL c size(width) for .a-size > .b-size > span assert_equals: expected "" but got "true"
+PASS c size(width) for .a-size > .b-size > span
PASS a size(width: 16px) for .a-size > .a-size > span
PASS a size(width: 32px) for .a-size > .a > span
FAIL name(a) type(inline-size) size(width: 8px) for .a-size > .b-size > .a-inline > span assert_equals: expected "true" but got ""
Modified: trunk/Source/WebCore/ChangeLog (289616 => 289617)
--- trunk/Source/WebCore/ChangeLog 2022-02-11 12:05:38 UTC (rev 289616)
+++ trunk/Source/WebCore/ChangeLog 2022-02-11 12:47:17 UTC (rev 289617)
@@ -1,3 +1,15 @@
+2022-02-11 Antti Koivisto <[email protected]>
+
+ [CSS Container Queries] Implement container name matching
+ https://bugs.webkit.org/show_bug.cgi?id=236495
+
+ Reviewed by Tim Nguyen.
+
+ Find the right container to evaluate against.
+
+ * style/ContainerQueryEvaluator.cpp:
+ (WebCore::Style::ContainerQueryEvaluator::evaluate const):
+
2022-02-11 Tim Nguyen <[email protected]>
Add build phase to copy PDF.js resources to WebCore.framework resources
Modified: trunk/Source/WebCore/style/ContainerQueryEvaluator.cpp (289616 => 289617)
--- trunk/Source/WebCore/style/ContainerQueryEvaluator.cpp 2022-02-11 12:05:38 UTC (rev 289616)
+++ trunk/Source/WebCore/style/ContainerQueryEvaluator.cpp 2022-02-11 12:47:17 UTC (rev 289617)
@@ -64,8 +64,20 @@
if (m_containers.isEmpty())
return false;
- // FIXME: Match the container selector.
- auto* renderer = m_containers.last()->renderer();
+ auto rendererForContainerSelector = [&]() -> RenderBox* {
+ for (auto& container : makeReversedRange(m_containers)) {
+ auto* renderer = dynamicDowncast<RenderBox>(container->renderer());
+ if (!renderer)
+ return nullptr;
+ if (containerQuery.containerName.isEmpty())
+ return renderer;
+ if (renderer->style().containerNames().contains(containerQuery.containerName))
+ return renderer;
+ }
+ return nullptr;
+ };
+
+ auto* renderer = rendererForContainerSelector();
if (!renderer)
return false;
@@ -74,9 +86,6 @@
auto evaluateSize = [&](const MediaQueryExpression& _expression_, Comparator comparator, auto&& sizeGetter)
{
- if (!is<RenderBox>(renderer))
- return false;
-
std::optional<LayoutUnit> expressionSize;
if (comparator != Comparator::True) {
@@ -85,7 +94,7 @@
return false;
}
- auto size = sizeGetter(downcast<RenderBox>(*renderer));
+ auto size = sizeGetter(*renderer);
switch (comparator) {
case Comparator::Lesser:
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes