Diff
Modified: trunk/Source/WebCore/ChangeLog (246487 => 246488)
--- trunk/Source/WebCore/ChangeLog 2019-06-16 22:06:29 UTC (rev 246487)
+++ trunk/Source/WebCore/ChangeLog 2019-06-17 00:33:32 UTC (rev 246488)
@@ -1,3 +1,65 @@
+2019-06-16 Simon Fraser <[email protected]>
+
+ Implement ScrollableArea::scrollOffset()
+ https://bugs.webkit.org/show_bug.cgi?id=198895
+
+ Reviewed by Antti Koivisto.
+
+ Remove from ScrollableArea the following:
+ virtual int scrollSize(ScrollbarOrientation) const = 0;
+ virtual int scrollOffset(ScrollbarOrientation) const = 0;
+ and instead implement ScrollOffset scrollOffset() const.
+
+ Also make scrollPosition() pure virtual, avoiding the reverse dependency where
+ this base class implementation got values from scrollbars.
+
+ scrollSize(ScrollbarOrientation) was only used by ScrollAnimatorIOS and we can
+ do the same computation via min/max scroll positions.
+
+ RenderListBox and PopupMenuWin need implementations of scrollPosition().
+
+ Remove some PLATFORM(IOS_FAMILY) #ifdefs from ScrollableArea for code that compiles
+ on all platforms.
+
+ * page/FrameView.h:
+ * platform/ScrollView.cpp:
+ (WebCore::ScrollView::overhangAmount const):
+ (WebCore::ScrollView::scrollSize const): Deleted.
+ (WebCore::ScrollView::scrollOffset const): Deleted.
+ * platform/ScrollView.h:
+ * platform/ScrollableArea.cpp:
+ (WebCore::ScrollableArea::isPinnedVerticallyInDirection const):
+ (WebCore::ScrollableArea::scrollOffset const):
+ (WebCore::ScrollableArea::scrollPosition const): Deleted.
+ * platform/ScrollableArea.h:
+ (WebCore::offsetForOrientation):
+ (WebCore::ScrollableArea::isHorizontalScrollerPinnedToMinimumPosition const):
+ (WebCore::ScrollableArea::isHorizontalScrollerPinnedToMaximumPosition const):
+ (WebCore::ScrollableArea::isVerticalScrollerPinnedToMinimumPosition const):
+ (WebCore::ScrollableArea::isVerticalScrollerPinnedToMaximumPosition const):
+ (WebCore::ScrollableArea::tiledBacking const): Deleted.
+ * platform/Scrollbar.cpp:
+ (WebCore::Scrollbar::Scrollbar):
+ (WebCore::Scrollbar::offsetDidChange):
+ * platform/ios/ScrollAnimatorIOS.mm:
+ (WebCore::ScrollAnimatorIOS::handleTouchEvent):
+ * platform/win/PopupMenuWin.cpp:
+ (WebCore::PopupMenuWin::scrollPosition const):
+ (WebCore::PopupMenuWin::wndProc):
+ (WebCore::PopupMenuWin::scrollSize const): Deleted.
+ (WebCore::PopupMenuWin::scrollOffset const): Deleted.
+ * platform/win/PopupMenuWin.h:
+ (WebCore::PopupMenuWin::scrollOffset const): Deleted.
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::scrollSize const): Deleted.
+ (WebCore::RenderLayer::scrollOffset const): Deleted.
+ * rendering/RenderLayer.h:
+ * rendering/RenderListBox.cpp:
+ (WebCore::RenderListBox::scrollPosition const):
+ (WebCore::RenderListBox::scrollSize const): Deleted.
+ (WebCore::RenderListBox::scrollOffset const): Deleted.
+ * rendering/RenderListBox.h:
+
2019-06-16 Zalan Bujtas <[email protected]>
Address Sam's post-landing review of r246234.
Modified: trunk/Source/WebCore/page/FrameView.h (246487 => 246488)
--- trunk/Source/WebCore/page/FrameView.h 2019-06-16 22:06:29 UTC (rev 246487)
+++ trunk/Source/WebCore/page/FrameView.h 2019-06-17 00:33:32 UTC (rev 246488)
@@ -153,7 +153,7 @@
WEBCORE_EXPORT GraphicsLayer* graphicsLayerForPlatformWidget(PlatformWidget);
WEBCORE_EXPORT void scheduleLayerFlushAllowingThrottling();
- WEBCORE_EXPORT TiledBacking* tiledBacking() const final;
+ WEBCORE_EXPORT TiledBacking* tiledBacking() const;
ScrollingNodeID scrollingNodeID() const override;
ScrollableArea* scrollableAreaForScrollLayerID(uint64_t) const;
Modified: trunk/Source/WebCore/platform/ScrollView.cpp (246487 => 246488)
--- trunk/Source/WebCore/platform/ScrollView.cpp 2019-06-16 22:06:29 UTC (rev 246487)
+++ trunk/Source/WebCore/platform/ScrollView.cpp 2019-06-17 00:33:32 UTC (rev 246488)
@@ -378,19 +378,6 @@
return scrollPosition() - IntSize(0, headerHeight());
}
-int ScrollView::scrollSize(ScrollbarOrientation orientation) const
-{
- // If no scrollbars are present, it does not indicate content is not be scrollable.
- if (!m_horizontalScrollbar && !m_verticalScrollbar && !prohibitsScrolling()) {
- IntSize scrollSize = m_contentsSize - visibleContentRect(LegacyIOSDocumentVisibleRect).size();
- scrollSize.clampNegativeToZero();
- return orientation == HorizontalScrollbar ? scrollSize.width() : scrollSize.height();
- }
-
- Scrollbar* scrollbar = ((orientation == HorizontalScrollbar) ? m_horizontalScrollbar : m_verticalScrollbar).get();
- return scrollbar ? (scrollbar->totalSize() - scrollbar->visibleSize()) : 0;
-}
-
void ScrollView::notifyPageThatContentAreaWillPaint() const
{
}
@@ -474,19 +461,6 @@
updateCompositingLayersAfterScrolling();
}
-int ScrollView::scrollOffset(ScrollbarOrientation orientation) const
-{
- ScrollOffset offset = scrollOffsetFromPosition(scrollPosition());
-
- if (orientation == HorizontalScrollbar)
- return offset.x();
-
- if (orientation == VerticalScrollbar)
- return offset.y();
-
- return 0;
-}
-
void ScrollView::setScrollPosition(const ScrollPosition& scrollPosition)
{
LOG_WITH_STREAM(Scrolling, stream << "ScrollView::setScrollPosition " << scrollPosition);
@@ -528,7 +502,7 @@
IntSize stretch;
// FIXME: use maximumScrollOffset()
- ScrollOffset scrollOffset = scrollOffsetFromPosition(scrollPosition());
+ ScrollOffset scrollOffset = this->scrollOffset();
if (scrollOffset.y() < 0)
stretch.setHeight(scrollOffset.y());
else if (totalContentsSize().height() && scrollOffset.y() > totalContentsSize().height() - visibleHeight())
Modified: trunk/Source/WebCore/platform/ScrollView.h (246487 => 246488)
--- trunk/Source/WebCore/platform/ScrollView.h 2019-06-16 22:06:29 UTC (rev 246487)
+++ trunk/Source/WebCore/platform/ScrollView.h 2019-06-17 00:33:32 UTC (rev 246488)
@@ -69,8 +69,6 @@
using Widget::weakPtrFactory;
// ScrollableArea functions.
- int scrollSize(ScrollbarOrientation) const final;
- int scrollOffset(ScrollbarOrientation) const final;
WEBCORE_EXPORT void setScrollOffset(const ScrollOffset&) final;
bool isScrollCornerVisible() const final;
void scrollbarStyleChanged(ScrollbarStyle, bool forceUpdate) override;
Modified: trunk/Source/WebCore/platform/ScrollableArea.cpp (246487 => 246488)
--- trunk/Source/WebCore/platform/ScrollableArea.cpp 2019-06-16 22:06:29 UTC (rev 246487)
+++ trunk/Source/WebCore/platform/ScrollableArea.cpp 2019-06-17 00:33:32 UTC (rev 246488)
@@ -572,7 +572,6 @@
scrollAnimator->serviceScrollAnimations();
}
-#if PLATFORM(IOS_FAMILY)
bool ScrollableArea::isPinnedInBothDirections(const IntSize& scrollDelta) const
{
return isPinnedHorizontallyInDirection(scrollDelta.width()) && isPinnedVerticallyInDirection(scrollDelta.height());
@@ -595,7 +594,6 @@
return true;
return false;
}
-#endif // PLATFORM(IOS_FAMILY)
int ScrollableArea::horizontalScrollbarIntrusion() const
{
@@ -612,12 +610,9 @@
return { horizontalScrollbarIntrusion(), verticalScrollbarIntrusion() };
}
-ScrollPosition ScrollableArea::scrollPosition() const
+ScrollOffset ScrollableArea::scrollOffset() const
{
- // FIXME: This relationship seems to be inverted. Scrollbars should be 'view', not 'model', and should get their values from us.
- int x = horizontalScrollbar() ? horizontalScrollbar()->value() : 0;
- int y = verticalScrollbar() ? verticalScrollbar()->value() : 0;
- return IntPoint(x, y);
+ return scrollOffsetFromPosition(scrollPosition());
}
ScrollPosition ScrollableArea::minimumScrollPosition() const
Modified: trunk/Source/WebCore/platform/ScrollableArea.h (246487 => 246488)
--- trunk/Source/WebCore/platform/ScrollableArea.h 2019-06-16 22:06:29 UTC (rev 246487)
+++ trunk/Source/WebCore/platform/ScrollableArea.h 2019-06-17 00:33:32 UTC (rev 246488)
@@ -48,6 +48,18 @@
// scrollOffset() is the value used by scrollbars (min is 0,0), and should never have negative components.
typedef IntPoint ScrollOffset;
+
+inline int offsetForOrientation(ScrollOffset offset, ScrollbarOrientation orientation)
+{
+ switch (orientation) {
+ case HorizontalScrollbar: return offset.x();
+ case VerticalScrollbar: return offset.y();
+ }
+ ASSERT_NOT_REACHED();
+ return 0;
+}
+
+
class ScrollableArea : public CanMakeWeakPtr<ScrollableArea> {
public:
WEBCORE_EXPORT bool scroll(ScrollDirection, ScrollGranularity, float multiplier = 1);
@@ -157,8 +169,6 @@
ScrollAnimator* existingScrollAnimator() const { return m_scrollAnimator.get(); }
virtual bool isActive() const = 0;
- virtual int scrollSize(ScrollbarOrientation) const = 0;
- virtual int scrollOffset(ScrollbarOrientation) const = 0;
WEBCORE_EXPORT virtual void invalidateScrollbar(Scrollbar&, const IntRect&);
virtual bool isScrollCornerVisible() const = 0;
virtual IntRect scrollCornerRect() const = 0;
@@ -196,7 +206,7 @@
const IntPoint& scrollOrigin() const { return m_scrollOrigin; }
bool scrollOriginChanged() const { return m_scrollOriginChanged; }
- virtual ScrollPosition scrollPosition() const;
+ virtual ScrollPosition scrollPosition() const = 0;
virtual ScrollPosition minimumScrollPosition() const;
virtual ScrollPosition maximumScrollPosition() const;
@@ -205,6 +215,8 @@
return position.constrainedBetween(minimumScrollPosition(), maximumScrollPosition());
}
+ WEBCORE_EXPORT ScrollOffset scrollOffset() const;
+
ScrollOffset maximumScrollOffset() const;
WEBCORE_EXPORT ScrollPosition scrollPositionFromOffset(ScrollOffset) const;
@@ -298,19 +310,15 @@
virtual bool scheduleAnimation() { return false; }
void serviceScrollAnimations();
-#if PLATFORM(IOS_FAMILY)
- bool isHorizontalScrollerPinnedToMinimumPosition() const { return !horizontalScrollbar() || scrollOffset(HorizontalScrollbar) <= 0; }
- bool isHorizontalScrollerPinnedToMaximumPosition() const { return !horizontalScrollbar() || scrollOffset(HorizontalScrollbar) >= maximumScrollOffset().x(); }
- bool isVerticalScrollerPinnedToMinimumPosition() const { return !verticalScrollbar() || scrollOffset(VerticalScrollbar) <= 0; }
- bool isVerticalScrollerPinnedToMaximumPosition() const { return !verticalScrollbar() || scrollOffset(VerticalScrollbar) >= maximumScrollOffset().y(); }
+ bool isHorizontalScrollerPinnedToMinimumPosition() const { return !horizontalScrollbar() || scrollOffset().x() <= 0; }
+ bool isHorizontalScrollerPinnedToMaximumPosition() const { return !horizontalScrollbar() || scrollOffset().x() >= maximumScrollOffset().x(); }
+ bool isVerticalScrollerPinnedToMinimumPosition() const { return !verticalScrollbar() || scrollOffset().y() <= 0; }
+ bool isVerticalScrollerPinnedToMaximumPosition() const { return !verticalScrollbar() || scrollOffset().y() >= maximumScrollOffset().y(); }
bool isPinnedInBothDirections(const IntSize&) const;
bool isPinnedHorizontallyInDirection(int horizontalScrollDelta) const;
bool isPinnedVerticallyInDirection(int verticalScrollDelta) const;
-#endif
- virtual TiledBacking* tiledBacking() const { return nullptr; }
-
// True if scrolling happens by moving compositing layers.
virtual bool usesCompositedScrolling() const { return false; }
// True if the contents can be scrolled asynchronously (i.e. by a ScrollingCoordinator).
Modified: trunk/Source/WebCore/platform/Scrollbar.cpp (246487 => 246488)
--- trunk/Source/WebCore/platform/Scrollbar.cpp 2019-06-16 22:06:29 UTC (rev 246487)
+++ trunk/Source/WebCore/platform/Scrollbar.cpp 2019-06-17 00:33:32 UTC (rev 246488)
@@ -69,7 +69,7 @@
int thickness = theme().scrollbarThickness(controlSize);
Widget::setFrameRect(IntRect(0, 0, thickness, thickness));
- m_currentPos = static_cast<float>(m_scrollableArea.scrollOffset(m_orientation));
+ m_currentPos = static_cast<float>(offsetForOrientation(m_scrollableArea.scrollOffset(), m_orientation));
}
Scrollbar::~Scrollbar()
@@ -91,7 +91,7 @@
void Scrollbar::offsetDidChange()
{
- float position = static_cast<float>(m_scrollableArea.scrollOffset(m_orientation));
+ float position = static_cast<float>(offsetForOrientation(m_scrollableArea.scrollOffset(), m_orientation));
if (position == m_currentPos)
return;
Modified: trunk/Source/WebCore/platform/ios/ScrollAnimatorIOS.mm (246487 => 246488)
--- trunk/Source/WebCore/platform/ios/ScrollAnimatorIOS.mm 2019-06-16 22:06:29 UTC (rev 246487)
+++ trunk/Source/WebCore/platform/ios/ScrollAnimatorIOS.mm 2019-06-17 00:33:32 UTC (rev 246488)
@@ -103,8 +103,9 @@
determineScrollableAreaForTouchSequence(touchDelta);
if (!m_committedToScrollAxis) {
- bool horizontallyScrollable = m_scrollableArea.scrollSize(HorizontalScrollbar);
- bool verticallyScrollable = m_scrollableArea.scrollSize(VerticalScrollbar);
+ auto scrollSize = m_scrollableArea.maximumScrollPosition() - m_scrollableArea.minimumScrollPosition();
+ bool horizontallyScrollable = scrollSize.width();
+ bool verticallyScrollable = scrollSize.height();
if (!horizontallyScrollable && !verticallyScrollable)
return false;
Modified: trunk/Source/WebCore/platform/win/PopupMenuWin.cpp (246487 => 246488)
--- trunk/Source/WebCore/platform/win/PopupMenuWin.cpp 2019-06-16 22:06:29 UTC (rev 246487)
+++ trunk/Source/WebCore/platform/win/PopupMenuWin.cpp 2019-06-17 00:33:32 UTC (rev 246488)
@@ -679,16 +679,11 @@
::BitBlt(localDC, damageRect.x(), damageRect.y(), damageRect.width(), damageRect.height(), m_DC.get(), damageRect.x(), damageRect.y(), SRCCOPY);
}
-int PopupMenuWin::scrollSize(ScrollbarOrientation orientation) const
+ScrollPosition PopupMenuWin::scrollPosition() const
{
- return ((orientation == VerticalScrollbar) && m_scrollbar) ? (m_scrollbar->totalSize() - m_scrollbar->visibleSize()) : 0;
+ return { 0, m_scrollOffset };
}
-int PopupMenuWin::scrollOffset(ScrollbarOrientation) const
-{
- return m_scrollOffset;
-}
-
void PopupMenuWin::setScrollOffset(const IntPoint& offset)
{
scrollTo(offset.y());
@@ -892,9 +887,9 @@
focusLast();
break;
case VK_PRIOR:
- if (focusedIndex() != scrollOffset()) {
+ if (focusedIndex() != m_scrollOffset) {
// Set the selection to the first visible item
- int firstVisibleItem = scrollOffset();
+ int firstVisibleItem = m_scrollOffset;
up(focusedIndex() - firstVisibleItem);
} else {
// The first visible item is selected, so move the selection back one page
@@ -902,7 +897,7 @@
}
break;
case VK_NEXT: {
- int lastVisibleItem = scrollOffset() + visibleItems() - 1;
+ int lastVisibleItem = m_scrollOffset + visibleItems() - 1;
if (focusedIndex() != lastVisibleItem) {
// Set the selection to the last visible item
down(lastVisibleItem - focusedIndex());
Modified: trunk/Source/WebCore/platform/win/PopupMenuWin.h (246487 => 246488)
--- trunk/Source/WebCore/platform/win/PopupMenuWin.h 2019-06-16 22:06:29 UTC (rev 246487)
+++ trunk/Source/WebCore/platform/win/PopupMenuWin.h 2019-06-17 00:33:32 UTC (rev 246488)
@@ -77,8 +77,6 @@
void setWasClicked(bool b = true) { m_wasClicked = b; }
bool wasClicked() const { return m_wasClicked; }
- int scrollOffset() const { return m_scrollOffset; }
-
bool scrollToRevealSelection();
void incrementWheelDelta(int delta);
@@ -89,8 +87,7 @@
void setScrollbarCapturingMouse(bool b) { m_scrollbarCapturingMouse = b; }
// ScrollableArea
- int scrollSize(ScrollbarOrientation) const override;
- int scrollOffset(ScrollbarOrientation) const override;
+ ScrollPosition scrollPosition() const override;
void setScrollOffset(const IntPoint&) override;
void invalidateScrollbarRect(Scrollbar&, const IntRect&) override;
void invalidateScrollCornerRect(const IntRect&) override { }
Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (246487 => 246488)
--- trunk/Source/WebCore/rendering/RenderLayer.cpp 2019-06-16 22:06:29 UTC (rev 246487)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp 2019-06-17 00:33:32 UTC (rev 246488)
@@ -2898,28 +2898,11 @@
// FIXME (Radar 4118564): We should also autoscroll the window as necessary to keep the point under the cursor in view.
}
-int RenderLayer::scrollSize(ScrollbarOrientation orientation) const
-{
- Scrollbar* scrollbar = ((orientation == HorizontalScrollbar) ? m_hBar : m_vBar).get();
- return scrollbar ? (scrollbar->totalSize() - scrollbar->visibleSize()) : 0;
-}
-
void RenderLayer::setScrollOffset(const ScrollOffset& offset)
{
scrollTo(scrollPositionFromOffset(offset));
}
-int RenderLayer::scrollOffset(ScrollbarOrientation orientation) const
-{
- if (orientation == HorizontalScrollbar)
- return scrollOffset().x();
-
- if (orientation == VerticalScrollbar)
- return scrollOffset().y();
-
- return 0;
-}
-
ScrollingNodeID RenderLayer::scrollingNodeID() const
{
if (!isComposited())
Modified: trunk/Source/WebCore/rendering/RenderLayer.h (246487 => 246488)
--- trunk/Source/WebCore/rendering/RenderLayer.h 2019-06-16 22:06:29 UTC (rev 246487)
+++ trunk/Source/WebCore/rendering/RenderLayer.h 2019-06-17 00:33:32 UTC (rev 246488)
@@ -442,8 +442,6 @@
void setPostLayoutScrollPosition(Optional<ScrollPosition>);
void applyPostLayoutScrollPositionIfNeeded();
- ScrollOffset scrollOffset() const { return scrollOffsetFromPosition(m_scrollPosition); }
-
void availableContentSizeChanged(AvailableSizeChangeReason) override;
// "absoluteRect" is in scaled document coordinates.
@@ -1073,8 +1071,6 @@
bool shouldBeSelfPaintingLayer() const;
- int scrollOffset(ScrollbarOrientation) const override;
-
// ScrollableArea interface
void invalidateScrollbarRect(Scrollbar&, const IntRect&) override;
void invalidateScrollCornerRect(const IntRect&) override;
@@ -1085,7 +1081,6 @@
IntRect convertFromContainingViewToScrollbar(const Scrollbar&, const IntRect&) const override;
IntPoint convertFromScrollbarToContainingView(const Scrollbar&, const IntPoint&) const override;
IntPoint convertFromContainingViewToScrollbar(const Scrollbar&, const IntPoint&) const override;
- int scrollSize(ScrollbarOrientation) const override;
void setScrollOffset(const ScrollOffset&) override;
ScrollingNodeID scrollingNodeID() const override;
Modified: trunk/Source/WebCore/rendering/RenderListBox.cpp (246487 => 246488)
--- trunk/Source/WebCore/rendering/RenderListBox.cpp 2019-06-16 22:06:29 UTC (rev 246487)
+++ trunk/Source/WebCore/rendering/RenderListBox.cpp 2019-06-17 00:33:32 UTC (rev 246488)
@@ -645,16 +645,11 @@
selectElement().dispatchFormControlChangeEvent();
}
-int RenderListBox::scrollSize(ScrollbarOrientation orientation) const
+ScrollPosition RenderListBox::scrollPosition() const
{
- return ((orientation == VerticalScrollbar) && m_vBar) ? (m_vBar->totalSize() - m_vBar->visibleSize()) : 0;
+ return { 0, m_indexOffset };
}
-int RenderListBox::scrollOffset(ScrollbarOrientation) const
-{
- return m_indexOffset;
-}
-
ScrollPosition RenderListBox::minimumScrollPosition() const
{
return { 0, 0 };
Modified: trunk/Source/WebCore/rendering/RenderListBox.h (246487 => 246488)
--- trunk/Source/WebCore/rendering/RenderListBox.h 2019-06-16 22:06:29 UTC (rev 246487)
+++ trunk/Source/WebCore/rendering/RenderListBox.h 2019-06-17 00:33:32 UTC (rev 246488)
@@ -112,11 +112,12 @@
bool nodeAtPoint(const HitTestRequest&, HitTestResult&, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOffset, HitTestAction) override;
// ScrollableArea interface.
- int scrollSize(ScrollbarOrientation) const override;
- int scrollOffset(ScrollbarOrientation) const override;
void setScrollOffset(const ScrollOffset&) override;
+
+ ScrollPosition scrollPosition() const override;
ScrollPosition minimumScrollPosition() const override;
ScrollPosition maximumScrollPosition() const override;
+
void invalidateScrollbarRect(Scrollbar&, const IntRect&) override;
bool isActive() const override;
bool isScrollCornerVisible() const override { return false; } // We don't support resize on list boxes yet. If we did these would have to change.
Modified: trunk/Source/WebKit/ChangeLog (246487 => 246488)
--- trunk/Source/WebKit/ChangeLog 2019-06-16 22:06:29 UTC (rev 246487)
+++ trunk/Source/WebKit/ChangeLog 2019-06-17 00:33:32 UTC (rev 246488)
@@ -1,3 +1,22 @@
+2019-06-16 Simon Fraser <[email protected]>
+
+ Implement ScrollableArea::scrollOffset()
+ https://bugs.webkit.org/show_bug.cgi?id=198895
+
+ Reviewed by Antti Koivisto.
+
+ * UIProcess/win/WebPopupMenuProxyWin.cpp:
+ (WebKit::PopupMenuWin::scrollPosition const):
+ (WebKit::WebPopupMenuProxyWin::onKeyDown): Just use m_scrollOffset.
+ (WebKit::WebPopupMenuProxyWin::scrollSize const): Deleted.
+ * UIProcess/win/WebPopupMenuProxyWin.h: Remove the one-axis scrollOffset()
+ * WebProcess/Plugins/PDF/PDFPlugin.h:
+ * WebProcess/Plugins/PDF/PDFPlugin.mm:
+ (WebKit::PDFPlugin::scrollSize const): Deleted.
+ (WebKit::PDFPlugin::scrollOffset const): Deleted.
+ * WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
+ (WebKit::RemoteLayerTreeDrawingArea::updateScrolledExposedRect):
+
2019-06-15 Youenn Fablet <[email protected]>
WebProcessPool::clearWebProcessHasUploads cannot assume its given processIdentifier is valid
Modified: trunk/Source/WebKit/UIProcess/win/WebPopupMenuProxyWin.cpp (246487 => 246488)
--- trunk/Source/WebKit/UIProcess/win/WebPopupMenuProxyWin.cpp 2019-06-16 22:06:29 UTC (rev 246487)
+++ trunk/Source/WebKit/UIProcess/win/WebPopupMenuProxyWin.cpp 2019-06-17 00:33:32 UTC (rev 246488)
@@ -441,9 +441,9 @@
::InvalidateRect(m_popup, &r, TRUE);
}
-int WebPopupMenuProxyWin::scrollSize(ScrollbarOrientation orientation) const
+ScrollPosition WebPopupMenuProxyWin::scrollPosition() const
{
- return ((orientation == VerticalScrollbar) && m_scrollbar) ? (m_scrollbar->totalSize() - m_scrollbar->visibleSize()) : 0;
+ return { 0, m_scrollOffset };
}
void WebPopupMenuProxyWin::setScrollOffset(const IntPoint& offset)
@@ -554,9 +554,9 @@
focusLast();
break;
case VK_PRIOR:
- if (focusedIndex() != scrollOffset(VerticalScrollbar)) {
+ if (focusedIndex() != m_scrollOffset) {
// Set the selection to the first visible item
- int firstVisibleItem = scrollOffset(VerticalScrollbar);
+ int firstVisibleItem = m_scrollOffset;
up(focusedIndex() - firstVisibleItem);
} else {
// The first visible item is selected, so move the selection back one page
@@ -564,7 +564,7 @@
}
break;
case VK_NEXT: {
- int lastVisibleItem = scrollOffset(VerticalScrollbar) + visibleItems() - 1;
+ int lastVisibleItem = m_scrollOffset + visibleItems() - 1;
if (focusedIndex() != lastVisibleItem) {
// Set the selection to the last visible item
down(lastVisibleItem - focusedIndex());
@@ -921,7 +921,6 @@
}
}
-
void WebPopupMenuProxyWin::incrementWheelDelta(int delta)
{
m_wheelDelta += delta;
Modified: trunk/Source/WebKit/UIProcess/win/WebPopupMenuProxyWin.h (246487 => 246488)
--- trunk/Source/WebKit/UIProcess/win/WebPopupMenuProxyWin.h 2019-06-16 22:06:29 UTC (rev 246487)
+++ trunk/Source/WebKit/UIProcess/win/WebPopupMenuProxyWin.h 2019-06-17 00:33:32 UTC (rev 246488)
@@ -58,9 +58,8 @@
WebCore::Scrollbar* scrollbar() const { return m_scrollbar.get(); }
// ScrollableArea
- int scrollSize(WebCore::ScrollbarOrientation) const override;
+ WebCore::ScrollPosition scrollPosition() const override;
void setScrollOffset(const WebCore::IntPoint&) override;
- int scrollOffset(WebCore::ScrollbarOrientation) const override { return m_scrollOffset; }
void invalidateScrollbarRect(WebCore::Scrollbar&, const WebCore::IntRect&) override;
void invalidateScrollCornerRect(const WebCore::IntRect&) override { }
Modified: trunk/Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.h (246487 => 246488)
--- trunk/Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.h 2019-06-16 22:06:29 UTC (rev 246487)
+++ trunk/Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.h 2019-06-17 00:33:32 UTC (rev 246488)
@@ -202,10 +202,8 @@
void invalidateScrollbarRect(WebCore::Scrollbar&, const WebCore::IntRect&) final;
void invalidateScrollCornerRect(const WebCore::IntRect&) final;
WebCore::IntPoint lastKnownMousePosition() const final { return m_lastMousePositionInPluginCoordinates; }
- int scrollSize(WebCore::ScrollbarOrientation) const final;
bool isActive() const final;
bool isScrollCornerVisible() const final { return false; }
- int scrollOffset(WebCore::ScrollbarOrientation) const final;
WebCore::ScrollPosition scrollPosition() const final;
WebCore::ScrollPosition minimumScrollPosition() const final;
WebCore::ScrollPosition maximumScrollPosition() const final;
Modified: trunk/Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm (246487 => 246488)
--- trunk/Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm 2019-06-16 22:06:29 UTC (rev 246487)
+++ trunk/Source/WebKit/WebProcess/Plugins/PDF/PDFPlugin.mm 2019-06-17 00:33:32 UTC (rev 246488)
@@ -863,12 +863,6 @@
return pluginView()->frameRect();
}
-int PDFPlugin::scrollSize(ScrollbarOrientation orientation) const
-{
- Scrollbar* scrollbar = ((orientation == HorizontalScrollbar) ? m_horizontalScrollbar : m_verticalScrollbar).get();
- return scrollbar ? (scrollbar->totalSize() - scrollbar->visibleSize()) : 0;
-}
-
bool PDFPlugin::isActive() const
{
if (Frame* coreFrame = m_frame->coreFrame()) {
@@ -889,18 +883,6 @@
return false;
}
-int PDFPlugin::scrollOffset(ScrollbarOrientation orientation) const
-{
- if (orientation == HorizontalScrollbar)
- return m_scrollOffset.width();
-
- if (orientation == VerticalScrollbar)
- return m_scrollOffset.height();
-
- ASSERT_NOT_REACHED();
- return 0;
-}
-
ScrollPosition PDFPlugin::scrollPosition() const
{
return IntPoint(m_scrollOffset.width(), m_scrollOffset.height());
Modified: trunk/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm (246487 => 246488)
--- trunk/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm 2019-06-16 22:06:29 UTC (rev 246487)
+++ trunk/Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm 2019-06-17 00:33:32 UTC (rev 246488)
@@ -253,10 +253,8 @@
m_scrolledViewExposedRect = m_viewExposedRect;
#if !PLATFORM(IOS_FAMILY)
- if (m_viewExposedRect) {
- ScrollOffset scrollOffset = frameView->scrollOffsetFromPosition(frameView->scrollPosition());
- m_scrolledViewExposedRect.value().moveBy(scrollOffset);
- }
+ if (m_viewExposedRect)
+ m_scrolledViewExposedRect.value().moveBy(frameView->scrollOffset());
#endif
frameView->setViewExposedRect(m_scrolledViewExposedRect);