diff --git a/LayoutTests/imported/w3c/ChangeLog b/LayoutTests/imported/w3c/ChangeLog
index 5b42c09..e818519 100644
--- a/LayoutTests/imported/w3c/ChangeLog
+++ b/LayoutTests/imported/w3c/ChangeLog
@@ -1,3 +1,15 @@
+2022-01-25  Antti Koivisto  <antti@apple.com>
+
+        [CSS Container Queries] Parsing support for container-name property
+        https://bugs.webkit.org/show_bug.cgi?id=235564
+
+        Reviewed by Dean Jackson.
+
+        * web-platform-tests/css/css-contain/container-queries/container-inheritance-expected.txt:
+        * web-platform-tests/css/css-contain/container-queries/container-name-computed-expected.txt:
+        * web-platform-tests/css/css-contain/container-queries/container-name-parsing-expected.txt:
+        * web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
+
 2022-01-25  Ziran Sun  <zsun@igalia.com>
 
         [css-grid] Fix grid shorthand expansion of initial values
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt
index 0748e77..0cefe67 100644
--- a/LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt
+++ b/LayoutTests/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt
@@ -97,6 +97,7 @@
 PASS column-span
 PASS column-width
 PASS contain
+PASS container-name
 PASS container-type
 PASS content
 PASS counter-increment
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-inheritance-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-inheritance-expected.txt
index 3f72cf6..3ce3267 100644
--- a/LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-inheritance-expected.txt
+++ b/LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-inheritance-expected.txt
@@ -1,6 +1,6 @@
 
-FAIL Property container-name has initial value none assert_true: container-name doesn't seem to be supported in the computed style expected true got false
-FAIL Property container-name does not inherit assert_true: expected true got false
+PASS Property container-name has initial value none
+PASS Property container-name does not inherit
 PASS Property container-type has initial value none
 PASS Property container-type does not inherit
 
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-name-computed-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-name-computed-expected.txt
index 0601e10..c0f3b0c 100644
--- a/LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-name-computed-expected.txt
+++ b/LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-name-computed-expected.txt
@@ -1,6 +1,6 @@
 
-FAIL Property container-name value 'initial' assert_true: container-name doesn't seem to be supported in the computed style expected true got false
-FAIL Property container-name value 'unset' assert_true: container-name doesn't seem to be supported in the computed style expected true got false
-FAIL Property container-name value 'foo' assert_true: container-name doesn't seem to be supported in the computed style expected true got false
-FAIL Property container-name value 'FoO' assert_true: container-name doesn't seem to be supported in the computed style expected true got false
+PASS Property container-name value 'initial'
+PASS Property container-name value 'unset'
+PASS Property container-name value 'foo'
+PASS Property container-name value 'FoO'
 
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-name-parsing-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-name-parsing-expected.txt
index 11c83a1..93eed90 100644
--- a/LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-name-parsing-expected.txt
+++ b/LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-name-parsing-expected.txt
@@ -1,12 +1,12 @@
 
-FAIL e.style['container-name'] = "initial" should set the property value assert_not_equals: property should be set got disallowed value ""
-FAIL e.style['container-name'] = "inherit" should set the property value assert_not_equals: property should be set got disallowed value ""
-FAIL e.style['container-name'] = "unset" should set the property value assert_not_equals: property should be set got disallowed value ""
-FAIL e.style['container-name'] = "revert" should set the property value assert_not_equals: property should be set got disallowed value ""
-FAIL e.style['container-name'] = "none" should set the property value assert_not_equals: property should be set got disallowed value ""
-FAIL e.style['container-name'] = "foo" should set the property value assert_not_equals: property should be set got disallowed value ""
-FAIL e.style['container-name'] = "BAR" should set the property value assert_not_equals: property should be set got disallowed value ""
-FAIL e.style['container-name'] = "foo bar" should set the property value assert_not_equals: property should be set got disallowed value ""
+PASS e.style['container-name'] = "initial" should set the property value
+PASS e.style['container-name'] = "inherit" should set the property value
+PASS e.style['container-name'] = "unset" should set the property value
+PASS e.style['container-name'] = "revert" should set the property value
+PASS e.style['container-name'] = "none" should set the property value
+PASS e.style['container-name'] = "foo" should set the property value
+PASS e.style['container-name'] = "BAR" should set the property value
+PASS e.style['container-name'] = "foo bar" should set the property value
 PASS e.style['container-name'] = "none none" should not set the property value
 PASS e.style['container-name'] = "foo, bar" should not set the property value
 PASS e.style['container-name'] = "#fff" should not set the property value
