From 594874b85282cd15bd32cafffab606f16e2621b1 Mon Sep 17 00:00:00 2001 From: "andersca@apple.com" Date: Mon, 26 Mar 2012 21:43:55 +0000 Subject: [PATCH] Find in page overlay and bouncy are not always positioned correctly https://bugs.webkit.org/show_bug.cgi?id=82247 Reviewed by Sam Weinig. In WebCore, a lot of code depends on scroll position updates to happen synchronously, so update the frame view scroll position before asking the scrolling thread to scroll. * page/scrolling/ScrollingCoordinator.cpp: (WebCore::ScrollingCoordinator::requestScrollPositionUpdate): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@112148 268f45cc-cd09-0410-ab3c-d52691b4dbfc --- Source/WebCore/ChangeLog | 14 ++++++++++++++ Source/WebCore/page/scrolling/ScrollingCoordinator.cpp | 4 ++++ 2 files changed, 18 insertions(+) diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog index bf53794..68ecf10 100644 --- a/Source/WebCore/ChangeLog +++ b/Source/WebCore/ChangeLog @@ -1,3 +1,17 @@ +2012-03-26 Anders Carlsson + + Find in page overlay and bouncy are not always positioned correctly + https://bugs.webkit.org/show_bug.cgi?id=82247 + + + Reviewed by Sam Weinig. + + In WebCore, a lot of code depends on scroll position updates to happen synchronously, so + update the frame view scroll position before asking the scrolling thread to scroll. + + * page/scrolling/ScrollingCoordinator.cpp: + (WebCore::ScrollingCoordinator::requestScrollPositionUpdate): + 2012-03-26 Nate Chapin Simplify setting loading state in DocumentLoader diff --git a/Source/WebCore/page/scrolling/ScrollingCoordinator.cpp b/Source/WebCore/page/scrolling/ScrollingCoordinator.cpp index 7ffc32f..93e1da4 100644 --- a/Source/WebCore/page/scrolling/ScrollingCoordinator.cpp +++ b/Source/WebCore/page/scrolling/ScrollingCoordinator.cpp @@ -228,6 +228,10 @@ bool ScrollingCoordinator::requestScrollPositionUpdate(FrameView* frameView, con return false; #if ENABLE(THREADED_SCROLLING) + // Update the main frame scroll position locally before asking the scrolling thread to scroll, + // since FrameView expects scroll position updates to happen synchronously. + updateMainFrameScrollPosition(scrollPosition); + ScrollingThread::dispatch(bind(&ScrollingTree::setMainFrameScrollPosition, m_scrollingTree.get(), scrollPosition)); return true; #else -- 2.7.4