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