Title: [281229] trunk
Revision
281229
Author
n...@apple.com
Date
2021-08-19 02:02:02 -0700 (Thu, 19 Aug 2021)

Log Message

Implement ::backdrop pseudo element
https://bugs.webkit.org/show_bug.cgi?id=227801

Reviewed by Antti Koivisto.

This adds UA styles, RenderTreeBuilder support and WebInspector support for ::backdrop.
Some imported blink tests now start passing, some still need proper top layer support.

LayoutTests/imported/w3c:

* web-platform-tests/css/css-values/ch-empty-pseudo-recalc-on-font-load-expected.txt:

Source/_javascript_Core:

* inspector/protocol/CSS.json:

Source/WebCore:

* css/CSSSelector.cpp:
(WebCore::CSSSelector::pseudoId):
* css/CSSSelector.h:
* css/SelectorPseudoElementTypeMap.in:
* css/dialog.css:
(dialog::backdrop):
(::backdrop):
* inspector/agents/InspectorCSSAgent.cpp:
(WebCore::protocolValueForPseudoId):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::backdropRenderer const):
(WebCore::RenderElement::setBackdropRenderer):
* rendering/RenderElement.h:
* rendering/RenderObject.h:
* rendering/style/RenderStyleConstants.cpp:
(WebCore::operator<<):
* rendering/style/RenderStyleConstants.h:
* rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::destroyAndCleanUpAnonymousWrappers):
* rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::updateAfterDescendants):
* rendering/updating/RenderTreeUpdaterGeneratedContent.cpp:
(WebCore::RenderTreeUpdater::GeneratedContent::updateBackdropRenderer):
* rendering/updating/RenderTreeUpdaterGeneratedContent.h:
* style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::resolvePseudoStyle):

Source/WebInspectorUI:

* UserInterface/Controllers/CSSManager.js:
(WI.CSSManager.displayNameForPseudoId):

LayoutTests:

* TestExpectations:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (281228 => 281229)


--- trunk/LayoutTests/ChangeLog	2021-08-19 08:46:05 UTC (rev 281228)
+++ trunk/LayoutTests/ChangeLog	2021-08-19 09:02:02 UTC (rev 281229)
@@ -1,3 +1,15 @@
+2021-08-19  Tim Nguyen  <n...@apple.com>
+
+        Implement ::backdrop pseudo element
+        https://bugs.webkit.org/show_bug.cgi?id=227801
+
+        Reviewed by Antti Koivisto.
+
+        This adds UA styles, RenderTreeBuilder support and WebInspector support for ::backdrop.
+        Some imported blink tests now start passing, some still need proper top layer support.
+
+        * TestExpectations:
+
 2021-08-19  Fujii Hironori  <hironori.fu...@sony.com>
 
         [WinCairo] Unreviewed test gardening

Modified: trunk/LayoutTests/TestExpectations (281228 => 281229)


--- trunk/LayoutTests/TestExpectations	2021-08-19 08:46:05 UTC (rev 281228)
+++ trunk/LayoutTests/TestExpectations	2021-08-19 09:02:02 UTC (rev 281229)
@@ -2373,17 +2373,10 @@
 imported/blink/fast/multicol/outlines-at-column-boundaries.html [ ImageOnlyFailure ]
 fast/multicol/multicol-with-child-renderLayer-for-input.html [ ImageOnlyFailure ]
 
-# ::backdrop
-webkit.org/b/227801 imported/blink/dialog/backdrop-descendant-selector.html [ ImageOnlyFailure ]
-webkit.org/b/227801 imported/blink/dialog/backdrop-does-not-inherit.html [ ImageOnlyFailure ]
-webkit.org/b/227801 imported/blink/dialog/backdrop-dynamic-style-change.html [ ImageOnlyFailure ]
-webkit.org/b/227801 imported/blink/dialog/backdrop-in-flow.html [ ImageOnlyFailure ]
-webkit.org/b/227801 imported/blink/dialog/backdrop-stacking-order.html [ ImageOnlyFailure ]
-
 # Top layer tests
+webkit.org/b/84796 imported/blink/dialog/backdrop-in-flow.html [ ImageOnlyFailure ]
+webkit.org/b/84796 imported/blink/dialog/backdrop-stacking-order.html [ ImageOnlyFailure ]
 webkit.org/b/84796 imported/blink/dialog/dont-share-style-to-top-layer.html [ ImageOnlyFailure ]
