Title: [294728] trunk/Source/WebCore
Revision
294728
Author
[email protected]
Date
2022-05-23 22:09:52 -0700 (Mon, 23 May 2022)

Log Message

Remove RenderSliderThumb
https://bugs.webkit.org/show_bug.cgi?id=240794

Reviewed by Antti Koivisto.

Test: imported/w3c/web-platform-tests/css/css-ui/appearance-cssom-001.html

* Source/WebCore/html/shadow/SliderThumbElement.cpp:
(WebCore::SliderThumbElement::resolveCustomStyle):
(WebCore::SliderContainerElement::resolveCustomStyle):
(WebCore::RenderSliderThumb::RenderSliderThumb): Deleted.
(WebCore::RenderSliderThumb::updateAppearance): Deleted.
(WebCore::RenderSliderThumb::isSliderThumb const): Deleted.
(WebCore::SliderThumbElement::createElementRenderer): Deleted.
* Source/WebCore/html/shadow/SliderThumbElement.h:
* Source/WebCore/rendering/RenderObject.h:
(WebCore::RenderObject::isSlider const):
(WebCore::RenderObject::isSliderThumb const): Deleted.
* Source/WebCore/rendering/RenderSlider.cpp:
(WebCore::RenderSlider::layout): Deleted.
* Source/WebCore/rendering/RenderSlider.h:

Canonical link: https://commits.webkit.org/250906@main

Modified Paths

Diff

Modified: trunk/Source/WebCore/html/shadow/SliderThumbElement.cpp (294727 => 294728)


--- trunk/Source/WebCore/html/shadow/SliderThumbElement.cpp	2022-05-24 04:09:57 UTC (rev 294727)
+++ trunk/Source/WebCore/html/shadow/SliderThumbElement.cpp	2022-05-24 05:09:52 UTC (rev 294728)
@@ -63,7 +63,6 @@
 
 WTF_MAKE_ISO_ALLOCATED_IMPL(SliderThumbElement);
 WTF_MAKE_ISO_ALLOCATED_IMPL(SliderContainerElement);
-WTF_MAKE_ISO_ALLOCATED_IMPL(RenderSliderThumb);
 
 inline static Decimal sliderPosition(HTMLInputElement& element)
 {
@@ -87,36 +86,6 @@
 
 // --------------------------------
 
-RenderSliderThumb::RenderSliderThumb(SliderThumbElement& element, RenderStyle&& style)
-    : RenderBlockFlow(element, WTFMove(style))
-{
-}
-
-void RenderSliderThumb::updateAppearance(const RenderStyle* parentStyle)
-{
-    if (parentStyle->effectiveAppearance() == SliderVerticalPart)
-        mutableStyle().setEffectiveAppearance(SliderThumbVerticalPart);
-    else if (parentStyle->effectiveAppearance() == SliderHorizontalPart)
-        mutableStyle().setEffectiveAppearance(SliderThumbHorizontalPart);
-    else if (parentStyle->effectiveAppearance() == MediaSliderPart)
-        mutableStyle().setEffectiveAppearance(MediaSliderThumbPart);
-    else if (parentStyle->effectiveAppearance() == MediaVolumeSliderPart)
-        mutableStyle().setEffectiveAppearance(MediaVolumeSliderThumbPart);
-    else if (parentStyle->effectiveAppearance() == MediaFullScreenVolumeSliderPart)
-        mutableStyle().setEffectiveAppearance(MediaFullScreenVolumeSliderThumbPart);
-    if (style().hasEffectiveAppearance()) {
-        ASSERT(element());
-        theme().adjustSliderThumbSize(mutableStyle(), element());
-    }
-}
-
-bool RenderSliderThumb::isSliderThumb() const
-{
-    return true;
-}
-
-// --------------------------------
-
 // FIXME: Find a way to cascade appearance and adjust heights, and get rid of this class.
 // http://webkit.org/b/62535
 class RenderSliderContainer final : public RenderFlexibleBox {
@@ -223,11 +192,6 @@
         renderer()->setNeedsLayout();
 }
 
-RenderPtr<RenderElement> SliderThumbElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&)
-{
-    return createRenderer<RenderSliderThumb>(*this, WTFMove(style));
-}
-
 bool SliderThumbElement::isDisabledFormControl() const
 {
     auto input = hostInput();
@@ -586,10 +550,8 @@
     return downcast<HTMLInputElement>(shadowHost());
 }
 
-std::optional<Style::ElementStyle> SliderThumbElement::resolveCustomStyle(const Style::ResolutionContext&, const RenderStyle* hostStyle)
+std::optional<Style::ElementStyle> SliderThumbElement::resolveCustomStyle(const Style::ResolutionContext& resolutionContext, const RenderStyle* hostStyle)
 {
-    // This doesn't actually compute style. This is just a hack to pick shadow pseudo id when host style is known.
-
     if (!hostStyle)
         return std::nullopt;
 
@@ -601,9 +563,31 @@
         break;
     default:
         m_shadowPseudoId = ShadowPseudoIds::webkitSliderThumb();
+        break;
     }
 