diff --git a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt
index 9c6c2d6..a2b849e 100644
--- a/LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt
+++ b/LayoutTests/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt
@@ -1,8 +1,8 @@
 
 PASS getComputedStyle returns no style for detached element
-FAIL getComputedStyle returns no style for element in non-rendered iframe (display: none) assert_equals: expected 0 but got 397
-FAIL getComputedStyle returns no style for element in non-rendered iframe (display: none) from iframe's window assert_equals: expected 0 but got 397
-FAIL getComputedStyle returns no style for element outside the flat tree assert_equals: expected 0 but got 397
-FAIL getComputedStyle returns no style for descendant outside the flat tree assert_equals: expected 0 but got 397
+FAIL getComputedStyle returns no style for element in non-rendered iframe (display: none) assert_equals: expected 0 but got 398
+FAIL getComputedStyle returns no style for element in non-rendered iframe (display: none) from iframe's window assert_equals: expected 0 but got 398
+FAIL getComputedStyle returns no style for element outside the flat tree assert_equals: expected 0 but got 398
+FAIL getComputedStyle returns no style for descendant outside the flat tree assert_equals: expected 0 but got 398
 PASS getComputedStyle returns no style for shadow tree outside of flattened tree
 
diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog
index 6b072e4..4094826 100644
--- a/Source/WebCore/ChangeLog
+++ b/Source/WebCore/ChangeLog
@@ -1,3 +1,34 @@
+2022-01-25  Antti Koivisto  <antti@apple.com>
+
+        [CSS Container Queries] Parsing support for container-name property
+        https://bugs.webkit.org/show_bug.cgi?id=235564
+
+        Reviewed by Dean Jackson.
+
+        Parse 'container-name' and map it to style.
+
+        https://drafts.csswg.org/css-contain-3/#container-name
+
+        * css/CSSComputedStyleDeclaration.cpp:
+        (WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
+        * css/CSSProperties.json:
+        * css/parser/CSSPropertyParser.cpp:
+        (WebCore::consumeContainerName):
+        (WebCore::CSSPropertyParser::parseSingleValue):
+        * rendering/style/RenderStyle.h:
+        (WebCore::RenderStyle::containerNames const):
+        (WebCore::RenderStyle::setContainerNames):
+        (WebCore::RenderStyle::initialContainerNames):
+
+        'container-name' is actually a list of names, that's why the plural.
+
+        * rendering/style/StyleRareNonInheritedData.cpp:
+        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
+        (WebCore::StyleRareNonInheritedData::operator== const):
+        * rendering/style/StyleRareNonInheritedData.h:
+        * style/StyleBuilderConverter.h:
+        (WebCore::Style::BuilderConverter::convertContainerName):
+
 2022-01-25  Sam Sneddon  <gsnedders@apple.com>
 
         Missing EnabledBySetting=WebXREnabled where Conditional=WEBXR exists
diff --git a/Source/WebCore/css/CSSComputedStyleDeclaration.cpp b/Source/WebCore/css/CSSComputedStyleDeclaration.cpp
index 6784778..15557ab 100644
--- a/Source/WebCore/css/CSSComputedStyleDeclaration.cpp
+++ b/Source/WebCore/css/CSSComputedStyleDeclaration.cpp
@@ -3627,6 +3627,14 @@
         }
         case CSSPropertyContainerType:
             return CSSPrimitiveValue::create(style.containerType());