-webkit.org/b/84796 imported/blink/dialog/modal-dialog-backdrop.html [ ImageOnlyFailure ]
-webkit.org/b/84796 imported/blink/dialog/modal-dialog-generated-content.html [ ImageOnlyFailure ]
 webkit.org/b/84796 imported/blink/dialog/modal-dialog-in-replaced-renderer.html [ ImageOnlyFailure ]
 webkit.org/b/84796 imported/blink/dialog/modal-dialog-in-table-column.html [ ImageOnlyFailure ]
 webkit.org/b/84796 imported/blink/dialog/removed-element-is-removed-from-top-layer.html [ ImageOnlyFailure ]

Modified: trunk/LayoutTests/imported/w3c/ChangeLog (281228 => 281229)


--- trunk/LayoutTests/imported/w3c/ChangeLog	2021-08-19 08:46:05 UTC (rev 281228)
+++ trunk/LayoutTests/imported/w3c/ChangeLog	2021-08-19 09:02:02 UTC (rev 281229)
@@ -1,3 +1,15 @@
+2021-08-19  Tim Nguyen  <n...@apple.com>
+
+        Implement ::backdrop pseudo element
+        https://bugs.webkit.org/show_bug.cgi?id=227801
+
+        Reviewed by Antti Koivisto.
+
+        This adds UA styles, RenderTreeBuilder support and WebInspector support for ::backdrop.
+        Some imported blink tests now start passing, some still need proper top layer support.
+
+        * web-platform-tests/css/css-values/ch-empty-pseudo-recalc-on-font-load-expected.txt:
+
 2021-08-19  Youenn Fablet  <you...@apple.com>
 
         Add support for RTCDtlsTransport

Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-values/ch-empty-pseudo-recalc-on-font-load-expected.txt (281228 => 281229)


--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-values/ch-empty-pseudo-recalc-on-font-load-expected.txt	2021-08-19 08:46:05 UTC (rev 281228)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-values/ch-empty-pseudo-recalc-on-font-load-expected.txt	2021-08-19 09:02:02 UTC (rev 281229)
@@ -1,5 +1,5 @@
 
-FAIL ch in pseudo-element ::before should be recalculated after loading a web font assert_less_than: expected a number less than 24 but got NaN
-FAIL ch in pseudo-element ::after should be recalculated after loading a web font assert_less_than: expected a number less than 24 but got NaN
-FAIL ch in pseudo-element ::backdrop should be recalculated after loading a web font assert_less_than: expected a number less than 24 but got NaN
+PASS ch in pseudo-element ::before should be recalculated after loading a web font
+PASS ch in pseudo-element ::after should be recalculated after loading a web font
+PASS ch in pseudo-element ::backdrop should be recalculated after loading a web font
 

Modified: trunk/Source/_javascript_Core/ChangeLog (281228 => 281229)


--- trunk/Source/_javascript_Core/ChangeLog	2021-08-19 08:46:05 UTC (rev 281228)
+++ trunk/Source/_javascript_Core/ChangeLog	2021-08-19 09:02:02 UTC (rev 281229)
@@ -1,3 +1,15 @@
+2021-08-19  Tim Nguyen  <n...@apple.com>
+
+        Implement ::backdrop pseudo element
+        https://bugs.webkit.org/show_bug.cgi?id=227801
+
+        Reviewed by Antti Koivisto.
+
+        This adds UA styles, RenderTreeBuilder support and WebInspector support for ::backdrop.
+        Some imported blink tests now start passing, some still need proper top layer support.
+
+        * inspector/protocol/CSS.json:
+
 2021-08-18  Yusuke Suzuki  <ysuz...@apple.com>
 
         [JSC] Remove op_has_indexed_property related code

Modified: trunk/Source/_javascript_Core/inspector/protocol/CSS.json (281228 => 281229)


--- trunk/Source/_javascript_Core/inspector/protocol/CSS.json	2021-08-19 08:46:05 UTC (rev 281228)
+++ trunk/Source/_javascript_Core/inspector/protocol/CSS.json	2021-08-19 09:02:02 UTC (rev 281229)
@@ -43,6 +43,7 @@
                 "before",
                 "after",
                 "selection",
+                "backdrop",
                 "scrollbar",
                 "scrollbar-thumb",
                 "scrollbar-button",

Modified: trunk/Source/WebCore/ChangeLog (281228 => 281229)


