Index: Source/web/WebViewImpl.cpp |
diff --git a/Source/web/WebViewImpl.cpp b/Source/web/WebViewImpl.cpp |
index a79c698484072414f1953b3cd1c6778c9d08d245..b36babbc47442d6a4d7e72058fd991f8edd02107 100644 |
--- a/Source/web/WebViewImpl.cpp |
+++ b/Source/web/WebViewImpl.cpp |
@@ -386,6 +386,7 @@ WebViewImpl::WebViewImpl(WebViewClient* client) |
, m_graphicsLayerFactory(adoptPtr(new GraphicsLayerFactoryChromium(this))) |
, m_isAcceleratedCompositingActive(false) |
, m_layerTreeViewCommitsDeferred(false) |
+ , m_layerTreeViewClosed(false) |
, m_matchesHeuristicsForGpuRasterization(false) |
, m_recreatingGraphicsContext(false) |
, m_flingModifier(0) |
@@ -2434,6 +2435,7 @@ void WebViewImpl::willCloseLayerTreeView() |
{ |
setIsAcceleratedCompositingActive(false); |
m_layerTreeView = 0; |
+ m_layerTreeViewClosed = true; |
} |
void WebViewImpl::didAcquirePointerLock() |
@@ -3907,6 +3909,10 @@ void WebViewImpl::setIsAcceleratedCompositingActive(bool active) |
if (!m_client) |
return; |
+ // In the middle of shutting down; don't try to spin back up a compositor. |
+ if (m_layerTreeViewClosed) |
+ return; |
+ |
if (!active) { |
m_isAcceleratedCompositingActive = false; |
if (!m_layerTreeViewCommitsDeferred |