+        case CSSPropertyContainerName: {
+            if (style.containerNames().isEmpty())
+                return cssValuePool.createIdentifierValue(CSSValueNone);
+            auto list = CSSValueList::createSpaceSeparated();
+            for (auto& name : style.containerNames())
+                list->append(cssValuePool.createCustomIdent(name));
+            return list;
+        }
         case CSSPropertyBackfaceVisibility:
             return cssValuePool.createIdentifierValue((style.backfaceVisibility() == BackfaceVisibility::Hidden) ? CSSValueHidden : CSSValueVisible);
         case CSSPropertyWebkitBorderImage:
diff --git a/Source/WebCore/css/CSSProperties.json b/Source/WebCore/css/CSSProperties.json
index a3fae27..1fd441b 100644
--- a/Source/WebCore/css/CSSProperties.json
+++ b/Source/WebCore/css/CSSProperties.json
@@ -5221,6 +5221,20 @@
                 "url": "https://drafts.csswg.org/css-contain-1/"
             }
         },
+        "container-name": {
+            "codegen-properties": {
+                "settings-flag": "cssContainerQueriesEnabled",
+                "converter": "ContainerName",
+                "name-for-methods": "ContainerNames"
+            },
+            "status": {
+                "status": "experimental"
+            },
+            "specification": {
+                "category": "css-contain",
+                "url": "https://drafts.csswg.org/css-contain-3/#container-queries"
+            }
+        },
         "container-type": {
             "codegen-properties": {
                 "settings-flag": "cssContainerQueriesEnabled"
diff --git a/Source/WebCore/css/parser/CSSPropertyParser.cpp b/Source/WebCore/css/parser/CSSPropertyParser.cpp
index 7dc1a2e..28ed1b2 100644
--- a/Source/WebCore/css/parser/CSSPropertyParser.cpp
+++ b/Source/WebCore/css/parser/CSSPropertyParser.cpp
@@ -3801,6 +3801,32 @@
     return consumeCustomIdent(range);
 }
 
+static RefPtr<CSSValue> consumeContainerName(CSSParserTokenRange& range)
+{
+    if (range.peek().id() == CSSValueNone)
+        return consumeIdent(range);
+
+    auto consumeName = [&]() -> RefPtr<CSSValue> {
+        if (range.peek().id() == CSSValueNone)
+            return nullptr;
+        if (auto ident = consumeCustomIdent(range))
+            return ident;
+        if (auto string = consumeString(range))
+            return string;
+        return nullptr;
+    };
+
+    auto list = CSSValueList::createSpaceSeparated();
+    do {
+        auto name = consumeName();
+        if (!name)
+            return nullptr;
+        list->append(name.releaseNonNull());
+    } while (!range.atEnd());
+
+    return list;
+}
+
 static RefPtr<CSSValue> consumeInitialLetter(CSSParserTokenRange& range)
 {
     RefPtr<CSSValue> ident = consumeIdent<CSSValueNormal>(range);
@@ -4654,6 +4680,8 @@
     case CSSPropertyListStyleType:
         // All the keyword values for the list-style-type property are handled by the CSSParserFastPaths.
         return consumeString(m_range);
+    case CSSPropertyContainerName:
+        return consumeContainerName(m_range);
     default:
         return nullptr;
     }
diff --git a/Source/WebCore/rendering/style/RenderStyle.h b/Source/WebCore/rendering/style/RenderStyle.h
index 4f2135e..7324469 100644
--- a/Source/WebCore/rendering/style/RenderStyle.h
+++ b/Source/WebCore/rendering/style/RenderStyle.h
@@ -533,6 +533,7 @@
     bool containsStyle() const { return m_rareNonInheritedData->contain.contains(Containment::Style); }
     bool containsPaint() const { return m_rareNonInheritedData->contain.contains(Containment::Paint); }
     ContainerType containerType() const { return static_cast<ContainerType>(m_rareNonInheritedData->containerType); }
+    const Vector<AtomString>& containerNames() const { return m_rareNonInheritedData->containerNames; }
     BoxAlignment boxAlign() const { return static_cast<BoxAlignment>(m_rareNonInheritedData->deprecatedFlexibleBox->align); }
     BoxDirection boxDirection() const { return static_cast<BoxDirection>(m_inheritedFlags.boxDirection); }
     float boxFlex() const { return m_rareNonInheritedData->deprecatedFlexibleBox->flex; }
@@ -1059,6 +1060,7 @@
 
     void setContain(OptionSet<Containment> containment) { SET_VAR(m_rareNonInheritedData, contain, containment); }
     void setContainerType(ContainerType containerType) { SET_VAR(m_rareNonInheritedData, containerType, static_cast<unsigned>(containerType)); }
+    void setContainerNames(const Vector<AtomString>& names) { SET_VAR(m_rareNonInheritedData, containerNames, names); }
 
     void setListStyleStringValue(const AtomString& value) { SET_VAR(m_rareInheritedData, listStyleStringValue, value); }
     void setListStyleType(ListStyleType v) { m_inheritedFlags.listStyleType = static_cast<unsigned>(v); }
@@ -1674,6 +1676,7 @@
     static OptionSet<Containment> strictContainment() { return OptionSet<Containment> { Containment::Size, Containment::Layout, Containment::Paint, Containment::Style }; }
     static OptionSet<Containment> contentContainment() { return OptionSet<Containment> { Containment::Layout, Containment::Paint, Containment::Style }; }
     static ContainerType initialContainerType() { return ContainerType::None; }
+    static Vector<AtomString> initialContainerNames() { return { }; }
     static double initialAspectRatioWidth() { return 1.0; }
     static double initialAspectRatioHeight() { return 1.0; }
     static Order initialRTLOrdering() { return Order::Logical; }
diff --git a/Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp b/Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp
index aaae2e9..19249ef 100644
--- a/Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp
+++ b/Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp
@@ -216,6 +216,7 @@
     , hasAttrContent(o.hasAttrContent)
     , isNotFinal(o.isNotFinal)
     , containerType(o.containerType)
+    , containerNames(o.containerNames)
     , columnGap(o.columnGap)
     , rowGap(o.rowGap)
     , offsetDistance(o.offsetDistance)
@@ -328,6 +329,7 @@
         && hasAttrContent == o.hasAttrContent
         && isNotFinal == o.isNotFinal
         && containerType == o.containerType
+        && containerNames == o.containerNames
         && columnGap == o.columnGap
         && rowGap == o.rowGap
         && offsetDistance == o.offsetDistance
diff --git a/Source/WebCore/rendering/style/StyleRareNonInheritedData.h b/Source/WebCore/rendering/style/StyleRareNonInheritedData.h
index 2e62c09..ca157f8 100644
--- a/Source/WebCore/rendering/style/StyleRareNonInheritedData.h
+++ b/Source/WebCore/rendering/style/StyleRareNonInheritedData.h
@@ -235,6 +235,8 @@
 
     unsigned containerType : 2; // ContainerType
 
+    Vector<AtomString> containerNames;
+
     GapLength columnGap;
     GapLength rowGap;
 
diff --git a/Source/WebCore/style/StyleBuilderConverter.h b/Source/WebCore/style/StyleBuilderConverter.h
index fb9c548..0f90bc2 100644
--- a/Source/WebCore/style/StyleBuilderConverter.h
+++ b/Source/WebCore/style/StyleBuilderConverter.h
@@ -172,6 +172,7 @@
     static GapLength convertGapLength(BuilderState&, const CSSValue&);
 
     static OffsetRotation convertOffsetRotate(BuilderState&, const CSSValue&);
+    static Vector<AtomString> convertContainerName(BuilderState&, const CSSValue&);
     
 private:
     friend class BuilderCustom;
@@ -1675,5 +1676,20 @@
     return OffsetRotation(hasAuto, angleInDegrees);
 }
 
+inline Vector<AtomString> BuilderConverter::convertContainerName(BuilderState&, const CSSValue& value)
+{
+    if (is<CSSPrimitiveValue>(value)) {
+        ASSERT(downcast<CSSPrimitiveValue>(value).valueID() == CSSValueNone);
+        return { };
+    }
+
+    Vector<AtomString> result;
+    if (is<CSSValueList>(value)) {
+        for (auto& item : downcast<CSSValueList>(value))
+            result.append(downcast<CSSPrimitiveValue>(item.get()).stringValue());
+    }
+    return result;
+}
+
 }
 }