--- trunk/Source/WebCore/ChangeLog	2021-08-19 08:46:05 UTC (rev 281228)
+++ trunk/Source/WebCore/ChangeLog	2021-08-19 09:02:02 UTC (rev 281229)
@@ -1,3 +1,40 @@
+2021-08-19  Tim Nguyen  <n...@apple.com>
+
+        Implement ::backdrop pseudo element
+        https://bugs.webkit.org/show_bug.cgi?id=227801
+
+        Reviewed by Antti Koivisto.
+
+        This adds UA styles, RenderTreeBuilder support and WebInspector support for ::backdrop.
+        Some imported blink tests now start passing, some still need proper top layer support.
+
+        * css/CSSSelector.cpp:
+        (WebCore::CSSSelector::pseudoId):
+        * css/CSSSelector.h:
+        * css/SelectorPseudoElementTypeMap.in:
+        * css/dialog.css:
+        (dialog::backdrop):
+        (::backdrop):
+        * inspector/agents/InspectorCSSAgent.cpp:
+        (WebCore::protocolValueForPseudoId):
+        * rendering/RenderElement.cpp:
+        (WebCore::RenderElement::backdropRenderer const):
+        (WebCore::RenderElement::setBackdropRenderer):
+        * rendering/RenderElement.h:
+        * rendering/RenderObject.h:
+        * rendering/style/RenderStyleConstants.cpp:
+        (WebCore::operator<<):
+        * rendering/style/RenderStyleConstants.h:
+        * rendering/updating/RenderTreeBuilder.cpp:
+        (WebCore::RenderTreeBuilder::destroyAndCleanUpAnonymousWrappers):
+        * rendering/updating/RenderTreeUpdater.cpp:
+        (WebCore::RenderTreeUpdater::updateAfterDescendants):
+        * rendering/updating/RenderTreeUpdaterGeneratedContent.cpp:
+        (WebCore::RenderTreeUpdater::GeneratedContent::updateBackdropRenderer):
+        * rendering/updating/RenderTreeUpdaterGeneratedContent.h:
+        * style/StyleTreeResolver.cpp:
+        (WebCore::Style::TreeResolver::resolvePseudoStyle):
+
 2021-08-19  Carlos Garcia Campos  <cgar...@igalia.com>
 
         document.hasFocus() returns true for unfocused pages

Modified: trunk/Source/WebCore/css/CSSSelector.cpp (281228 => 281229)


--- trunk/Source/WebCore/css/CSSSelector.cpp	2021-08-19 08:46:05 UTC (rev 281228)
+++ trunk/Source/WebCore/css/CSSSelector.cpp	2021-08-19 09:02:02 UTC (rev 281229)
@@ -232,6 +232,8 @@
         return PseudoId::Highlight;
     case PseudoElementMarker:
         return PseudoId::Marker;
+    case PseudoElementBackdrop:
+        return PseudoId::Backdrop;
     case PseudoElementBefore:
         return PseudoId::Before;
     case PseudoElementAfter:

Modified: trunk/Source/WebCore/css/CSSSelector.h (281228 => 281229)


--- trunk/Source/WebCore/css/CSSSelector.h	2021-08-19 08:46:05 UTC (rev 281228)
+++ trunk/Source/WebCore/css/CSSSelector.h	2021-08-19 09:02:02 UTC (rev 281229)
@@ -180,6 +180,7 @@
         enum PseudoElementType {
             PseudoElementUnknown = 0,
             PseudoElementAfter,
+            PseudoElementBackdrop,
             PseudoElementBefore,
 #if ENABLE(VIDEO)
             PseudoElementCue,

Modified: trunk/Source/WebCore/css/SelectorPseudoElementTypeMap.in (281228 => 281229)


--- trunk/Source/WebCore/css/SelectorPseudoElementTypeMap.in	2021-08-19 08:46:05 UTC (rev 281228)
+++ trunk/Source/WebCore/css/SelectorPseudoElementTypeMap.in	2021-08-19 09:02:02 UTC (rev 281229)
@@ -1,4 +1,5 @@
 after
+backdrop
 before
 #if ENABLE(VIDEO)
 cue

Modified: trunk/Source/WebCore/css/dialog.css (281228 => 281229)


--- trunk/Source/WebCore/css/dialog.css	2021-08-19 08:46:05 UTC (rev 281228)
+++ trunk/Source/WebCore/css/dialog.css	2021-08-19 09:02:02 UTC (rev 281229)
@@ -24,3 +24,16 @@
     max-width: calc(100% - 6px - 2em);
     max-height: calc(100% - 6px - 2em);
 }
