From e3b81f7ade9438ed8efc3503c71357071d4a1c23 Mon Sep 17 00:00:00 2001 From: "kbr@google.com" Date: Wed, 1 Dec 2010 23:58:16 +0000 Subject: [PATCH] 2010-12-01 Alexey Marinichev 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): git-svn-id: http://svn.webkit.org/repository/webkit/trunk@73079 268f45cc-cd09-0410-ab3c-d52691b4dbfc --- WebKit/chromium/ChangeLog | 12 ++++++++++++ WebKit/chromium/src/WebViewImpl.cpp | 18 ++++++++---------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog index c908480d3bc9..fc4a2aa72116 100644 --- a/WebKit/chromium/ChangeLog +++ b/WebKit/chromium/ChangeLog @@ -1,3 +1,15 @@ +2010-12-01 Alexey Marinichev + + 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 Reviewed by Darin Fisher. diff --git a/WebKit/chromium/src/WebViewImpl.cpp b/WebKit/chromium/src/WebViewImpl.cpp index c6f227ec2bc5..e44c3741578f 100644 --- a/WebKit/chromium/src/WebViewImpl.cpp +++ b/WebKit/chromium/src/WebViewImpl.cpp @@ -2272,17 +2272,15 @@ bool WebViewImpl::allowsAcceleratedCompositing() 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() @@ -2381,7 +2379,8 @@ void WebViewImpl::setIsAcceleratedCompositingActive(bool active) 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; } @@ -2518,7 +2517,6 @@ void WebViewImpl::reallocateRenderer() m_layerRenderer = layerRenderer; // Enable or disable accelerated compositing and request a refresh. - m_isAcceleratedCompositingActive = false; setRootGraphicsLayer(m_layerRenderer ? m_layerRenderer->rootLayer() : 0); } #endif -- 2.36.0