Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(731)

Unified Diff: third_party/WebKit/Source/core/frame/FrameView.cpp

Issue 2237433004: Adds DevTools commands for forced viewport override. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Notify about scroll offset change via frameview. Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/frame/FrameView.cpp
diff --git a/third_party/WebKit/Source/core/frame/FrameView.cpp b/third_party/WebKit/Source/core/frame/FrameView.cpp
index 44f2446632fc84ee790b38e7d3a2133f1022b82c..0b967f25aecc70cf6d48d0d30225dbdc4de5eb7a 100644
--- a/third_party/WebKit/Source/core/frame/FrameView.cpp
+++ b/third_party/WebKit/Source/core/frame/FrameView.cpp
@@ -158,6 +158,7 @@ FrameView::FrameView(LocalFrame* frame)
, m_verticalScrollbarMode(ScrollbarAuto)
, m_horizontalScrollbarLock(false)
, m_verticalScrollbarLock(false)
+ , m_visibleContentRectForPainting(nullptr)
, m_scrollbarsAvoidingResizer(0)
, m_scrollbarsSuppressed(false)
, m_inUpdateScrollbars(false)
@@ -3309,6 +3310,23 @@ IntSize FrameView::contentsSize() const
return m_contentsSize;
}
+IntRect FrameView::visibleContentRectForPainting() const
+{
+ if (m_visibleContentRectForPainting)
+ return *m_visibleContentRectForPainting;
+ return visibleContentRect();
+}
+
+void FrameView::setVisibleContentRectForPainting(const IntRect& rect)
+{
+ m_visibleContentRectForPainting.reset(new IntRect(rect));
+}
+
+void FrameView::resetVisibleContentRectForPainting()
+{
+ m_visibleContentRectForPainting.reset();
+}
+
IntPoint FrameView::minimumScrollPosition() const
{
return IntPoint(-scrollOrigin().x(), -scrollOrigin().y());
@@ -3387,7 +3405,7 @@ void FrameView::setScrollOffset(const DoublePoint& offset, ScrollType scrollType
cache->handleScrollPositionChanged(this);
frame().loader().saveScrollState();
- frame().loader().client()->didChangeScrollOffset();
+ didChangeScrollOffset();
if (scrollType == CompositorScroll && m_frame->isMainFrame()) {
if (DocumentLoader* documentLoader = m_frame->loader().documentLoader())
@@ -3398,6 +3416,13 @@ void FrameView::setScrollOffset(const DoublePoint& offset, ScrollType scrollType
clearScrollAnchor();
}
+void FrameView::didChangeScrollOffset()
+{
+ frame().loader().client()->didChangeScrollOffset();
+ if (frame().isMainFrame())
+ frame().host()->chromeClient().mainFrameScrollOffsetChanged();
+}
+
void FrameView::clearScrollAnchor()
{
if (!RuntimeEnabledFeatures::scrollAnchoringEnabled())

Powered by Google App Engine
This is Rietveld 408576698