+
+dialog::backdrop {
+    background: rgba(0, 0, 0, 0.1);
+}
+
+::backdrop {
+    display: block;
+    position: fixed;
+    top: 0;
+    left: 0;
+    right: 0;
+    bottom: 0;
+}

Modified: trunk/Source/WebCore/inspector/agents/InspectorCSSAgent.cpp (281228 => 281229)


--- trunk/Source/WebCore/inspector/agents/InspectorCSSAgent.cpp	2021-08-19 08:46:05 UTC (rev 281228)
+++ trunk/Source/WebCore/inspector/agents/InspectorCSSAgent.cpp	2021-08-19 09:02:02 UTC (rev 281229)
@@ -449,6 +449,8 @@
         return Protocol::CSS::PseudoId::FirstLetter;
     case PseudoId::Marker:
         return Protocol::CSS::PseudoId::Marker;
+    case PseudoId::Backdrop:
+        return Protocol::CSS::PseudoId::Backdrop;
     case PseudoId::Before:
         return Protocol::CSS::PseudoId::Before;
     case PseudoId::After:

Modified: trunk/Source/WebCore/rendering/RenderElement.cpp (281228 => 281229)


--- trunk/Source/WebCore/rendering/RenderElement.cpp	2021-08-19 08:46:05 UTC (rev 281228)
+++ trunk/Source/WebCore/rendering/RenderElement.cpp	2021-08-19 09:02:02 UTC (rev 281229)
@@ -2375,4 +2375,14 @@
     return result;
 }
 
+WeakPtr<RenderBlockFlow> RenderElement::backdropRenderer() const
+{
+    return hasRareData() ? rareData().backdropRenderer : nullptr;
 }
+
+void RenderElement::setBackdropRenderer(RenderBlockFlow& renderer)
+{
+    ensureRareData().backdropRenderer = makeWeakPtr(renderer);
+}
+
+}

Modified: trunk/Source/WebCore/rendering/RenderElement.h (281228 => 281229)


--- trunk/Source/WebCore/rendering/RenderElement.h	2021-08-19 08:46:05 UTC (rev 281228)
+++ trunk/Source/WebCore/rendering/RenderElement.h	2021-08-19 09:02:02 UTC (rev 281229)
@@ -257,6 +257,9 @@
     virtual void suspendAnimations(MonotonicTime = MonotonicTime()) { }
     std::unique_ptr<RenderStyle> animatedStyle();
 
+    WeakPtr<RenderBlockFlow> backdropRenderer() const;
+    void setBackdropRenderer(RenderBlockFlow&);
+
 protected:
     enum BaseTypeFlag {
         RenderLayerModelObjectFlag  = 1 << 0,

Modified: trunk/Source/WebCore/rendering/RenderObject.h (281228 => 281229)


--- trunk/Source/WebCore/rendering/RenderObject.h	2021-08-19 08:46:05 UTC (rev 281228)
+++ trunk/Source/WebCore/rendering/RenderObject.h	2021-08-19 09:02:02 UTC (rev 281229)
@@ -59,6 +59,7 @@
 class RenderBoxModelObject;
 class RenderInline;
 class RenderBlock;
+class RenderBlockFlow;
 class RenderElement;
 class RenderFragmentedFlow;
 class RenderGeometryMap;
@@ -938,6 +939,7 @@
 
         // From RenderElement
         std::unique_ptr<RenderStyle> cachedFirstLineStyle;
+        WeakPtr<RenderBlockFlow> backdropRenderer;
     };
     
     const RenderObject::RenderObjectRareData& rareData() const;

Modified: trunk/Source/WebCore/rendering/style/RenderStyleConstants.cpp (281228 => 281229)


--- trunk/Source/WebCore/rendering/style/RenderStyleConstants.cpp	2021-08-19 08:46:05 UTC (rev 281228)
+++ trunk/Source/WebCore/rendering/style/RenderStyleConstants.cpp	2021-08-19 09:02:02 UTC (rev 281229)
@@ -887,6 +887,7 @@
     case PseudoId::FirstLetter: ts << "first-letter"; break;
     case PseudoId::Highlight: ts << "highlight"; break;
     case PseudoId::Marker: ts << "marker"; break;
+    case PseudoId::Backdrop: ts << "backdrop"; break;
     case PseudoId::Before: ts << "before"; break;
     case PseudoId::After: ts << "after"; break;
     case PseudoId::Selection: ts << "selection"; break;

Modified: trunk/Source/WebCore/rendering/style/RenderStyleConstants.h (281228 => 281229)


