+2010-12-01 Alexey Marinichev <amarinichev@chromium.org>
+
+ Reviewed by James Robinson.
+
+ [chromium] renderer does not realize hardware compositing is disabled and crashes
+ https://bugs.webkit.org/show_bug.cgi?id=50264
+
+ * src/WebViewImpl.cpp:
+ (WebKit::WebViewImpl::setRootGraphicsLayer): repaint always
+ (WebKit::WebViewImpl::setIsAcceleratedCompositingActive): null check
+ (WebKit::WebViewImpl::reallocateRenderer):
+
2010-11-30 Vangelis Kokkevis <vangelis@chromium.org>
Reviewed by Darin Fisher.
void WebViewImpl::setRootGraphicsLayer(WebCore::PlatformLayer* layer)
{
- bool wasActive = m_isAcceleratedCompositingActive;
setIsAcceleratedCompositingActive(layer ? true : false);
if (m_layerRenderer)
m_layerRenderer->setRootLayer(layer);
- if (wasActive != m_isAcceleratedCompositingActive) {
- IntRect damagedRect(0, 0, m_size.width, m_size.height);
- if (m_isAcceleratedCompositingActive)
- invalidateRootLayerRect(damagedRect);
- else
- m_client->didInvalidateRect(damagedRect);
- }
+
+ IntRect damagedRect(0, 0, m_size.width, m_size.height);
+ if (m_isAcceleratedCompositingActive)
+ invalidateRootLayerRect(damagedRect);
+ else
+ m_client->didInvalidateRect(damagedRect);
}
void WebViewImpl::setRootLayerNeedsDisplay()
if (!active) {
m_isAcceleratedCompositingActive = false;
- m_layerRenderer->finish(); // finish all GL rendering before we hide the window?
+ if (m_layerRenderer)
+ m_layerRenderer->finish(); // finish all GL rendering before we hide the window?
m_client->didActivateAcceleratedCompositing(false);
return;
}
m_layerRenderer = layerRenderer;
// Enable or disable accelerated compositing and request a refresh.
- m_isAcceleratedCompositingActive = false;
setRootGraphicsLayer(m_layerRenderer ? m_layerRenderer->rootLayer() : 0);
}
#endif