Changeset 186712 in webkit


Ignore:
Timestamp:
Jul 11, 2015, 11:19:46 AM (10 years ago)
Author:
Simon Fraser
Message:

[iOS WK2] Scrolling issues on horizontally scrollable RTL pages
https://bugs.webkit.org/show_bug.cgi?id=146872
rdar://problem/7569416

Reviewed by Sam Weinig.

Horizontally scrollable RTL pages in WebKit2 had a variety of issues: they had
a gap down the right edge, and unreachable content on the left side, focussing
form fields scrolled to the wrong location, and programmatic scrolls scrolled
to the wrong place.

Fix by plumbing the WebCore notion of scrollOrigin through to the UI process,
and using it in various places. There are three main aspects to the patch:

  1. scroll origin is included in RemoteLayerTreeTransaction, and plumbed through to -[WKWebView _scrollToContentOffset:] for correct programmatic scrolling,

Source/WebCore:

including zooming to focussed form elements.

  1. WebPageProxy::computeCustomFixedPositionRect() uses the actual documentRect() rather than just conjuring up a rect with a zero origin, which makes position:fixed work correctly.
  2. _interactionViewsContainerView (which hosts tap highlights) is positioned to coincide with the origin of the documentRect (i.e. at the scroll origin, which may not be top-left). This allows tap highlights to show in the correct location.
  3. ScrollView::unobscuredContentRect() is fixed to take scroll origin into account; if the returned rect is wrong, RenderLayer::hitTest() incorrectly clips the hit testing area.
  • platform/ios/ScrollViewIOS.mm:

(WebCore::ScrollView::unobscuredContentRect):

Source/WebKit2:

including zooming to focused form elements. The WKContentView's boundsOrigin
is set to the scroll origin so that the view coordinates match document coordinates.

  1. WebPageProxy::computeCustomFixedPositionRect() uses the actual documentRect() rather than just conjuring up a rect with a zero origin, which makes position:fixed work correctly.
  2. _interactionViewsContainerView (which hosts tap highlights) is positioned to coincide with the origin of the documentRect (i.e. at the scroll origin, which may not be top-left). This allows tap highlights to show in the correct location.
  3. ScrollView::unobscuredContentRect() is fixed to take scroll origin into account; if the returned rect is wrong, RenderLayer::hitTest() incorrectly clips the hit testing area.
  • Shared/mac/RemoteLayerTreeTransaction.h:

(WebKit::RemoteLayerTreeTransaction::scrollOrigin):
(WebKit::RemoteLayerTreeTransaction::setScrollOrigin):

  • Shared/mac/RemoteLayerTreeTransaction.mm:

(WebKit::RemoteLayerTreeTransaction::encode):
(WebKit::RemoteLayerTreeTransaction::decode):
(WebKit::RemoteLayerTreeTransaction::description): Dump some more info.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _scrollToContentOffset:scrollOrigin:]):
(-[WKWebView _scrollToContentOffset:]): Deleted.

  • UIProcess/API/Cocoa/WKWebViewInternal.h:
  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::requestScroll):

  • UIProcess/API/gtk/PageClientImpl.h:
  • UIProcess/CoordinatedGraphics/WebView.cpp:

(WebKit::WebView::requestScroll):

  • UIProcess/CoordinatedGraphics/WebView.h:
  • UIProcess/PageClient.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::requestScroll):

  • UIProcess/WebPageProxy.h:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::requestScroll):
(WebKit::PageClientImpl::documentRect):
(WebKit::PageClientImpl::contentsSize): Deleted.

  • UIProcess/ios/WKContentView.mm:

(-[WKContentView _didCommitLayerTree:]):

  • UIProcess/ios/WebPageProxyIOS.mm:

(WebKit::WebPageProxy::computeCustomFixedPositionRect):

  • UIProcess/mac/PageClientImpl.h:
  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::requestScroll):

  • UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:

(WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::willCommitLayerTree):