--- trunk/Source/WebCore/rendering/style/RenderStyleConstants.h	2021-08-19 08:46:05 UTC (rev 281228)
+++ trunk/Source/WebCore/rendering/style/RenderStyleConstants.h	2021-08-19 09:02:02 UTC (rev 281229)
@@ -95,6 +95,7 @@
     Before,
     After,
     Selection,
+    Backdrop,
     Scrollbar,
 
     // Internal:

Modified: trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp (281228 => 281229)


--- trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp	2021-08-19 08:46:05 UTC (rev 281228)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeBuilder.cpp	2021-08-19 09:02:02 UTC (rev 281229)
@@ -807,6 +807,12 @@
         return;
     }
 
+    // Also destroy ::backdrop along with element if there is one
+    if (is<RenderElement>(rendererToDestroy)) {
+        if (auto backdropRenderer = downcast<RenderElement>(rendererToDestroy).backdropRenderer())
+            destroy(*backdropRenderer);
+    }
+
     auto isAnonymousAndSafeToDelete = [] (const auto& renderer) {
         return renderer.isAnonymous() && !renderer.isRenderView() && !renderer.isRenderFragmentedFlow();
     };

Modified: trunk/Source/WebCore/rendering/updating/RenderTreeUpdater.cpp (281228 => 281229)


--- trunk/Source/WebCore/rendering/updating/RenderTreeUpdater.cpp	2021-08-19 08:46:05 UTC (rev 281228)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeUpdater.cpp	2021-08-19 09:02:02 UTC (rev 281229)
@@ -266,6 +266,7 @@
     if (!renderer)
         return;
 
+    generatedContent().updateBackdropRenderer(*renderer);
     m_builder.updateAfterDescendants(*renderer);
 
     if (element.hasCustomStyleResolveCallbacks() && updates && updates->update.change == Style::Change::Renderer)

Modified: trunk/Source/WebCore/rendering/updating/RenderTreeUpdaterGeneratedContent.cpp (281228 => 281229)


--- trunk/Source/WebCore/rendering/updating/RenderTreeUpdaterGeneratedContent.cpp	2021-08-19 08:46:05 UTC (rev 281228)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeUpdaterGeneratedContent.cpp	2021-08-19 09:02:02 UTC (rev 281229)
@@ -172,6 +172,45 @@
     m_updater.m_builder.updateAfterDescendants(*pseudoElementRenderer);
 }
 
