https://bugs.webkit.org/show_bug.cgi?id=77236
Reviewed by James Robinson.
Source/WebCore:
Since the root layer has its textures potentially reserved last in a
front-to-back iteration, don't ever skip drawing it if we can't
reserve its textures. Instead, checkerboard and draw background color
quads instead to fill the viewport. This behavior is tied to the
backgroundFillsViewport setting.
* platform/graphics/chromium/TiledLayerChromium.cpp:
(WebCore::TiledLayerChromium::prepareToUpdateTiles):
* platform/graphics/chromium/cc/CCLayerTilingData.cpp:
(WebCore::CCLayerTilingData::reset):
* platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
(WebCore::CCTiledLayerImpl::appendQuads):
Source/WebKit/chromium:
This is a tiny fix. If the non-composited content layer never gets
painted, then the background color never gets set and it is just
opaque black.
* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::setIsAcceleratedCompositingActive):
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@106160
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2012-01-27 Adrienne Walker <enne@google.com>
+
+ [chromium] Don't ever skip drawing the non-composited content layer
+ https://bugs.webkit.org/show_bug.cgi?id=77236
+
+ Reviewed by James Robinson.
+
+ Since the root layer has its textures potentially reserved last in a
+ front-to-back iteration, don't ever skip drawing it if we can't
+ reserve its textures. Instead, checkerboard and draw background color
+ quads instead to fill the viewport. This behavior is tied to the
+ backgroundFillsViewport setting.
+
+ * platform/graphics/chromium/TiledLayerChromium.cpp:
+ (WebCore::TiledLayerChromium::prepareToUpdateTiles):
+ * platform/graphics/chromium/cc/CCLayerTilingData.cpp:
+ (WebCore::CCLayerTilingData::reset):
+ * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
+ (WebCore::CCTiledLayerImpl::appendQuads):
+
2012-01-27 Martin Robinson <mrobinson@igalia.com>
Fix a warning in the GTK+ build.
if (!tile->managedTexture()->reserve(m_tiler->tileSize(), m_textureFormat)) {
m_skipsIdlePaint = true;
if (!idle) {
- m_skipsDraw = true;
+ // If the background covers the viewport, always draw this
+ // layer so that checkerboarded tiles will still draw.
+ if (!backgroundCoversViewport())
+ m_skipsDraw = true;
cleanupResources();
}
return;
void CCLayerTilingData::reset()
{
m_tiles.clear();
- m_tilingData.setTotalSize(0, 0);
}
void CCLayerTilingData::layerRectToTileIndices(const IntRect& layerRect, int& left, int& top, int& right, int& bottom) const
appendGutterQuads(quadList, sharedQuadState);
- if (!m_tiler || m_tiler->isEmpty() || layerRect.isEmpty())
+ if (!m_tiler || !m_tiler->numTiles() || layerRect.isEmpty())
return;
int left, top, right, bottom;
+2012-01-27 Adrienne Walker <enne@google.com>
+
+ [chromium] Don't ever skip drawing the non-composited content layer
+ https://bugs.webkit.org/show_bug.cgi?id=77236
+
+ Reviewed by James Robinson.
+
+ This is a tiny fix. If the non-composited content layer never gets
+ painted, then the background color never gets set and it is just
+ opaque black.
+
+ * src/WebViewImpl.cpp:
+ (WebKit::WebViewImpl::setIsAcceleratedCompositingActive):
+
2012-01-27 Fady Samuel <fsamuel@chromium.org>
Rename shouldLayoutFixedElementsRelativeToFrame and make it a setting
m_nonCompositedContentHost = NonCompositedContentHost::create(WebViewImplContentPainter::create(this));
m_nonCompositedContentHost->setShowDebugBorders(page()->settings()->showDebugBorders());
+
+ if (page() && page()->mainFrame()->view())
+ m_nonCompositedContentHost->setBackgroundColor(page()->mainFrame()->view()->documentBackgroundColor());
+
m_layerTreeHost = CCLayerTreeHost::create(this, ccSettings);
if (m_layerTreeHost) {
m_layerTreeHost->setHaveWheelEventHandlers(m_haveWheelEventHandlers);