Diff
Modified: trunk/Source/WebCore/ChangeLog (100198 => 100199)
--- trunk/Source/WebCore/ChangeLog 2011-11-14 22:51:50 UTC (rev 100198)
+++ trunk/Source/WebCore/ChangeLog 2011-11-14 23:10:16 UTC (rev 100199)
@@ -1,3 +1,22 @@
+2011-11-14 Adrienne Walker <e...@google.com>
+
+ [chromium] Pipe compositor commit/swap up to WebWidgetClient
+ https://bugs.webkit.org/show_bug.cgi?id=72041
+
+ Reviewed by Darin Fisher.
+
+ * platform/graphics/chromium/cc/CCLayerTreeHost.h:
+ (WebCore::CCLayerTreeHost::didCommitAndDrawFrame):
+ (WebCore::CCLayerTreeHost::didCompleteSwapBuffers):
+ * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
+ (WebCore::CCSingleThreadProxy::doComposite):
+ * platform/graphics/chromium/cc/CCThreadProxy.cpp:
+ (WebCore::CCThreadProxy::onSwapBuffersCompleteOnImplThread):
+ (WebCore::CCThreadProxy::scheduledActionDrawAndSwap):
+ (WebCore::CCThreadProxy::didCommitAndDrawFrame):
+ (WebCore::CCThreadProxy::didCompleteSwapBuffers):
+ * platform/graphics/chromium/cc/CCThreadProxy.h:
+
2011-11-14 Tony Chang <t...@chromium.org>
Remove the CSS3_FLEXBOX compile time flag and enable on all ports
Modified: trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.h (100198 => 100199)
--- trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.h 2011-11-14 22:51:50 UTC (rev 100198)
+++ trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.h 2011-11-14 23:10:16 UTC (rev 100199)
@@ -57,7 +57,8 @@
virtual void applyScrollAndScale(const IntSize& scrollDelta, float pageScale) = 0;
virtual PassRefPtr<GraphicsContext3D> createLayerTreeHostContext3D() = 0;
virtual void didRecreateGraphicsContext(bool success) = 0;
- virtual void didCommitAndDrawFrame(int frameNumber) = 0;
+ virtual void didCommitAndDrawFrame() = 0;
+ virtual void didCompleteSwapBuffers() = 0;
// Used only in the single-threaded path.
virtual void scheduleComposite() = 0;
@@ -115,7 +116,8 @@
virtual PassOwnPtr<CCLayerTreeHostImpl> createLayerTreeHostImpl(CCLayerTreeHostImplClient*);
void didBecomeInvisibleOnImplThread(CCLayerTreeHostImpl*);
void didRecreateGraphicsContext(bool success);
- void didCommitAndDrawFrame(int frameNumber) { m_client->didCommitAndDrawFrame(frameNumber); }
+ void didCommitAndDrawFrame() { m_client->didCommitAndDrawFrame(); }
+ void didCompleteSwapBuffers() { m_client->didCompleteSwapBuffers(); }
void deleteContentsTexturesOnImplThread(TextureAllocator*);
// CCLayerTreeHost interface to WebView.
Modified: trunk/Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.cpp (100198 => 100199)
--- trunk/Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.cpp 2011-11-14 22:51:50 UTC (rev 100198)
+++ trunk/Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.cpp 2011-11-14 23:10:16 UTC (rev 100199)
@@ -303,7 +303,7 @@
if (m_nextFrameIsNewlyCommittedFrame) {
m_nextFrameIsNewlyCommittedFrame = false;
- m_layerTreeHost->didCommitAndDrawFrame(m_layerTreeHostImpl->sourceFrameNumber());
+ m_layerTreeHost->didCommitAndDrawFrame();
}
return true;
Modified: trunk/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp (100198 => 100199)
--- trunk/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp 2011-11-14 22:51:50 UTC (rev 100198)
+++ trunk/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp 2011-11-14 23:10:16 UTC (rev 100199)
@@ -229,6 +229,7 @@
ASSERT(isImplThread());
TRACE_EVENT("CCThreadProxy::onSwapBuffersCompleteOnImplThread", this, 0);
m_schedulerOnImplThread->didSwapBuffersComplete();
+ m_mainThreadProxy->postTask(createMainThreadTask(this, &CCThreadProxy::didCompleteSwapBuffers));
}
void CCThreadProxy::setNeedsCommitOnImplThread()
@@ -487,18 +488,26 @@
// Tell the main thread that the the newly-commited frame was drawn.
if (m_nextFrameIsNewlyCommittedFrameOnImplThread) {
m_nextFrameIsNewlyCommittedFrameOnImplThread = false;
- m_mainThreadProxy->postTask(createMainThreadTask(this, &CCThreadProxy::didCommitAndDrawFrame, m_layerTreeHostImpl->sourceFrameNumber()));
+ m_mainThreadProxy->postTask(createMainThreadTask(this, &CCThreadProxy::didCommitAndDrawFrame));
}
}
-void CCThreadProxy::didCommitAndDrawFrame(int frameNumber)
+void CCThreadProxy::didCommitAndDrawFrame()
{
ASSERT(isMainThread());
if (!m_layerTreeHost)
return;
- m_layerTreeHost->didCommitAndDrawFrame(frameNumber);
+ m_layerTreeHost->didCommitAndDrawFrame();
}
+void CCThreadProxy::didCompleteSwapBuffers()
+{
+ ASSERT(isMainThread());
+ if (!m_layerTreeHost)
+ return;
+ m_layerTreeHost->didCompleteSwapBuffers();
+}
+
void CCThreadProxy::initializeImplOnImplThread(CCCompletionEvent* completion)
{
TRACE_EVENT("CCThreadProxy::initializeImplOnImplThread", this, 0);
Modified: trunk/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.h (100198 => 100199)
--- trunk/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.h 2011-11-14 22:51:50 UTC (rev 100198)
+++ trunk/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.h 2011-11-14 23:10:16 UTC (rev 100199)
@@ -82,7 +82,8 @@
// Called on CCMainThread
void beginFrameAndCommit(int sequenceNumber, double frameBeginTime, PassOwnPtr<CCScrollAndScaleSet>);
- void didCommitAndDrawFrame(int frameNumber);
+ void didCommitAndDrawFrame();
+ void didCompleteSwapBuffers();
// Called on CCThread
struct ReadbackRequest {
Modified: trunk/Source/WebKit/chromium/ChangeLog (100198 => 100199)
--- trunk/Source/WebKit/chromium/ChangeLog 2011-11-14 22:51:50 UTC (rev 100198)
+++ trunk/Source/WebKit/chromium/ChangeLog 2011-11-14 23:10:16 UTC (rev 100199)
@@ -1,3 +1,25 @@
+2011-11-14 Adrienne Walker <e...@google.com>
+
+ [chromium] Pipe compositor commit/swap up to WebWidgetClient
+ https://bugs.webkit.org/show_bug.cgi?id=72041
+
+ Reviewed by Darin Fisher.
+
+ * public/WebWidgetClient.h:
+ (WebKit::WebWidgetClient::didCommitAndDrawCompositorFrame):
+ (WebKit::WebWidgetClient::didCompleteSwapBuffers):
+ * src/WebLayerTreeViewImpl.cpp:
+ (WebKit::WebLayerTreeViewImpl::didCommitAndDrawFrame):
+ (WebKit::WebLayerTreeViewImpl::didCompleteSwapBuffers):
+ * src/WebLayerTreeViewImpl.h:
+ * src/WebViewImpl.cpp:
+ (WebKit::WebViewImpl::didCommitAndDrawFrame):
+ (WebKit::WebViewImpl::didCompleteSwapBuffers):
+ * src/WebViewImpl.h:
+ * tests/CCLayerTreeHostTest.cpp:
+ (WTF::MockLayerTreeHostClient::didCommitAndDrawFrame):
+ (WTF::MockLayerTreeHostClient::didCompleteSwapBuffers):
+
2011-11-14 Tony Chang <t...@chromium.org>
Remove the CSS3_FLEXBOX compile time flag and enable on all ports
Modified: trunk/Source/WebKit/chromium/public/WebWidgetClient.h (100198 => 100199)
--- trunk/Source/WebKit/chromium/public/WebWidgetClient.h 2011-11-14 22:51:50 UTC (rev 100198)
+++ trunk/Source/WebKit/chromium/public/WebWidgetClient.h 2011-11-14 23:10:16 UTC (rev 100199)
@@ -60,6 +60,14 @@
virtual void didActivateCompositor(int compositorIdentifier) { }
virtual void didDeactivateCompositor() { }
+ // Called for compositing mode when the draw commands for a WebKit-side
+ // frame have been issued.
+ virtual void didCommitAndDrawCompositorFrame() { }
+
+ // Called for compositing mode when swapbuffers has been posted in the GPU
+ // process.
+ virtual void didCompleteSwapBuffers() { }
+
// Called when a call to WebWidget::composite is required
virtual void scheduleComposite() { }
Modified: trunk/Source/WebKit/chromium/src/WebLayerTreeViewImpl.cpp (100198 => 100199)
--- trunk/Source/WebKit/chromium/src/WebLayerTreeViewImpl.cpp 2011-11-14 22:51:50 UTC (rev 100198)
+++ trunk/Source/WebKit/chromium/src/WebLayerTreeViewImpl.cpp 2011-11-14 23:10:16 UTC (rev 100199)
@@ -96,11 +96,16 @@
return GraphicsContext3DPrivate::createGraphicsContextFromWebContext(webContext.release(), attributes, 0, style, usage);
}
-void WebLayerTreeViewImpl::didCommitAndDrawFrame(int frameNumber)
+void WebLayerTreeViewImpl::didCommitAndDrawFrame()
{
// FIXME: route this up to the WebLayerTreeView client
}
+void WebLayerTreeViewImpl::didCompleteSwapBuffers()
+{
+ // FIXME: route this up to the WebLayerTreeView client
+}
+
void WebLayerTreeViewImpl::didRecreateGraphicsContext(bool success)
{
if (m_client)
Modified: trunk/Source/WebKit/chromium/src/WebLayerTreeViewImpl.h (100198 => 100199)
--- trunk/Source/WebKit/chromium/src/WebLayerTreeViewImpl.h 2011-11-14 22:51:50 UTC (rev 100198)
+++ trunk/Source/WebKit/chromium/src/WebLayerTreeViewImpl.h 2011-11-14 23:10:16 UTC (rev 100199)
@@ -44,8 +44,9 @@
virtual void animateAndLayout(double frameBeginTime);
virtual void applyScrollAndScale(const WebCore::IntSize& scrollDelta, float pageScale);
virtual PassRefPtr<WebCore::GraphicsContext3D> createLayerTreeHostContext3D();
- virtual void didCommitAndDrawFrame(int frameNumber);
virtual void didRecreateGraphicsContext(bool success);
+ virtual void didCommitAndDrawFrame();
+ virtual void didCompleteSwapBuffers();
// Only used in the single threaded path.
virtual void scheduleComposite();
Modified: trunk/Source/WebKit/chromium/src/WebViewImpl.cpp (100198 => 100199)
--- trunk/Source/WebKit/chromium/src/WebViewImpl.cpp 2011-11-14 22:51:50 UTC (rev 100198)
+++ trunk/Source/WebKit/chromium/src/WebViewImpl.cpp 2011-11-14 23:10:16 UTC (rev 100199)
@@ -2803,11 +2803,18 @@
}
}
-void WebViewImpl::didCommitAndDrawFrame(int frameNumber)
+void WebViewImpl::didCommitAndDrawFrame()
{
- // FIXME: route this up to RenderWidget's didFlushPaint.
+ if (m_client)
+ m_client->didCommitAndDrawCompositorFrame();
}
+void WebViewImpl::didCompleteSwapBuffers()
+{
+ if (m_client)
+ m_client->didCompleteSwapBuffers();
+}
+
void WebViewImpl::didRecreateGraphicsContext(bool success)
{
Modified: trunk/Source/WebKit/chromium/src/WebViewImpl.h (100198 => 100199)
--- trunk/Source/WebKit/chromium/src/WebViewImpl.h 2011-11-14 22:51:50 UTC (rev 100198)
+++ trunk/Source/WebKit/chromium/src/WebViewImpl.h 2011-11-14 23:10:16 UTC (rev 100199)
@@ -224,7 +224,8 @@
virtual void animateAndLayout(double frameBeginTime);
virtual void applyScrollAndScale(const WebCore::IntSize&, float);
virtual PassRefPtr<WebCore::GraphicsContext3D> createLayerTreeHostContext3D();
- virtual void didCommitAndDrawFrame(int frameNumber);
+ virtual void didCommitAndDrawFrame();
+ virtual void didCompleteSwapBuffers();
virtual void didRecreateGraphicsContext(bool success);
virtual void scheduleComposite();
Modified: trunk/Source/WebKit/chromium/tests/CCLayerTreeHostTest.cpp (100198 => 100199)
--- trunk/Source/WebKit/chromium/tests/CCLayerTreeHostTest.cpp 2011-11-14 22:51:50 UTC (rev 100198)
+++ trunk/Source/WebKit/chromium/tests/CCLayerTreeHostTest.cpp 2011-11-14 23:10:16 UTC (rev 100199)
@@ -165,10 +165,14 @@
return context;
}
- virtual void didCommitAndDrawFrame(int frameNumber)
+ virtual void didCommitAndDrawFrame()
{
}
+ virtual void didCompleteSwapBuffers()
+ {
+ }
+
virtual void didRecreateGraphicsContext(bool)
{
}