+void RenderTreeUpdater::GeneratedContent::updateBackdropRenderer(RenderElement& renderer)
+{
+    // ::backdrop does not inherit style, hence using the view style as parent style
+    auto style = renderer.getCachedPseudoStyle(PseudoId::Backdrop, &renderer.view().style());
+
+    // Destroy ::backdrop if new element no longer is in top layer, or if it is hidden
+    if ((renderer.element() && !renderer.element()->isInTopLayer()) || !style || style->display() == DisplayType::None) {
+        if (WeakPtr backdropRenderer = renderer.backdropRenderer())
+            m_updater.m_builder.destroy(*backdropRenderer);
+        return;
+    }
+
+    auto newStyle = RenderStyle::clone(*style);
+    RenderPtr<RenderBlockFlow> newBackdropRenderer;
+    auto backdropRenderer = renderer.backdropRenderer();
+    if (backdropRenderer)
+        backdropRenderer->setStyle(WTFMove(newStyle));
+    else {
+        newBackdropRenderer = WebCore::createRenderer<RenderBlockFlow>(renderer.document(), WTFMove(newStyle));
+        newBackdropRenderer->initializeStyle();
+        backdropRenderer = makeWeakPtr(newBackdropRenderer.get());
+        renderer.setBackdropRenderer(*backdropRenderer);
+    }
+
+    // Update or attach to renderer parent
+    auto currentParent = makeWeakPtr(backdropRenderer->parent());
+    auto newParent = makeWeakPtr(renderer.parent());
+
+    ASSERT(newParent, "Should have new parent");
+
+    if (newParent == currentParent)
+        return;
+
+    if (currentParent)
+        m_updater.m_builder.attach(*newParent, m_updater.m_builder.detach(*currentParent, *backdropRenderer, RenderTreeBuilder::CanCollapseAnonymousBlock::No), &renderer);
+    else
+        m_updater.m_builder.attach(*newParent, WTFMove(newBackdropRenderer), &renderer);
+}
+
 bool RenderTreeUpdater::GeneratedContent::needsPseudoElement(const Style::ElementUpdate* update)
 {
     if (!update)

Modified: trunk/Source/WebCore/rendering/updating/RenderTreeUpdaterGeneratedContent.h (281228 => 281229)


--- trunk/Source/WebCore/rendering/updating/RenderTreeUpdaterGeneratedContent.h	2021-08-19 08:46:05 UTC (rev 281228)
+++ trunk/Source/WebCore/rendering/updating/RenderTreeUpdaterGeneratedContent.h	2021-08-19 09:02:02 UTC (rev 281229)
@@ -38,6 +38,7 @@
 public:
     GeneratedContent(RenderTreeUpdater&);
 
+    void updateBackdropRenderer(RenderElement&);
     void updatePseudoElement(Element&, const Style::ElementUpdates&, PseudoId);
     void updateRemainingQuotes();
 

Modified: trunk/Source/WebCore/style/StyleTreeResolver.cpp (281228 => 281229)


--- trunk/Source/WebCore/style/StyleTreeResolver.cpp	2021-08-19 08:46:05 UTC (rev 281228)
+++ trunk/Source/WebCore/style/StyleTreeResolver.cpp	2021-08-19 09:02:02 UTC (rev 281229)
@@ -275,6 +275,8 @@
 
 std::optional<ElementUpdate> TreeResolver::resolvePseudoStyle(Element& element, const ElementUpdate& elementUpdate, PseudoId pseudoId)
 {
+    ASSERT(pseudoId != PseudoId::Backdrop, "This method does not handle ::backdrop currently");
+
     if (pseudoId == PseudoId::Marker && elementUpdate.style->display() != DisplayType::ListItem)
         return { };
     if (elementUpdate.style->display() == DisplayType::None)
@@ -281,10 +283,10 @@
         return { };
     if (!elementUpdate.style->hasPseudoStyle(pseudoId))
         return { };
-    
+
     auto& parentStyle = *elementUpdate.style;
     auto* parentBoxStyle = parentBoxStyleForPseudo(elementUpdate);
-    
+
     auto pseudoStyle = scope().resolver->pseudoStyleForElement(element, { pseudoId }, parentStyle, parentBoxStyle, &scope().selectorFilter);
     if (!pseudoStyle)
         return { };

Modified: trunk/Source/WebInspectorUI/ChangeLog (281228 => 281229)


--- trunk/Source/WebInspectorUI/ChangeLog	2021-08-19 08:46:05 UTC (rev 281228)
+++ trunk/Source/WebInspectorUI/ChangeLog	2021-08-19 09:02:02 UTC (rev 281229)
@@ -1,3 +1,16 @@
+2021-08-19  Tim Nguyen  <n...@apple.com>
+
+        Implement ::backdrop pseudo element
+        https://bugs.webkit.org/show_bug.cgi?id=227801
+
+        Reviewed by Antti Koivisto.
+
+        This adds UA styles, RenderTreeBuilder support and WebInspector support for ::backdrop.
+        Some imported blink tests now start passing, some still need proper top layer support.
+
+        * UserInterface/Controllers/CSSManager.js:
+        (WI.CSSManager.displayNameForPseudoId):
+
 2021-08-17  Devin Rousso  <drou...@apple.com>
 
         Web Inspector: match the undocked tab bar style when docked bottom/side

Modified: trunk/Source/WebInspectorUI/UserInterface/Controllers/CSSManager.js (281228 => 281229)


--- trunk/Source/WebInspectorUI/UserInterface/Controllers/CSSManager.js	2021-08-19 08:46:05 UTC (rev 281228)
+++ trunk/Source/WebInspectorUI/UserInterface/Controllers/CSSManager.js	2021-08-19 09:02:02 UTC (rev 281229)
@@ -155,6 +155,8 @@
             return WI.unlocalizedString("::after");
         case CSSManager.PseudoSelectorNames.Selection:
             return WI.unlocalizedString("::selection");
+        case CSSManager.PseudoSelectorNames.Backdrop:
+            return WI.unlocalizedString("::backdrop");
         case CSSManager.PseudoSelectorNames.Scrollbar:
             return WI.unlocalizedString("::scrollbar");
         case CSSManager.PseudoSelectorNames.ScrollbarThumb:
@@ -684,6 +686,7 @@
 WI.CSSManager.PseudoSelectorNames = {
     After: "after",
     Before: "before",
+    Backdrop: "backdrop",
     FirstLetter: "first-letter",
     FirstLine: "first-line",
     Highlight: "highlight",
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to