-    return std::nullopt;
+    auto elementStyle = resolveStyle(resolutionContext);
+    switch (hostStyle->effectiveAppearance()) {
+    case MediaSliderPart:
+        elementStyle.renderStyle->setEffectiveAppearance(MediaSliderThumbPart);
+        break;
+    case MediaVolumeSliderPart:
+        elementStyle.renderStyle->setEffectiveAppearance(MediaVolumeSliderThumbPart);
+        break;
+    case MediaFullScreenVolumeSliderPart:
+        elementStyle.renderStyle->setEffectiveAppearance(MediaFullScreenVolumeSliderThumbPart);
+        break;
+    case SliderVerticalPart:
+        elementStyle.renderStyle->setEffectiveAppearance(SliderThumbVerticalPart);
+        break;
+    case SliderHorizontalPart:
+        elementStyle.renderStyle->setEffectiveAppearance(SliderThumbHorizontalPart);
+        break;
+    default:
+        break;
+    }
+
+    return elementStyle;
 }
 
 const AtomString& SliderThumbElement::shadowPseudoId() const

Modified: trunk/Source/WebCore/html/shadow/SliderThumbElement.h (294727 => 294728)


--- trunk/Source/WebCore/html/shadow/SliderThumbElement.h	2022-05-24 04:09:57 UTC (rev 294727)
+++ trunk/Source/WebCore/html/shadow/SliderThumbElement.h	2022-05-24 05:09:52 UTC (rev 294728)
@@ -59,8 +59,6 @@
 private:
     SliderThumbElement(Document&);
 
-    RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) final;
-
     Ref<Element> cloneElementWithoutAttributesAndChildren(Document&) final;
     bool isDisabledFormControl() const final;
     bool matchesReadWritePseudoClass() const final;
@@ -114,18 +112,6 @@
 
 // --------------------------------
 
-class RenderSliderThumb final : public RenderBlockFlow {
-    WTF_MAKE_ISO_ALLOCATED(RenderSliderThumb);
-public:
-    RenderSliderThumb(SliderThumbElement&, RenderStyle&&);
-    void updateAppearance(const RenderStyle* parentStyle);
-
-private:
-    bool isSliderThumb() const final;
-};
-
-// --------------------------------
-
 class SliderContainerElement final : public HTMLDivElement {
     WTF_MAKE_ISO_ALLOCATED(SliderContainerElement);
 public:

Modified: trunk/Source/WebCore/rendering/RenderObject.h (294727 => 294728)


--- trunk/Source/WebCore/rendering/RenderObject.h	2022-05-24 04:09:57 UTC (rev 294727)
+++ trunk/Source/WebCore/rendering/RenderObject.h	2022-05-24 05:09:52 UTC (rev 294728)
@@ -240,7 +240,6 @@
     virtual bool isRubyText() const { return false; }
 
     virtual bool isSlider() const { return false; }
-    virtual bool isSliderThumb() const { return false; }
     virtual bool isTable() const { return false; }
     virtual bool isTableCell() const { return false; }
     virtual bool isRenderTableCol() const { return false; }

Modified: trunk/Source/WebCore/rendering/RenderSlider.cpp (294727 => 294728)


--- trunk/Source/WebCore/rendering/RenderSlider.cpp	2022-05-24 04:09:57 UTC (rev 294727)
+++ trunk/Source/WebCore/rendering/RenderSlider.cpp	2022-05-24 05:09:52 UTC (rev 294728)
@@ -91,18 +91,6 @@
     setPreferredLogicalWidthsDirty(false); 
 }
 
-void RenderSlider::layout()
-{
-    StackStats::LayoutCheckPoint layoutCheckPoint;
-
-    // FIXME: Find a way to cascade appearance. http://webkit.org/b/62535
-    RenderBox* thumbBox = element().sliderThumbElement()->renderBox();
-    if (thumbBox && thumbBox->isSliderThumb())
-        static_cast<RenderSliderThumb*>(thumbBox)->updateAppearance(&style());
-
-    RenderFlexibleBox::layout();
-}
-
 bool RenderSlider::inDragMode() const
 {
     return element().sliderThumbElement()->active();

Modified: trunk/Source/WebCore/rendering/RenderSlider.h (294727 => 294728)


--- trunk/Source/WebCore/rendering/RenderSlider.h	2022-05-24 04:09:57 UTC (rev 294727)
+++ trunk/Source/WebCore/rendering/RenderSlider.h	2022-05-24 05:09:52 UTC (rev 294728)
@@ -48,7 +48,6 @@
     LayoutUnit baselinePosition(FontBaseline, bool firstLine, LineDirectionMode, LinePositionMode = PositionOnContainingLine) const override;
     void computeIntrinsicLogicalWidths(LayoutUnit& minLogicalWidth, LayoutUnit& maxLogicalWidth) const override;
     void computePreferredLogicalWidths() override;
-    void layout() override;
 
     bool isFlexibleBoxImpl() const override { return true; }
 };
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to