Diff
Modified: trunk/Source/WebCore/ChangeLog (271584 => 271585)
--- trunk/Source/WebCore/ChangeLog 2021-01-18 20:26:24 UTC (rev 271584)
+++ trunk/Source/WebCore/ChangeLog 2021-01-18 21:11:57 UTC (rev 271585)
@@ -1,3 +1,30 @@
+2021-01-18 Nikolas Zimmermann <[email protected]>
+
+ Remove recently added glue code: RenderLayer::(setAdjustForIOSCaretWhenScrolling / setScrollShouldClearLatchedState / setConstrainsScrollingToContentEdge)
+ https://bugs.webkit.org/show_bug.cgi?id=220708
+
+ Reviewed by Adrian Perez de Castro.
+
+ Follow-up on patch adressing the removal of the glue code that
+ forwards calls from RenderLayer to RenderLayerScrollableArea (see
+ webkit.org/b/60305).
+
+ Covered by existing tests.
+
+ * dom/Element.cpp:
+ (WebCore::Element::setScrollLeft):
+ (WebCore::Element::setScrollTop):
+ * editing/FrameSelection.cpp:
+ (WebCore::FrameSelection::revealSelection):
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::scroll):
+ (WebCore::RenderLayer::setAdjustForIOSCaretWhenScrolling): Deleted.
+ (WebCore::RenderLayer::setScrollShouldClearLatchedState): Deleted.
+ (WebCore::RenderLayer::setConstrainsScrollingToContentEdge): Deleted.
+ * rendering/RenderLayer.h:
+ * rendering/RenderMarquee.cpp:
+ (WebCore::RenderMarquee::RenderMarquee):
+
2021-01-18 Antti Koivisto <[email protected]>
Optimize :hover/:active style invalidation for deep trees and descendant selectors
Modified: trunk/Source/WebCore/dom/Element.cpp (271584 => 271585)
--- trunk/Source/WebCore/dom/Element.cpp 2021-01-18 20:26:24 UTC (rev 271584)
+++ trunk/Source/WebCore/dom/Element.cpp 2021-01-18 21:11:57 UTC (rev 271585)
@@ -92,6 +92,7 @@
#include "RenderLayer.h"
#include "RenderLayerBacking.h"
#include "RenderLayerCompositor.h"
+#include "RenderLayerScrollableArea.h"
#include "RenderListBox.h"
#include "RenderTheme.h"
#include "RenderTreeUpdater.h"
@@ -1336,7 +1337,7 @@
if (auto* renderer = renderBox()) {
int clampedLeft = clampToInteger(newLeft * renderer->style().effectiveZoom());
renderer->setScrollLeft(clampedLeft, options);
- if (auto* scrollableArea = renderer->layer())
+ if (auto* scrollableArea = renderer->layer() ? renderer->layer()->scrollableArea() : nullptr)
scrollableArea->setScrollShouldClearLatchedState(true);
}
}
@@ -1359,7 +1360,7 @@
if (auto* renderer = renderBox()) {
int clampedTop = clampToInteger(newTop * renderer->style().effectiveZoom());
renderer->setScrollTop(clampedTop, options);
- if (auto* scrollableArea = renderer->layer())
+ if (auto* scrollableArea = renderer->layer() ? renderer->layer()->scrollableArea() : nullptr)
scrollableArea->setScrollShouldClearLatchedState(true);
}
}
Modified: trunk/Source/WebCore/editing/FrameSelection.cpp (271584 => 271585)
--- trunk/Source/WebCore/editing/FrameSelection.cpp 2021-01-18 20:26:24 UTC (rev 271584)
+++ trunk/Source/WebCore/editing/FrameSelection.cpp 2021-01-18 21:11:57 UTC (rev 271585)
@@ -58,6 +58,7 @@
#include "Page.h"
#include "Range.h"
#include "RenderLayer.h"
+#include "RenderLayerScrollableArea.h"
#include "RenderText.h"
#include "RenderTextControl.h"
#include "RenderTheme.h"
@@ -2391,9 +2392,10 @@
#if PLATFORM(IOS_FAMILY)
if (RenderLayer* layer = start.deprecatedNode()->renderer()->enclosingLayer()) {
if (!m_scrollingSuppressCount) {
- layer->setAdjustForIOSCaretWhenScrolling(true);
+ auto* scrollableLayer = layer->ensureLayerScrollableArea();
+ scrollableLayer->setAdjustForIOSCaretWhenScrolling(true);
layer->scrollRectToVisible(rect, insideFixed, { revealMode, alignment, alignment, ShouldAllowCrossOriginScrolling::Yes });
- layer->setAdjustForIOSCaretWhenScrolling(false);
+ scrollableLayer->setAdjustForIOSCaretWhenScrolling(false);
updateAppearance();
if (m_document->page())
m_document->page()->chrome().client().notifyRevealedSelectionByScrollingFrame(*m_document->frame());
Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (271584 => 271585)
--- trunk/Source/WebCore/rendering/RenderLayer.cpp 2021-01-18 20:26:24 UTC (rev 271584)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp 2021-01-18 21:11:57 UTC (rev 271585)
@@ -422,19 +422,6 @@
m_scrollableArea->setRequiresScrollPositionReconciliation(requiresReconciliation);
}
-#if PLATFORM(IOS_FAMILY)
-void RenderLayer::setAdjustForIOSCaretWhenScrolling(bool adjustForIOSCaretWhenScrolling)
-{
- ensureLayerScrollableArea()->setAdjustForIOSCaretWhenScrolling(adjustForIOSCaretWhenScrolling);
-}
-#endif
-
-void RenderLayer::setScrollShouldClearLatchedState(bool shouldClear)
-{
- if (m_scrollableArea)
- m_scrollableArea->setScrollShouldClearLatchedState(shouldClear);
-}
-
bool RenderLayer::shouldPlaceBlockDirectionScrollbarOnLeft() const
{
return renderer().shouldPlaceBlockDirectionScrollbarOnLeft();
@@ -605,12 +592,6 @@
{
return ensureLayerScrollableArea()->scroll(direction, granularity, multiplier);
}
-
-void RenderLayer::setConstrainsScrollingToContentEdge(bool constrainsScrollingToContentEdge)
-{
- if (m_scrollableArea)
- m_scrollableArea->setConstrainsScrollingToContentEdge(constrainsScrollingToContentEdge);
-}
// End of temporary glue code
void RenderLayer::addChild(RenderLayer& child, RenderLayer* beforeChild)
Modified: trunk/Source/WebCore/rendering/RenderLayer.h (271584 => 271585)
--- trunk/Source/WebCore/rendering/RenderLayer.h 2021-01-18 20:26:24 UTC (rev 271584)
+++ trunk/Source/WebCore/rendering/RenderLayer.h 2021-01-18 21:11:57 UTC (rev 271585)
@@ -168,10 +168,6 @@
void setScrollPosition(const ScrollPosition&, const ScrollPositionChangeOptions&);
void scrollByRecursively(const IntSize& delta, ScrollableArea** scrolledArea = nullptr);
void setRequiresScrollPositionReconciliation(bool requiresReconciliation = true);
-#if PLATFORM(IOS_FAMILY)
- WEBCORE_EXPORT void setAdjustForIOSCaretWhenScrolling(bool);
-#endif
- void setScrollShouldClearLatchedState(bool);
bool shouldPlaceBlockDirectionScrollbarOnLeft() const;
bool containsDirtyOverlayScrollbars() const;
bool hasScrollableOrRubberbandableAncestor();
@@ -201,7 +197,6 @@
int verticalScrollbarWidth(OverlayScrollbarSizeRelevancy = IgnoreOverlayScrollbarSize) const;
int horizontalScrollbarHeight(OverlayScrollbarSizeRelevancy = IgnoreOverlayScrollbarSize) const;
bool scroll(ScrollDirection, ScrollGranularity, float multiplier = 1);
- void setConstrainsScrollingToContentEdge(bool);
// End of temporary glue code
#if PLATFORM(IOS_FAMILY)
Modified: trunk/Source/WebCore/rendering/RenderMarquee.cpp (271584 => 271585)
--- trunk/Source/WebCore/rendering/RenderMarquee.cpp 2021-01-18 20:26:24 UTC (rev 271584)
+++ trunk/Source/WebCore/rendering/RenderMarquee.cpp 2021-01-18 21:11:57 UTC (rev 271585)
@@ -61,7 +61,9 @@
: m_layer(layer)
, m_timer(*this, &RenderMarquee::timerFired)
{
- layer->setConstrainsScrollingToContentEdge(false);
+ ASSERT(layer);
+ ASSERT(layer->scrollableArea());
+ layer->scrollableArea()->setConstrainsScrollingToContentEdge(false);
}
RenderMarquee::~RenderMarquee() = default;
Modified: trunk/Source/WebKitLegacy/mac/ChangeLog (271584 => 271585)
--- trunk/Source/WebKitLegacy/mac/ChangeLog 2021-01-18 20:26:24 UTC (rev 271584)
+++ trunk/Source/WebKitLegacy/mac/ChangeLog 2021-01-18 21:11:57 UTC (rev 271585)
@@ -1,5 +1,24 @@
2021-01-18 Nikolas Zimmermann <[email protected]>
+ Remove recently added glue code: RenderLayer::(setAdjustForIOSCaretWhenScrolling / setScrollShouldClearLatchedState / setConstrainsScrollingToContentEdge)
+ https://bugs.webkit.org/show_bug.cgi?id=220708
+
+ Reviewed by Adrian Perez de Castro.
+
+ Follow-up on patch adressing the removal of the glue code that
+ forwards calls from RenderLayer to RenderLayerScrollableArea (see
+ webkit.org/b/60305).
+
+ Covered by existing tests.
+
+ * DOM/DOMHTML.mm:
+ (-[DOMHTMLElement setScrollXOffset:scrollYOffset:adjustForIOSCaret:]):
+ * WebView/WebFrame.mm:
+ (-[WebFrame _scrollDOMRangeToVisible:]):
+ (-[WebFrame _scrollDOMRangeToVisible:withInset:]):
+
+2021-01-18 Nikolas Zimmermann <[email protected]>
+
Remove recently added glue code: RenderLayer::(scrollToOffset / scrollToXOffset / scrollToYOffset)
https://bugs.webkit.org/show_bug.cgi?id=220705
Modified: trunk/Source/WebKitLegacy/mac/DOM/DOMHTML.mm (271584 => 271585)
--- trunk/Source/WebKitLegacy/mac/DOM/DOMHTML.mm 2021-01-18 20:26:24 UTC (rev 271584)
+++ trunk/Source/WebKitLegacy/mac/DOM/DOMHTML.mm 2021-01-18 21:11:57 UTC (rev 271585)
@@ -117,13 +117,13 @@
auto* scrollableLayer = layer->ensureLayerScrollableArea();
if (adjustForIOSCaret)
- layer->setAdjustForIOSCaretWhenScrolling(true);
+ scrollableLayer->setAdjustForIOSCaretWhenScrolling(true);
auto scrollPositionChangeOptions = WebCore::ScrollPositionChangeOptions::createProgrammatic();
scrollPositionChangeOptions.clamping = WebCore::ScrollClamping::Unclamped;
scrollableLayer->scrollToOffset(WebCore::ScrollOffset(x, y), scrollPositionChangeOptions);
if (adjustForIOSCaret)
- layer->setAdjustForIOSCaretWhenScrolling(false);
+ scrollableLayer->setAdjustForIOSCaretWhenScrolling(false);
}
- (void)absolutePosition:(int *)x :(int *)y :(int *)w :(int *)h
Modified: trunk/Source/WebKitLegacy/mac/WebView/WebFrame.mm (271584 => 271585)
--- trunk/Source/WebKitLegacy/mac/WebView/WebFrame.mm 2021-01-18 20:26:24 UTC (rev 271584)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebFrame.mm 2021-01-18 21:11:57 UTC (rev 271585)
@@ -95,6 +95,7 @@
#import <WebCore/PrintContext.h>
#import <WebCore/Range.h>
#import <WebCore/RenderLayer.h>
+#import <WebCore/RenderLayerScrollableArea.h>
#import <WebCore/RenderView.h>
#import <WebCore/RenderWidget.h>
#import <WebCore/RenderedDocumentMarker.h>
@@ -741,9 +742,10 @@
#else
auto* layer = startNode->renderer()->enclosingLayer();
if (layer) {
- layer->setAdjustForIOSCaretWhenScrolling(true);
+ auto* scrollableLayer = layer->ensureLayerScrollableArea();
+ scrollableLayer->setAdjustForIOSCaretWhenScrolling(true);
startNode->renderer()->scrollRectToVisible(WebCore::enclosingIntRect(rangeRect), insideFixed, { WebCore::SelectionRevealMode::Reveal, WebCore::ScrollAlignment::alignToEdgeIfNeeded, WebCore::ScrollAlignment::alignToEdgeIfNeeded, WebCore::ShouldAllowCrossOriginScrolling::Yes });
- layer->setAdjustForIOSCaretWhenScrolling(false);
+ scrollableLayer->setAdjustForIOSCaretWhenScrolling(false);
_private->coreFrame->selection().setCaretRectNeedsUpdate();
_private->coreFrame->selection().updateAppearance();
}
@@ -761,9 +763,10 @@
if (startNode && startNode->renderer()) {
auto* layer = startNode->renderer()->enclosingLayer();
if (layer) {
- layer->setAdjustForIOSCaretWhenScrolling(true);
+ auto* scrollableLayer = layer->ensureLayerScrollableArea();
+ scrollableLayer->setAdjustForIOSCaretWhenScrolling(true);
startNode->renderer()->scrollRectToVisible(WebCore::enclosingIntRect(rangeRect), insideFixed, { WebCore::SelectionRevealMode::Reveal, WebCore::ScrollAlignment::alignToEdgeIfNeeded, WebCore::ScrollAlignment::alignToEdgeIfNeeded, WebCore::ShouldAllowCrossOriginScrolling::Yes});
- layer->setAdjustForIOSCaretWhenScrolling(false);
+ scrollableLayer->setAdjustForIOSCaretWhenScrolling(false);
auto coreFrame = core(self);
if (coreFrame) {