Diff
Modified: trunk/Source/WebCore/ChangeLog (161386 => 161387)
--- trunk/Source/WebCore/ChangeLog 2014-01-07 00:56:23 UTC (rev 161386)
+++ trunk/Source/WebCore/ChangeLog 2014-01-07 00:57:23 UTC (rev 161387)
@@ -1,3 +1,14 @@
+2014-01-06 Simon Fraser <[email protected]>
+
+ Hook up the RemoteScrollingCoordinator
+ https://bugs.webkit.org/show_bug.cgi?id=126547
+
+ Reviewed by Tim Horton.
+
+ Export lots of scrolling-related symbols for use by WebKit2.
+
+ * WebCore.exp.in:
+
2014-01-06 Seokju Kwon <[email protected]>
Web Inspector: Remove support for FileSystem in Frontend.
Modified: trunk/Source/WebCore/WebCore.exp.in (161386 => 161387)
--- trunk/Source/WebCore/WebCore.exp.in 2014-01-07 00:56:23 UTC (rev 161386)
+++ trunk/Source/WebCore/WebCore.exp.in 2014-01-07 00:57:23 UTC (rev 161387)
@@ -1001,6 +1001,7 @@
__ZN7WebCore4Page33synchronousScrollingReasonsAsTextEv
__ZN7WebCore4Page32setMemoryCacheClientCallsEnabledEb
__ZN7WebCore4Page35resumeActiveDOMObjectsAndAnimationsEv
+__ZN7WebCore4Page20scrollingCoordinatorEv
__ZN7WebCore4Page36setShouldSuppressScrollbarAnimationsEb
__ZN7WebCore4Page36suspendActiveDOMObjectsAndAnimationsEv
__ZN7WebCore4Page37setInLowQualityImageInterpolationModeEb
@@ -2863,13 +2864,60 @@
#endif
#if ENABLE(ASYNC_SCROLLING)
+__ZN7WebCore13ScrollingTree16handleWheelEventERKNS_18PlatformWheelEventE
+__ZN7WebCore13ScrollingTree18commitNewTreeStateEN3WTF10PassOwnPtrINS_18ScrollingStateTreeEEE
__ZN7WebCore13ScrollingTree21setCanRubberBandStateEbbbb
+__ZN7WebCore13ScrollingTree31willWheelEventStartSwipeGestureERKNS_18PlatformWheelEventE
+__ZN7WebCore13ScrollingTree35shouldHandleWheelEventSynchronouslyERKNS_18PlatformWheelEventE
__ZN7WebCore13ScrollingTree37setScrollingPerformanceLoggingEnabledEb
+__ZN7WebCore13ScrollingTreeC2Ev
__ZN7WebCore13ScrollingTreeD1Ev
+__ZN7WebCore13ScrollingTreeD2Ev
__ZN7WebCore15ScrollingThread15dispatchBarrierERKN3WTF8FunctionIFvvEEE
__ZN7WebCore15ScrollingThread8dispatchERKN3WTF8FunctionIFvvEEE
+__ZN7WebCore18ScrollingStateNode8setLayerERKNS_19LayerRepresentationE
+__ZN7WebCore18ScrollingStateTree10attachNodeENS_17ScrollingNodeTypeEyy
+__ZN7WebCore18ScrollingStateTree14stateNodeForIDEy
+__ZN7WebCore18ScrollingStateTree15setRemovedNodesEN3WTF6VectorIyLm0ENS1_15CrashOnOverflowEEE
+__ZN7WebCore18ScrollingStateTree6commitENS_19LayerRepresentation4TypeE
+__ZN7WebCore18ScrollingStateTree6createEPNS_25AsyncScrollingCoordinatorE
+__ZN7WebCore18ScrollingStateTreeD1Ev
+__ZN7WebCore20ScrollingCoordinator13pageDestroyedEv
__ZN7WebCore20ScrollingCoordinator45setForceSynchronousScrollLayerPositionUpdatesEb
-__ZN7WebCore4Page20scrollingCoordinatorEv
+__ZN7WebCore22ScrollingTreeFixedNode6createERNS_13ScrollingTreeEy
+__ZN7WebCore23ScrollingStateFixedNode17updateConstraintsERKNS_32FixedPositionViewportConstraintsE
+__ZN7WebCore23ScrollingTreeStickyNode6createERNS_13ScrollingTreeEy
+__ZN7WebCore24ScrollingStateStickyNode17updateConstraintsERKNS_33StickyPositionViewportConstraintsE
+__ZN7WebCore20ScrollingCoordinator35scheduleUpdateScrollPositionForNodeEyRKNS_8IntPointEbNS_31SetOrSyncScrollingLayerPositionE
+__ZN7WebCore25AsyncScrollingCoordinator14clearStateTreeEv
+__ZN7WebCore25AsyncScrollingCoordinator17attachToStateTreeENS_17ScrollingNodeTypeEyy
+__ZN7WebCore25AsyncScrollingCoordinator18syncChildPositionsERKNS_10LayoutRectE
+__ZN7WebCore25AsyncScrollingCoordinator19detachFromStateTreeEy
+__ZN7WebCore25AsyncScrollingCoordinator19updateScrollingNodeEyPNS_13GraphicsLayerES2_
+__ZN7WebCore25AsyncScrollingCoordinator22frameViewLayoutUpdatedEPNS_9FrameViewE
+__ZNK7WebCore25AsyncScrollingCoordinator24scrollingStateTreeAsTextEv
+__ZN7WebCore25AsyncScrollingCoordinator27frameViewRootLayerDidChangeEPNS_9FrameViewE
+__ZN7WebCore25AsyncScrollingCoordinator27requestScrollPositionUpdateEPNS_9FrameViewERKNS_8IntPointE
+__ZN7WebCore25AsyncScrollingCoordinator29updateViewportConstrainedNodeEyRKNS_19ViewportConstraintsEPNS_13GraphicsLayerE
+__ZN7WebCore25AsyncScrollingCoordinator30setSynchronousScrollingReasonsEj
+__ZN7WebCore25AsyncScrollingCoordinator37scrollableAreaScrollbarLayerDidChangeEPNS_14ScrollableAreaENS_20ScrollbarOrientationE
+__ZN7WebCore25AsyncScrollingCoordinator43recomputeWheelEventHandlerCountForFrameViewEPNS_9FrameViewE
+__ZN7WebCore25AsyncScrollingCoordinatorC2EPNS_4PageE
+__ZN7WebCore25AsyncScrollingCoordinatorD2Ev
+__ZN7WebCore27ScrollingStateScrollingNode14setFooterLayerERKNS_19LayerRepresentationE
+__ZN7WebCore27ScrollingStateScrollingNode14setHeaderLayerERKNS_19LayerRepresentationE
+__ZN7WebCore27ScrollingStateScrollingNode15setFooterHeightEi
+__ZN7WebCore27ScrollingStateScrollingNode15setHeaderHeightEi
+__ZN7WebCore27ScrollingStateScrollingNode15setScrollOriginERKNS_8IntPointE
+__ZN7WebCore27ScrollingStateScrollingNode15setViewportRectERKNS_7IntRectE
+__ZN7WebCore27ScrollingStateScrollingNode19setFrameScaleFactorEf
+__ZN7WebCore27ScrollingStateScrollingNode20setTotalContentsSizeERKNS_7IntSizeE
+__ZN7WebCore27ScrollingStateScrollingNode24setCounterScrollingLayerERKNS_19LayerRepresentationE
+__ZN7WebCore27ScrollingStateScrollingNode25setWheelEventHandlerCountEj
+__ZN7WebCore27ScrollingStateScrollingNode27setScrollableAreaParametersERKNS_24ScrollableAreaParametersE
+__ZN7WebCore27ScrollingStateScrollingNode30setSynchronousScrollingReasonsEj
+__ZN7WebCore27ScrollingStateScrollingNode33setScrollBehaviorForFixedElementsENS_30ScrollBehaviorForFixedElementsE
+__ZN7WebCore29ScrollingTreeScrollingNodeMac6createERNS_13ScrollingTreeEy
#endif
#if ENABLE(VIDEO)
Modified: trunk/Source/WebKit2/ChangeLog (161386 => 161387)
--- trunk/Source/WebKit2/ChangeLog 2014-01-07 00:56:23 UTC (rev 161386)
+++ trunk/Source/WebKit2/ChangeLog 2014-01-07 00:57:23 UTC (rev 161387)
@@ -1,3 +1,50 @@
+2014-01-06 Simon Fraser <[email protected]>
+
+ Hook up the RemoteScrollingCoordinator
+ https://bugs.webkit.org/show_bug.cgi?id=126547
+
+ Reviewed by Tim Horton.
+
+ Hook up the RemoteScrollingCoordinator in WebKit2.
+
+ When the RemoteLayerTreeDrawingArea is in use, WebPageProxy creates
+ a RemoteScrollingCoordinator, and hands it mouseWheel events. It then
+ scrolls via a RemoteScrollingTree constructed from state tree commits from the
+ WebProcess.
+
+ Scrolling tree commits happen via a transaction received by RemoteLayerTreeDrawingAreaProxy,
+ atomically with layer tree transactions.
+
+ * Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:
+ (WebKit::RemoteScrollingCoordinatorTransaction::encode): Fix encoding for some
+ cases seen in WebKitTestRunner where a page has no ScrollingCoordinator.
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::initializeWebPage): Create the RemoteScrollingCoordinatorProxy
+ when using a remote layer tree drawing area.
+ (WebKit::WebPageProxy::handleWheelEvent): Pass to the scrolling coordinator.
+ * UIProcess/WebPageProxy.h:
+ (WebKit::WebPageProxy::scrollingCoordinatorProxy):
+ * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h: Include the RemoteScrollingCoordinatorTransaction.
+ * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.messages.in:
+ * UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:
+ (WebKit::RemoteLayerTreeDrawingAreaProxy::commitLayerTree):
+ * UIProcess/mac/RemoteLayerTreeHost.mm:
+ (WebKit::RemoteLayerTreeHost::getLayer): It's valid to get a 0 layerID (e.g. when
+ a layer disappears) so handle this case.
+ * WebKit2.xcodeproj/project.pbxproj:
+ * WebProcess/WebCoreSupport/WebChromeClient.cpp:
+ (WebKit::WebChromeClient::createScrollingCoordinator): Override to create the
+ RemoteScrollingCoordinator in the WebProcess.
+ * WebProcess/WebCoreSupport/WebChromeClient.h:
+ * WebProcess/WebPage/WebPage.cpp:
+ (WebKit::WebPage::scrollingCoordinator): Not inline to avoid polluting the
+ header with #includes.
+ * WebProcess/WebPage/WebPage.h:
+ * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h: Say that we want a ScrollingCoordinator.
+ * WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:
+ (WebKit::RemoteLayerTreeDrawingArea::flushLayers): Add the scrollingTransaction to the
+ message.
+
2014-01-06 Jaehun Lim <[email protected]>
Use hasEnabledVerticalScrollbar instead of hasEnabledHorizontalScrollbar.
Modified: trunk/Source/WebKit2/Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp (161386 => 161387)
--- trunk/Source/WebKit2/Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp 2014-01-07 00:56:23 UTC (rev 161386)
+++ trunk/Source/WebKit2/Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp 2014-01-07 00:57:23 UTC (rev 161387)
@@ -230,12 +230,16 @@
void RemoteScrollingCoordinatorTransaction::encode(IPC::ArgumentEncoder& encoder) const
{
- encoder << m_scrollingStateTree->nodeCount();
-
- if (const ScrollingStateNode* rootNode = m_scrollingStateTree->rootStateNode())
- encodeNodeAndDescendants(encoder, *rootNode);
-
- encoder << m_scrollingStateTree->removedNodes();
+ int numNodes = m_scrollingStateTree ? m_scrollingStateTree->nodeCount() : 0;
+ encoder << numNodes;
+
+ if (m_scrollingStateTree) {
+ if (const ScrollingStateNode* rootNode = m_scrollingStateTree->rootStateNode())
+ encodeNodeAndDescendants(encoder, *rootNode);
+
+ encoder << m_scrollingStateTree->removedNodes();
+ } else
+ encoder << Vector<ScrollingNodeID>();
}
bool RemoteScrollingCoordinatorTransaction::decode(IPC::ArgumentDecoder& decoder, RemoteScrollingCoordinatorTransaction& transaction)
Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (161386 => 161387)
--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp 2014-01-07 00:56:23 UTC (rev 161386)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp 2014-01-07 00:57:23 UTC (rev 161387)
@@ -61,6 +61,7 @@
#include "WebCoreArgumentCoders.h"
#include "WebEditCommandProxy.h"
#include "WebEvent.h"
+#include "WebEventConversion.h"
#include "WebFormSubmissionListenerProxy.h"
#include "WebFramePolicyListenerProxy.h"
#include "WebFullScreenManagerProxy.h"
@@ -93,6 +94,10 @@
#include <wtf/NeverDestroyed.h>
#include <stdio.h>
+#if ENABLE(ASYNC_SCROLLING)
+#include "RemoteScrollingCoordinatorProxy.h"
+#endif
+
#if USE(COORDINATED_GRAPHICS)
#include "CoordinatedLayerTreeHostProxyMessages.h"
#endif
@@ -507,6 +512,11 @@
m_drawingArea = m_pageClient.createDrawingAreaProxy();
ASSERT(m_drawingArea);
+#if ENABLE(ASYNC_SCROLLING)
+ if (m_drawingArea->type() == DrawingAreaTypeRemoteLayerTree)
+ m_scrollingCoordinatorProxy = std::make_unique<RemoteScrollingCoordinatorProxy>(*this);
+#endif
+
#if ENABLE(INSPECTOR_SERVER)
if (pageGroup().preferences()->developerExtrasEnabled())
inspector()->enableRemoteInspection();
@@ -1235,6 +1245,11 @@
void WebPageProxy::handleWheelEvent(const NativeWebWheelEvent& event)
{
+#if ENABLE(ASYNC_SCROLLING)
+ if (m_scrollingCoordinatorProxy && m_scrollingCoordinatorProxy->handleWheelEvent(platform(event)))
+ return;
+#endif
+
if (!isValid())
return;
Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.h (161386 => 161387)
--- trunk/Source/WebKit2/UIProcess/WebPageProxy.h 2014-01-07 00:56:23 UTC (rev 161386)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.h 2014-01-07 00:57:23 UTC (rev 161387)
@@ -136,6 +136,7 @@
class NativeWebMouseEvent;
class NativeWebWheelEvent;
class PageClient;
+class RemoteScrollingCoordinatorProxy;
class StringPairVector;
class WebBackForwardList;
class WebBackForwardListItem;
@@ -335,6 +336,8 @@
WebFrameProxy* frameSetLargestFrame() const { return m_frameSetLargestFrame.get(); }
DrawingAreaProxy* drawingArea() const { return m_drawingArea.get(); }
+
+ RemoteScrollingCoordinatorProxy* scrollingCoordinatorProxy() const { return m_scrollingCoordinatorProxy.get(); }
WebBackForwardList& backForwardList() { return m_backForwardList.get(); }
@@ -1169,6 +1172,8 @@
#endif
std::unique_ptr<DrawingAreaProxy> m_drawingArea;
+ std::unique_ptr<RemoteScrollingCoordinatorProxy> m_scrollingCoordinatorProxy;
+
Ref<WebProcessProxy> m_process;
Ref<WebPageGroup> m_pageGroup;
RefPtr<WebFrameProxy> m_mainFrame;
Modified: trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h (161386 => 161387)
--- trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h 2014-01-07 00:56:23 UTC (rev 161386)
+++ trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.h 2014-01-07 00:57:23 UTC (rev 161387)
@@ -34,6 +34,7 @@
namespace WebKit {
class RemoteLayerTreeTransaction;
+class RemoteScrollingCoordinatorTransaction;
class RemoteLayerTreeDrawingAreaProxy : public DrawingAreaProxy {
public:
@@ -51,7 +52,7 @@
virtual void didReceiveMessage(IPC::Connection*, IPC::MessageDecoder&) OVERRIDE;
// Message handlers
- void commitLayerTree(const RemoteLayerTreeTransaction&);
+ void commitLayerTree(const RemoteLayerTreeTransaction&, const RemoteScrollingCoordinatorTransaction&);
void sendUpdateGeometry();
Modified: trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.messages.in (161386 => 161387)
--- trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.messages.in 2014-01-07 00:56:23 UTC (rev 161386)
+++ trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.messages.in 2014-01-07 00:57:23 UTC (rev 161387)
@@ -21,5 +21,5 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
messages -> RemoteLayerTreeDrawingAreaProxy {
- void CommitLayerTree(WebKit::RemoteLayerTreeTransaction layerTreeTransaction)
+ void CommitLayerTree(WebKit::RemoteLayerTreeTransaction layerTreeTransaction, WebKit::RemoteScrollingCoordinatorTransaction scrollingTreeTransaction)
}
Modified: trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm (161386 => 161387)
--- trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm 2014-01-07 00:56:23 UTC (rev 161386)
+++ trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm 2014-01-07 00:57:23 UTC (rev 161387)
@@ -28,6 +28,7 @@
#import "RemoteLayerTreeDrawingAreaProxyMessages.h"
#import "DrawingAreaMessages.h"
+#import "RemoteScrollingCoordinatorProxy.h"
#import "WebPageProxy.h"
#import "WebProcessProxy.h"
@@ -82,9 +83,10 @@
m_isWaitingForDidUpdateGeometry = true;
}
-void RemoteLayerTreeDrawingAreaProxy::commitLayerTree(const RemoteLayerTreeTransaction& layerTreeTransaction)
+void RemoteLayerTreeDrawingAreaProxy::commitLayerTree(const RemoteLayerTreeTransaction& layerTreeTransaction, const RemoteScrollingCoordinatorTransaction& scrollingTreeTransaction)
{
m_remoteLayerTreeHost.updateLayerTree(layerTreeTransaction);
+ m_webPageProxy->scrollingCoordinatorProxy()->updateScrollingTree(scrollingTreeTransaction);
}
} // namespace WebKit
Modified: trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeHost.mm (161386 => 161387)
--- trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeHost.mm 2014-01-07 00:56:23 UTC (rev 161386)
+++ trunk/Source/WebKit2/UIProcess/mac/RemoteLayerTreeHost.mm 2014-01-07 00:57:23 UTC (rev 161387)
@@ -89,6 +89,9 @@
CALayer *RemoteLayerTreeHost::getLayer(GraphicsLayer::PlatformLayerID layerID) const
{
+ if (!layerID)
+ return nil;
+
return m_layers.get(layerID).get();
}
Modified: trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj (161386 => 161387)
--- trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj 2014-01-07 00:56:23 UTC (rev 161386)
+++ trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj 2014-01-07 00:57:23 UTC (rev 161387)
@@ -57,6 +57,8 @@
0F59479D187B3B6000437857 /* RemoteScrollingTree.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F594797187B3B6000437857 /* RemoteScrollingTree.h */; };
0F5947A3187B3B7D00437857 /* RemoteScrollingCoordinatorTransaction.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F5947A1187B3B7D00437857 /* RemoteScrollingCoordinatorTransaction.cpp */; };
0F5947A4187B3B7D00437857 /* RemoteScrollingCoordinatorTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F5947A2187B3B7D00437857 /* RemoteScrollingCoordinatorTransaction.h */; };
+ 0F5947A7187B517600437857 /* RemoteScrollingCoordinatorMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0F5947A5187B517600437857 /* RemoteScrollingCoordinatorMessageReceiver.cpp */; };
+ 0F5947A8187B517600437857 /* RemoteScrollingCoordinatorMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 0F5947A6187B517600437857 /* RemoteScrollingCoordinatorMessages.h */; };
0FB659231208B4DB0044816C /* DrawingAreaInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FB659221208B4DB0044816C /* DrawingAreaInfo.h */; };
0FF24A2D1879E4BC003ABF0C /* RemoteLayerTreeDrawingAreaProxyMessageReceiver.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 0FF24A2B1879E4BC003ABF0C /* RemoteLayerTreeDrawingAreaProxyMessageReceiver.cpp */; };
0FF24A2E1879E4BC003ABF0C /* RemoteLayerTreeDrawingAreaProxyMessages.h in Headers */ = {isa = PBXBuildFile; fileRef = 0FF24A2C1879E4BC003ABF0C /* RemoteLayerTreeDrawingAreaProxyMessages.h */; };
@@ -1603,6 +1605,8 @@
0F594797187B3B6000437857 /* RemoteScrollingTree.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RemoteScrollingTree.h; path = Scrolling/RemoteScrollingTree.h; sourceTree = "<group>"; };
0F5947A1187B3B7D00437857 /* RemoteScrollingCoordinatorTransaction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RemoteScrollingCoordinatorTransaction.cpp; path = Scrolling/RemoteScrollingCoordinatorTransaction.cpp; sourceTree = "<group>"; };
0F5947A2187B3B7D00437857 /* RemoteScrollingCoordinatorTransaction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RemoteScrollingCoordinatorTransaction.h; path = Scrolling/RemoteScrollingCoordinatorTransaction.h; sourceTree = "<group>"; };
+ 0F5947A5187B517600437857 /* RemoteScrollingCoordinatorMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RemoteScrollingCoordinatorMessageReceiver.cpp; path = RemoteScrollingCoordinatorMessageReceiver.cpp; sourceTree = "<group>"; };
+ 0F5947A6187B517600437857 /* RemoteScrollingCoordinatorMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RemoteScrollingCoordinatorMessages.h; path = RemoteScrollingCoordinatorMessages.h; sourceTree = "<group>"; };
0FB659221208B4DB0044816C /* DrawingAreaInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DrawingAreaInfo.h; sourceTree = "<group>"; };
0FF24A2B1879E4BC003ABF0C /* RemoteLayerTreeDrawingAreaProxyMessageReceiver.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RemoteLayerTreeDrawingAreaProxyMessageReceiver.cpp; sourceTree = "<group>"; };
0FF24A2C1879E4BC003ABF0C /* RemoteLayerTreeDrawingAreaProxyMessages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RemoteLayerTreeDrawingAreaProxyMessages.h; sourceTree = "<group>"; };
@@ -5594,6 +5598,8 @@
1AC1338418590C4600F3EC05 /* RemoteObjectRegistryMessages.h */,
0FF24A2B1879E4BC003ABF0C /* RemoteLayerTreeDrawingAreaProxyMessageReceiver.cpp */,
0FF24A2C1879E4BC003ABF0C /* RemoteLayerTreeDrawingAreaProxyMessages.h */,
+ 0F5947A5187B517600437857 /* RemoteScrollingCoordinatorMessageReceiver.cpp */,
+ 0F5947A6187B517600437857 /* RemoteScrollingCoordinatorMessages.h */,
E18E6911169B667B009B6670 /* SecItemShimMessageReceiver.cpp */,
E18E6912169B667B009B6670 /* SecItemShimMessages.h */,
E18E6913169B667B009B6670 /* SecItemShimProxyMessageReceiver.cpp */,
@@ -6107,6 +6113,7 @@
BC032D7B10F4378D0058C15A /* WebDragClient.h in Headers */,
BCA0EF9F12332642007D3CFB /* WebEditCommandProxy.h in Headers */,
BC032D7D10F4378D0058C15A /* WebEditorClient.h in Headers */,
+ 0F5947A8187B517600437857 /* RemoteScrollingCoordinatorMessages.h in Headers */,
516A4A5D120A2CCD00C05B7F /* APIError.h in Headers */,
1A433F0D113C53DD00FACDE9 /* WebErrors.h in Headers */,
BC032DB910F4380F0058C15A /* WebEvent.h in Headers */,
@@ -7597,6 +7604,7 @@
51F060E11654318500F3281B /* WebResourceLoaderMessageReceiver.cpp in Sources */,
378E1A3D181ED6FF0031007A /* APIObject.mm in Sources */,
51FB08FF1639DE1A00EC324A /* WebResourceLoadScheduler.cpp in Sources */,
+ 0F5947A7187B517600437857 /* RemoteScrollingCoordinatorMessageReceiver.cpp in Sources */,
D3B9484811FF4B6500032B39 /* WebSearchPopupMenu.cpp in Sources */,
BCC5715C115ADAEF001CCAF9 /* WebSystemInterface.mm in Sources */,
C0337DD8127A51B6008FF4F4 /* WebTouchEvent.cpp in Sources */,
Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp (161386 => 161387)
--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp 2014-01-07 00:56:23 UTC (rev 161386)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp 2014-01-07 00:57:23 UTC (rev 161387)
@@ -32,6 +32,7 @@
#include "InjectedBundleUserMessageCoders.h"
#include "LayerTreeHost.h"
#include "PageBanner.h"
+#include "RemoteScrollingCoordinator.h"
#include "WebColorChooser.h"
#include "WebCoreArgumentCoders.h"
#include "WebFrame.h"
@@ -798,6 +799,15 @@
}
#endif
+PassRefPtr<ScrollingCoordinator> WebChromeClient::createScrollingCoordinator(Page* page) const
+{
+ ASSERT(m_page->corePage() == page);
+ if (m_page->drawingArea()->type() == DrawingAreaTypeRemoteLayerTree)
+ return RemoteScrollingCoordinator::create(m_page);
+
+ return 0;
+}
+
#if ENABLE(TOUCH_EVENTS)
void WebChromeClient::needTouchEvents(bool needTouchEvents)
{
Modified: trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h (161386 => 161387)
--- trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h 2014-01-07 00:56:23 UTC (rev 161386)
+++ trunk/Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.h 2014-01-07 00:57:23 UTC (rev 161387)
@@ -227,6 +227,8 @@
virtual bool layerTreeStateIsFrozen() const OVERRIDE;
#endif
+ virtual PassRefPtr<WebCore::ScrollingCoordinator> createScrollingCoordinator(WebCore::Page*) const OVERRIDE;
+
#if ENABLE(TOUCH_EVENTS)
virtual void needTouchEvents(bool) OVERRIDE;
#endif
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp (161386 => 161387)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2014-01-07 00:56:23 UTC (rev 161386)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp 2014-01-07 00:57:23 UTC (rev 161387)
@@ -3151,6 +3151,11 @@
return m_backForwardList.get();
}
+ScrollingCoordinator* WebPage::scrollingCoordinator() const
+{
+ return m_page->scrollingCoordinator();
+}
+
WebPage::SandboxExtensionTracker::~SandboxExtensionTracker()
{
invalidate();
Modified: trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h (161386 => 161387)
--- trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h 2014-01-07 00:56:23 UTC (rev 161386)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h 2014-01-07 00:57:23 UTC (rev 161387)
@@ -183,6 +183,7 @@
InjectedBundleBackForwardList* backForwardList();
DrawingArea* drawingArea() const { return m_drawingArea.get(); }
+ WebCore::ScrollingCoordinator* scrollingCoordinator() const;
WebPageGroupProxy* pageGroup() const { return m_pageGroup.get(); }
Modified: trunk/Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h (161386 => 161387)
--- trunk/Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h 2014-01-07 00:56:23 UTC (rev 161386)
+++ trunk/Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h 2014-01-07 00:57:23 UTC (rev 161387)
@@ -64,6 +64,7 @@
virtual void didUninstallPageOverlay(PageOverlay*) OVERRIDE;
virtual void setPageOverlayNeedsDisplay(PageOverlay*, const WebCore::IntRect&) OVERRIDE;
virtual void setPageOverlayOpacity(PageOverlay*, float) OVERRIDE;
+ virtual bool supportsAsyncScrolling() OVERRIDE { return true; }
virtual void setLayerTreeStateIsFrozen(bool) OVERRIDE;
Modified: trunk/Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm (161386 => 161387)
--- trunk/Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm 2014-01-07 00:56:23 UTC (rev 161386)
+++ trunk/Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm 2014-01-07 00:57:23 UTC (rev 161387)
@@ -30,6 +30,8 @@
#import "GraphicsLayerCARemote.h"
#import "RemoteLayerTreeContext.h"
#import "RemoteLayerTreeDrawingAreaProxyMessages.h"
+#import "RemoteScrollingCoordinator.h"
+#import "RemoteScrollingCoordinatorTransaction.h"
#import "WebPage.h"
#import <WebCore/Frame.h>
#import <WebCore/FrameView.h>
@@ -319,7 +321,11 @@
RemoteLayerTreeTransaction layerTransaction;
m_remoteLayerTreeContext->buildTransaction(layerTransaction, *m_rootLayer);
- m_webPage->send(Messages::RemoteLayerTreeDrawingAreaProxy::CommitLayerTree(layerTransaction));
+ RemoteScrollingCoordinatorTransaction scrollingTransaction;
+ if (m_webPage->scrollingCoordinator())
+ toRemoteScrollingCoordinator(m_webPage->scrollingCoordinator())->buildTransaction(scrollingTransaction);
+
+ m_webPage->send(Messages::RemoteLayerTreeDrawingAreaProxy::CommitLayerTree(layerTransaction, scrollingTransaction));
}
} // namespace WebKit