Location:
trunk/Source
Files:
22 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r186707 r186712  
     12015-07-10  Simon Fraser  <simon.fraser@apple.com>
     2
     3        [iOS WK2] Scrolling issues on horizontally scrollable RTL pages
     4        https://bugs.webkit.org/show_bug.cgi?id=146872
     5        rdar://problem/7569416
     6
     7        Reviewed by Sam Weinig.
     8
     9        Horizontally scrollable RTL pages in WebKit2 had a variety of issues: they had
     10        a gap down the right edge, and unreachable content on the left side, focussing
     11        form fields scrolled to the wrong location, and programmatic scrolls scrolled
     12        to the wrong place.
     13       
     14        Fix by plumbing the WebCore notion of scrollOrigin through to the UI process,
     15        and using it in various places. There are three main aspects to the patch:
     16       
     17        1. scroll origin is included in RemoteLayerTreeTransaction, and plumbed through
     18           to -[WKWebView _scrollToContentOffset:] for correct programmatic scrolling,
     19           including zooming to focussed form elements.
     20        2. WebPageProxy::computeCustomFixedPositionRect() uses the actual documentRect()
     21           rather than just conjuring up a rect with a zero origin, which makes position:fixed
     22           work correctly.
     23        3. _interactionViewsContainerView (which hosts tap highlights) is positioned to
     24           coincide with the origin of the documentRect (i.e. at the scroll origin, which
     25           may not be top-left). This allows tap highlights to show in the correct location.
     26        4. ScrollView::unobscuredContentRect() is fixed to take scroll origin into account;
     27           if the returned rect is wrong, RenderLayer::hitTest() incorrectly clips the hit
     28           testing area.
     29
     30        * platform/ios/ScrollViewIOS.mm:
     31        (WebCore::ScrollView::unobscuredContentRect):
     32
    1332015-07-10  Chris Dumez  <cdumez@apple.com>
    234
  • trunk/Source/WebCore/platform/ios/ScrollViewIOS.mm

    r185021 r186712  
    109109
    110110    if (!m_unobscuredContentSize.isEmpty())
    111         return IntRect(IntPoint(m_scrollOffset), roundedIntSize(m_unobscuredContentSize));
     111        return IntRect(scrollOrigin() + m_scrollOffset, roundedIntSize(m_unobscuredContentSize));
    112112
    113113    return unobscuredContentRectInternal();
  • trunk/Source/WebKit2/ChangeLog

    r186707 r186712  
     12015-07-10  Simon Fraser  <simon.fraser@apple.com>
     2
     3        [iOS WK2] Scrolling issues on horizontally scrollable RTL pages
     4        https://bugs.webkit.org/show_bug.cgi?id=146872
     5        rdar://problem/7569416
     6
     7        Reviewed by Sam Weinig.
     8
     9        Horizontally scrollable RTL pages in WebKit2 had a variety of issues: they had
     10        a gap down the right edge, and unreachable content on the left side, focussing
     11        form fields scrolled to the wrong location, and programmatic scrolls scrolled
     12        to the wrong place.
     13       
     14        Fix by plumbing the WebCore notion of scrollOrigin through to the UI process,
     15        and using it in various places. There are three main aspects to the patch:
     16       
     17        1. scroll origin is included in RemoteLayerTreeTransaction, and plumbed through
     18           to -[WKWebView _scrollToContentOffset:] for correct programmatic scrolling,
     19           including zooming to focused form elements. The WKContentView's boundsOrigin
     20           is set to the scroll origin so that the view coordinates match document coordinates.
     21        2. WebPageProxy::computeCustomFixedPositionRect() uses the actual documentRect()
     22           rather than just conjuring up a rect with a zero origin, which makes position:fixed
     23           work correctly.
     24        3. _interactionViewsContainerView (which hosts tap highlights) is positioned to
     25           coincide with the origin of the documentRect (i.e. at the scroll origin, which
     26           may not be top-left). This allows tap highlights to show in the correct location.
     27        4. ScrollView::unobscuredContentRect() is fixed to take scroll origin into account;
     28           if the returned rect is wrong, RenderLayer::hitTest() incorrectly clips the hit
     29           testing area.
     30
     31        * Shared/mac/RemoteLayerTreeTransaction.h:
     32        (WebKit::RemoteLayerTreeTransaction::scrollOrigin):
     33        (WebKit::RemoteLayerTreeTransaction::setScrollOrigin):
     34        * Shared/mac/RemoteLayerTreeTransaction.mm:
     35        (WebKit::RemoteLayerTreeTransaction::encode):
     36        (WebKit::RemoteLayerTreeTransaction::decode):
     37        (WebKit::RemoteLayerTreeTransaction::description): Dump some more info.
     38        * UIProcess/API/Cocoa/WKWebView.mm:
     39        (-[WKWebView _scrollToContentOffset:scrollOrigin:]):
     40        (-[WKWebView _scrollToContentOffset:]): Deleted.
     41        * UIProcess/API/Cocoa/WKWebViewInternal.h:
     42        * UIProcess/API/gtk/PageClientImpl.cpp:
     43        (WebKit::PageClientImpl::requestScroll):
     44        * UIProcess/API/gtk/PageClientImpl.h:
     45        * UIProcess/CoordinatedGraphics/WebView.cpp:
     46        (WebKit::WebView::requestScroll):
     47        * UIProcess/CoordinatedGraphics/WebView.h:
     48        * UIProcess/PageClient.h:
     49        * UIProcess/WebPageProxy.cpp:
     50        (WebKit::WebPageProxy::requestScroll):
     51        * UIProcess/WebPageProxy.h:
     52        * UIProcess/ios/PageClientImplIOS.h:
     53        * UIProcess/ios/PageClientImplIOS.mm:
     54        (WebKit::PageClientImpl::requestScroll):
     55        (WebKit::PageClientImpl::documentRect):
     56        (WebKit::PageClientImpl::contentsSize): Deleted.
     57        * UIProcess/ios/WKContentView.mm:
     58        (-[WKContentView _didCommitLayerTree:]):
     59        * UIProcess/ios/WebPageProxyIOS.mm:
     60        (WebKit::WebPageProxy::computeCustomFixedPositionRect):
     61        * UIProcess/mac/PageClientImpl.h:
     62        * UIProcess/mac/PageClientImpl.mm:
     63        (WebKit::PageClientImpl::requestScroll):
     64        * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
     65        (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
     66        * WebProcess/WebPage/WebPage.cpp:
     67        (WebKit::WebPage::willCommitLayerTree):
     68
    1692015-07-10  Chris Dumez  <cdumez@apple.com>
    270
  • trunk/Source/WebKit2/Shared/mac/RemoteLayerTreeTransaction.h

    r183242 r186712  
    196196    WebCore::IntSize contentsSize() const { return m_contentsSize; }
    197197    void setContentsSize(const WebCore::IntSize& size) { m_contentsSize = size; };
     198
     199    WebCore::IntPoint scrollOrigin() const { return m_scrollOrigin; }
     200    void setScrollOrigin(const WebCore::IntPoint& origin) { m_scrollOrigin = origin; };
    198201   
    199202    WebCore::Color pageExtendedBackgroundColor() const { return m_pageExtendedBackgroundColor; }
     
    243246
    244247    WebCore::IntSize m_contentsSize;
     248    WebCore::IntPoint m_scrollOrigin;
    245249#if PLATFORM(MAC)
    246250    WebCore::IntPoint m_scrollPosition;
  • trunk/Source/WebKit2/Shared/mac/RemoteLayerTreeTransaction.mm

    r183942 r186712  
    517517
    518518    encoder << m_contentsSize;
     519    encoder << m_scrollOrigin;
    519520#if PLATFORM(MAC)
    520521    encoder << m_scrollPosition;
     
    580581
    581582    if (!decoder.decode(result.m_contentsSize))
     583        return false;
     584
     585    if (!decoder.decode(result.m_scrollOrigin))
    582586        return false;
    583587
     
    12431247    RemoteLayerTreeTextStream ts;
    12441248
     1249    ts << "(";
     1250    dumpProperty(ts, "transactionID", m_transactionID);
     1251    dumpProperty(ts, "contentsSize", m_contentsSize);
     1252    if (m_scrollOrigin != IntPoint::zero())
     1253        dumpProperty(ts, "scrollOrigin", m_scrollOrigin);
     1254
     1255    if (m_pageScaleFactor != 1)
     1256        dumpProperty(ts, "pageScaleFactor", m_pageScaleFactor);
     1257
    12451258    ts << "(\n";
    12461259    ts.increaseIndent();
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm

    r186586 r186712  
    11461146}
    11471147
    1148 - (void)_scrollToContentOffset:(WebCore::FloatPoint)contentOffsetInPageCoordinates
     1148- (void)_scrollToContentOffset:(WebCore::FloatPoint)contentOffsetInPageCoordinates scrollOrigin:(WebCore::IntPoint)scrollOrigin
    11491149{
    11501150    if (_dynamicViewportUpdateMode != DynamicViewportUpdateMode::NotResizing)
    11511151        return;
    11521152
    1153     WebCore::FloatPoint scaledOffset = contentOffsetInPageCoordinates;
     1153    WebCore::FloatPoint contentOffsetRespectingOrigin = scrollOrigin + toFloatSize(contentOffsetInPageCoordinates);
     1154
     1155    WebCore::FloatPoint scaledOffset = contentOffsetRespectingOrigin;
    11541156    CGFloat zoomScale = contentZoomScale(self);
    11551157    scaledOffset.scale(zoomScale, zoomScale);
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewInternal.h

    r186092 r186712  
    8282- (PassRefPtr<WebKit::ViewSnapshot>)_takeViewSnapshot;
    8383
    84 - (void)_scrollToContentOffset:(WebCore::FloatPoint)contentOffset;
     84- (void)_scrollToContentOffset:(WebCore::FloatPoint)contentOffset scrollOrigin:(WebCore::IntPoint)scrollOrigin;
    8585- (BOOL)_scrollToRect:(WebCore::FloatRect)targetRect origin:(WebCore::FloatPoint)origin minimumScrollDistance:(float)minimumScrollDistance;
    8686- (void)_scrollByOffset:(WebCore::FloatPoint)offset;
  • trunk/Source/WebKit2/UIProcess/API/gtk/PageClientImpl.cpp

    r186221 r186712  
    7878}
    7979
    80 void PageClientImpl::requestScroll(const WebCore::FloatPoint&, bool)
     80void PageClientImpl::requestScroll(const WebCore::FloatPoint&, const WebCore::IntPoint&, bool)
    8181{
    8282    notImplemented();
  • trunk/Source/WebKit2/UIProcess/API/gtk/PageClientImpl.h

    r186108 r186712  
    5959    virtual bool canScrollView() override { return false; }
    6060    virtual void scrollView(const WebCore::IntRect& scrollRect, const WebCore::IntSize& scrollOffset) override;
    61     virtual void requestScroll(const WebCore::FloatPoint& scrollPosition, bool isProgrammaticScroll) override;
     61    virtual void requestScroll(const WebCore::FloatPoint& scrollPosition, const WebCore::IntPoint& scrollOrigin, bool isProgrammaticScroll) override;
    6262    virtual WebCore::IntSize viewSize() override;
    6363    virtual bool isViewWindowActive() override;
  • trunk/Source/WebKit2/UIProcess/CoordinatedGraphics/WebView.cpp

    r183517 r186712  
    305305}
    306306
    307 void WebView::requestScroll(const WebCore::FloatPoint&, bool)
     307void WebView::requestScroll(const WebCore::FloatPoint&, const WebCore::IntPoint&, bool)
    308308{
    309309    notImplemented();
  • trunk/Source/WebKit2/UIProcess/CoordinatedGraphics/WebView.h

    r186103 r186712  
    129129    virtual bool canScrollView() override { return false; }
    130130    virtual void scrollView(const WebCore::IntRect&, const WebCore::IntSize&) override;
    131     virtual void requestScroll(const WebCore::FloatPoint&, bool) override;
     131    virtual void requestScroll(const WebCore::FloatPoint&, const WebCore::IntPoint&, bool) override;
    132132
    133133    virtual WebCore::IntSize viewSize() override;
  • trunk/Source/WebKit2/UIProcess/PageClient.h

    r186088 r186712  
    9898    virtual void scrollView(const WebCore::IntRect& scrollRect, const WebCore::IntSize& scrollOffset) = 0;
    9999    // Tell the view to scroll to the given position, and whether this was a programmatic scroll.
    100     virtual void requestScroll(const WebCore::FloatPoint& scrollPosition, bool isProgrammaticScroll) = 0;
     100    virtual void requestScroll(const WebCore::FloatPoint& scrollPosition, const WebCore::IntPoint& scrollOrigin, bool isProgrammaticScroll) = 0;
    101101
    102102    // Return the size of the view the page is associated with.
     
    280280    virtual void didChangeViewportMetaTagWidth(float) = 0;
    281281    virtual double minimumZoomScale() const = 0;
    282     virtual WebCore::FloatSize contentsSize() const = 0;
     282    virtual WebCore::FloatRect documentRect() const = 0;
    283283    virtual void overflowScrollViewWillStartPanGesture() = 0;
    284284    virtual void overflowScrollViewDidScroll() = 0;
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp

    r186707 r186712  
    12761276}
    12771277
    1278 void WebPageProxy::requestScroll(const FloatPoint& scrollPosition, bool isProgrammaticScroll)
    1279 {
    1280     m_pageClient.requestScroll(scrollPosition, isProgrammaticScroll);
     1278void WebPageProxy::requestScroll(const FloatPoint& scrollPosition, const IntPoint& scrollOrigin, bool isProgrammaticScroll)
     1279{
     1280    m_pageClient.requestScroll(scrollPosition, scrollOrigin, isProgrammaticScroll);
    12811281}
    12821282
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.h

    r186707 r186712  
    419419    bool canScrollView();
    420420    void scrollView(const WebCore::IntRect& scrollRect, const WebCore::IntSize& scrollOffset); // FIXME: CoordinatedGraphics should use requestScroll().
    421     void requestScroll(const WebCore::FloatPoint& scrollPosition, bool isProgrammaticScroll);
     421    void requestScroll(const WebCore::FloatPoint& scrollPosition, const WebCore::IntPoint& scrollOrigin, bool isProgrammaticScroll);
    422422   
    423423    void setDelegatesScrolling(bool delegatesScrolling) { m_delegatesScrolling = delegatesScrolling; }
  • trunk/Source/WebKit2/UIProcess/ios/PageClientImplIOS.h

    r186092 r186712  
    5757    virtual bool canScrollView() override;
    5858    virtual void scrollView(const WebCore::IntRect& scrollRect, const WebCore::IntSize& scrollOffset) override;
    59     virtual void requestScroll(const WebCore::FloatPoint& scrollPosition, bool isProgrammaticScroll) override;
     59    virtual void requestScroll(const WebCore::FloatPoint& scrollPosition, const WebCore::IntPoint& scrollOrigin, bool isProgrammaticScroll) override;
    6060    virtual WebCore::IntSize viewSize() override;
    6161    virtual bool isViewWindowActive() override;
     
    136136    virtual void didChangeViewportMetaTagWidth(float) override;
    137137    virtual double minimumZoomScale() const override;
    138     virtual WebCore::FloatSize contentsSize() const override;
     138    virtual WebCore::FloatRect documentRect() const override;
    139139
    140140    virtual void showInspectorHighlight(const WebCore::Highlight&) override;
  • trunk/Source/WebKit2/UIProcess/ios/PageClientImplIOS.mm

    r186092 r186712  
    155155}
    156156
    157 void PageClientImpl::requestScroll(const FloatPoint& scrollPosition, bool isProgrammaticScroll)
     157void PageClientImpl::requestScroll(const FloatPoint& scrollPosition, const IntPoint& scrollOrigin, bool isProgrammaticScroll)
    158158{
    159159    UNUSED_PARAM(isProgrammaticScroll);
    160     [m_webView _scrollToContentOffset:scrollPosition];
     160    [m_webView _scrollToContentOffset:scrollPosition scrollOrigin:scrollOrigin];
    161161}
    162162
     
    279279}
    280280
    281 WebCore::FloatSize PageClientImpl::contentsSize() const
    282 {
    283     return FloatSize([m_contentView bounds].size);
     281WebCore::FloatRect PageClientImpl::documentRect() const
     282{
     283    return [m_contentView bounds];
    284284}
    285285
  • trunk/Source/WebKit2/UIProcess/ios/WKContentView.mm

    r186648 r186712  
    495495{
    496496    CGSize contentsSize = layerTreeTransaction.contentsSize();
    497     CGRect contentBounds = { CGPointZero, contentsSize };
    498     CGRect oldBounds = [self bounds];
    499 
    500     BOOL boundsChanged = !CGRectEqualToRect(oldBounds, contentBounds);
     497    CGPoint scrollOrigin = -layerTreeTransaction.scrollOrigin();
     498    CGRect contentBounds = { scrollOrigin, contentsSize };
     499
     500    BOOL boundsChanged = !CGRectEqualToRect([self bounds], contentBounds);
    501501    if (boundsChanged)
    502502        [self setBounds:contentBounds];
    503503
    504504    [_webView _didCommitLayerTree:layerTreeTransaction];
     505
     506    if (_interactionViewsContainerView) {
     507        FloatPoint scaledOrigin = layerTreeTransaction.scrollOrigin();
     508        float scale = [[_webView scrollView] zoomScale];
     509        scaledOrigin.scale(scale, scale);
     510        [_interactionViewsContainerView setFrame:CGRectMake(scaledOrigin.x(), scaledOrigin.y(), 0, 0)];
     511    }
    505512   
    506513    if (boundsChanged) {
  • trunk/Source/WebKit2/UIProcess/ios/WebPageProxyIOS.mm

    r186082 r186712  
    218218{
    219219    FloatRect constrainedUnobscuredRect = unobscuredContentRect;
    220     FloatSize contentsSize = m_pageClient.contentsSize();
    221     FloatRect documentRect = FloatRect(FloatPoint(), contentsSize);
     220    FloatRect documentRect = m_pageClient.documentRect();
    222221
    223222    if (m_pageClient.isAssistingNode())
     
    239238    }
    240239   
    241     return FrameView::rectForViewportConstrainedObjects(enclosingLayoutRect(constrainedUnobscuredRect), LayoutSize(contentsSize), displayedContentScale, false, StickToViewportBounds);
     240    return FrameView::rectForViewportConstrainedObjects(enclosingLayoutRect(constrainedUnobscuredRect), LayoutSize(documentRect.size()), displayedContentScale, false, StickToViewportBounds);
    242241}
    243242
  • trunk/Source/WebKit2/UIProcess/mac/PageClientImpl.h

    r186088 r186712  
    6262    virtual bool canScrollView() override;
    6363    virtual void scrollView(const WebCore::IntRect& scrollRect, const WebCore::IntSize& scrollOffset) override;
    64     virtual void requestScroll(const WebCore::FloatPoint& scrollPosition, bool isProgrammaticScroll) override;
     64    virtual void requestScroll(const WebCore::FloatPoint& scrollPosition, const WebCore::IntPoint& scrollOrigin, bool isProgrammaticScroll) override;
    6565
    6666    virtual WebCore::IntSize viewSize() override;
  • trunk/Source/WebKit2/UIProcess/mac/PageClientImpl.mm

    r186088 r186712  
    182182}
    183183
    184 void PageClientImpl::requestScroll(const FloatPoint& scrollPosition, bool isProgrammaticScroll)
     184void PageClientImpl::requestScroll(const FloatPoint& scrollPosition, const IntPoint& scrollOrigin, bool isProgrammaticScroll)
    185185{
    186186    ASSERT_NOT_REACHED();
  • trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm

    r186662 r186712  
    220220    // has updated the view size based on the content size.
    221221    if (requestedScrollInfo.requestsScrollPositionUpdate)
    222         m_webPageProxy.requestScroll(requestedScrollInfo.requestedScrollPosition, requestedScrollInfo.requestIsProgrammaticScroll);
     222        m_webPageProxy.requestScroll(requestedScrollInfo.requestedScrollPosition, layerTreeTransaction.scrollOrigin(), requestedScrollInfo.requestIsProgrammaticScroll);
    223223#endif // ENABLE(ASYNC_SCROLLING)
    224224
  • trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp

    r186662 r186712  
    29492949{
    29502950    layerTransaction.setContentsSize(corePage()->mainFrame().view()->contentsSize());
     2951    layerTransaction.setScrollOrigin(corePage()->mainFrame().view()->scrollOrigin());
    29512952    layerTransaction.setPageScaleFactor(corePage()->pageScaleFactor());
    29522953    layerTransaction.setRenderTreeSize(corePage()->renderTreeSize());
Note: See TracChangeset for help on using the changeset viewer.