Diff
Modified: trunk/Source/WebCore/ChangeLog (106934 => 106935)
--- trunk/Source/WebCore/ChangeLog 2012-02-07 14:52:17 UTC (rev 106934)
+++ trunk/Source/WebCore/ChangeLog 2012-02-07 15:16:55 UTC (rev 106935)
@@ -1,3 +1,21 @@
+2012-02-07 Jonathan Backer <bac...@chromium.org>
+
+ [chromium] Add setNeedsRedraw to WebWidget
+ https://bugs.webkit.org/show_bug.cgi?id=77555
+
+ Reviewed by James Robinson.
+
+ * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
+ (WebCore::CCLayerTreeHost::setNeedsRedraw):
+ * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
+ (WebCore::CCSingleThreadProxy::setNeedsRedraw):
+ * platform/graphics/chromium/cc/CCThreadProxy.cpp:
+ (WebCore::CCThreadProxy::setNeedsRedraw):
+ (WebCore::CCThreadProxy::resetDamageTrackerOnImplThread):
+ (WebCore):
+ * platform/graphics/chromium/cc/CCThreadProxy.h:
+ (CCThreadProxy):
+
2012-02-07 Michael BrĂ¼ning <michael.brun...@nokia.com>
[Qt][WK2] Compute and set cache capacities using the current CacheModel
Modified: trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.cpp (106934 => 106935)
--- trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.cpp 2012-02-07 14:52:17 UTC (rev 106934)
+++ trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.cpp 2012-02-07 15:16:55 UTC (rev 106935)
@@ -251,9 +251,8 @@
void CCLayerTreeHost::setNeedsRedraw()
{
- if (CCThreadProxy::implThread())
- m_proxy->setNeedsRedraw();
- else
+ m_proxy->setNeedsRedraw();
+ if (!CCThreadProxy::implThread())
m_client->scheduleComposite();
}
Modified: trunk/Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.cpp (106934 => 106935)
--- trunk/Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.cpp 2012-02-07 14:52:17 UTC (rev 106934)
+++ trunk/Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.cpp 2012-02-07 15:16:55 UTC (rev 106935)
@@ -29,6 +29,7 @@
#include "GraphicsContext3D.h"
#include "LayerRendererChromium.h"
#include "TraceEvent.h"
+#include "cc/CCDamageTracker.h"
#include "cc/CCLayerTreeHost.h"
#include "cc/CCTextureUpdater.h"
#include <wtf/CurrentTime.h>
@@ -194,6 +195,10 @@
void CCSingleThreadProxy::setNeedsRedraw()
{
+ CCRenderSurface* renderSurface = m_layerTreeHostImpl->rootLayer()->renderSurface();
+ if (renderSurface)
+ renderSurface->damageTracker()->forceFullDamageNextUpdate();
+
// FIXME: Once we move render_widget scheduling into this class, we can
// treat redraw requests more efficiently than commitAndRedraw requests.
setNeedsCommit();
Modified: trunk/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp (106934 => 106935)
--- trunk/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp 2012-02-07 14:52:17 UTC (rev 106934)
+++ trunk/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp 2012-02-07 15:16:55 UTC (rev 106935)
@@ -28,6 +28,7 @@
#include "GraphicsContext3D.h"
#include "TraceEvent.h"
+#include "cc/CCDamageTracker.h"
#include "cc/CCDelayBasedTimeSource.h"
#include "cc/CCFrameRateController.h"
#include "cc/CCInputHandler.h"
@@ -248,6 +249,7 @@
{
ASSERT(isMainThread());
TRACE_EVENT("CCThreadProxy::setNeedsRedraw", this, 0);
+ CCProxy::implThread()->postTask(createCCThreadTask(this, &CCThreadProxy::resetDamageTrackerOnImplThread));
CCProxy::implThread()->postTask(createCCThreadTask(this, &CCThreadProxy::setNeedsRedrawOnImplThread));
}
@@ -274,6 +276,14 @@
completion->signal();
}
+void CCThreadProxy::resetDamageTrackerOnImplThread()
+{
+ ASSERT(isImplThread());
+ CCRenderSurface* renderSurface = m_layerTreeHostImpl->rootLayer()->renderSurface();
+ if (renderSurface)
+ renderSurface->damageTracker()->forceFullDamageNextUpdate();
+}
+
void CCThreadProxy::setNeedsRedrawOnImplThread()
{
ASSERT(isImplThread());
Modified: trunk/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.h (106934 => 106935)
--- trunk/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.h 2012-02-07 14:52:17 UTC (rev 106934)
+++ trunk/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.h 2012-02-07 15:16:55 UTC (rev 106935)
@@ -103,6 +103,7 @@
void initializeLayerRendererOnImplThread(CCCompletionEvent*, bool* initializeSucceeded, LayerRendererCapabilities*);
void setVisibleOnImplThread(CCCompletionEvent*, bool visible);
void layerTreeHostClosedOnImplThread(CCCompletionEvent*);
+ void resetDamageTrackerOnImplThread();
// Accessed on main thread only.
bool m_animateRequested;
Modified: trunk/Source/WebKit/chromium/ChangeLog (106934 => 106935)
--- trunk/Source/WebKit/chromium/ChangeLog 2012-02-07 14:52:17 UTC (rev 106934)
+++ trunk/Source/WebKit/chromium/ChangeLog 2012-02-07 15:16:55 UTC (rev 106935)
@@ -1,3 +1,19 @@
+2012-02-07 Jonathan Backer <bac...@chromium.org>
+
+ [chromium] Add setNeedsRedraw to WebWidget
+ https://bugs.webkit.org/show_bug.cgi?id=77555
+
+ Reviewed by James Robinson.
+
+ * public/WebWidget.h:
+ (WebWidget):
+ (WebKit::WebWidget::setNeedsRedraw):
+ * src/WebViewImpl.cpp:
+ (WebKit::WebViewImpl::setNeedsRedraw):
+ (WebKit):
+ * src/WebViewImpl.h:
+ (WebViewImpl):
+
2012-02-07 Sheriff Bot <webkit.review....@gmail.com>
Unreviewed. Rolled DEPS.
Modified: trunk/Source/WebKit/chromium/public/WebWidget.h (106934 => 106935)
--- trunk/Source/WebKit/chromium/public/WebWidget.h 2012-02-07 14:52:17 UTC (rev 106934)
+++ trunk/Source/WebKit/chromium/public/WebWidget.h 2012-02-07 15:16:55 UTC (rev 106935)
@@ -107,6 +107,11 @@
// animate or layout in this case.
virtual void composite(bool finish) = 0;
+ // Temporary method for the embedder to notify the WebWidget that the widget
+ // has taken damage, e.g. due to a window expose. This method will be
+ // removed when the WebWidget inversion patch lands --- http://crbug.com/112837
+ virtual void setNeedsRedraw() { }
+
// Called to inform the WebWidget of a change in theme.
// Implementors that cache rendered copies of widgets need to re-render
// on receiving this message
Modified: trunk/Source/WebKit/chromium/src/WebViewImpl.cpp (106934 => 106935)
--- trunk/Source/WebKit/chromium/src/WebViewImpl.cpp 2012-02-07 14:52:17 UTC (rev 106934)
+++ trunk/Source/WebKit/chromium/src/WebViewImpl.cpp 2012-02-07 15:16:55 UTC (rev 106935)
@@ -1271,6 +1271,14 @@
#endif
}
+void WebViewImpl::setNeedsRedraw()
+{
+#if USE(ACCELERATED_COMPOSITING)
+ if (m_layerTreeHost && isAcceleratedCompositingActive())
+ m_layerTreeHost->setNeedsRedraw();
+#endif
+}
+
void WebViewImpl::loseCompositorContext(int numTimes)
{
#if USE(ACCELERATED_COMPOSITING)
Modified: trunk/Source/WebKit/chromium/src/WebViewImpl.h (106934 => 106935)
--- trunk/Source/WebKit/chromium/src/WebViewImpl.h 2012-02-07 14:52:17 UTC (rev 106934)
+++ trunk/Source/WebKit/chromium/src/WebViewImpl.h 2012-02-07 15:16:55 UTC (rev 106935)
@@ -113,6 +113,7 @@
virtual void paint(WebCanvas*, const WebRect&);
virtual void themeChanged();
virtual void composite(bool finish);
+ virtual void setNeedsRedraw();
virtual bool handleInputEvent(const WebInputEvent&);
virtual void mouseCaptureLost();
virtual void setFocus(bool enable);