Changeset 85112 in webkit
- Timestamp:
- Apr 27, 2011 3:41:31 PM (13 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r85109 r85112 1 2011-04-27 James Robinson <jamesr@chromium.org> 2 3 Reviewed by Kenneth Russell. 4 5 [chromium] Ensure compositing layers are up to date before entering doComposite 6 https://bugs.webkit.org/show_bug.cgi?id=59159 7 8 Adds some assertions to try to catch GraphicsLayer mutations at bad times (such as during 9 GraphicsLayerClient::paintContents() implementations). 10 11 * page/FrameView.cpp: 12 (WebCore::FrameView::updateCompositingLayers): 13 Add an optional CompositingUpdateType parameter. 14 * page/FrameView.h: 15 * platform/graphics/chromium/GraphicsLayerChromium.cpp: 16 (WebCore::GraphicsLayerChromium::updateLayerPreserves3D): 17 * platform/graphics/chromium/LayerChromium.cpp: 18 (WebCore::LayerChromium::LayerChromium): 19 (WebCore::LayerChromium::~LayerChromium): 20 * platform/graphics/chromium/LayerRendererChromium.cpp: 21 (WebCore::LayerRendererChromium::updateLayers): 22 * platform/graphics/chromium/LayerRendererChromium.h: 23 Add a set of assertions that we aren't creating or destroying LayerChromiums during paintContents 24 * rendering/RenderLayer.cpp: 25 (WebCore::RenderLayer::dirtyZOrderLists): 26 (WebCore::RenderLayer::updateCompositingAndLayerListsIfNeeded): 27 * rendering/RenderLayerCompositor.cpp: 28 (WebCore::RenderLayerCompositor::updateCompositingLayers): 29 * rendering/RenderLayerCompositor.h: 30 Fix a typo in CompositingUpdateType Pait->Paint 31 1 32 2011-04-27 Pratik Solanki <psolanki@apple.com> 2 33 -
trunk/Source/WebCore/page/FrameView.cpp
r84848 r85112 586 586 587 587 #if USE(ACCELERATED_COMPOSITING) 588 void FrameView::updateCompositingLayers( )588 void FrameView::updateCompositingLayers(CompositingUpdateType updateType) 589 589 { 590 590 RenderView* view = m_frame->contentRenderer(); … … 594 594 // This call will make sure the cached hasAcceleratedCompositing is updated from the pref 595 595 view->compositor()->cacheAcceleratedCompositingFlags(); 596 view->compositor()->updateCompositingLayers( CompositingUpdateAfterLayoutOrStyleChange);596 view->compositor()->updateCompositingLayers(updateType); 597 597 598 598 #if ENABLE(FULLSCREEN_API) 599 599 Document* document = m_frame->document(); 600 600 if (isDocumentRunningFullScreenAnimation(document)) 601 view->compositor()->updateCompositingLayers( CompositingUpdateAfterLayoutOrStyleChange, document->fullScreenRenderer()->layer());601 view->compositor()->updateCompositingLayers(updateType, document->fullScreenRenderer()->layer()); 602 602 #endif 603 603 } -
trunk/Source/WebCore/page/FrameView.h
r84769 r85112 33 33 #include <wtf/Forward.h> 34 34 #include <wtf/OwnPtr.h> 35 36 #if USE(ACCELERATED_COMPOSITING) 37 #include "RenderLayerCompositor.h" // For CompositingUpdateType 38 #endif 35 39 36 40 namespace WebCore { … … 106 110 107 111 #if USE(ACCELERATED_COMPOSITING) 108 void updateCompositingLayers( );112 void updateCompositingLayers(CompositingUpdateType = CompositingUpdateAfterLayoutOrStyleChange); 109 113 bool syncCompositingStateForThisFrame(); 110 114 -
trunk/Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp
r83915 r85112 589 589 } else if (!m_preserves3D && m_transformLayer) { 590 590 // Relace the transformLayer in the parent with this layer. 591 if (m_transformLayer->superlayer()) 592 m_transformLayer->superlayer()->replaceSublayer(m_transformLayer.get(), m_layer.get()); 591 593 m_layer->removeFromSuperlayer(); 592 m_transformLayer->superlayer()->replaceSublayer(m_transformLayer.get(), m_layer.get());593 594 594 595 // Release the transform layer. -
trunk/Source/WebCore/platform/graphics/chromium/LayerChromium.cpp
r83551 r85112 82 82 , m_replicaLayer(0) 83 83 { 84 ASSERT(!LayerRendererChromium::s_inPaintLayerContents); 84 85 } 85 86 86 87 LayerChromium::~LayerChromium() 87 88 { 89 ASSERT(!LayerRendererChromium::s_inPaintLayerContents); 88 90 // Our superlayer should be holding a reference to us so there should be no 89 91 // way for us to be destroyed while we still have a superlayer. -
trunk/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp
r85100 r85112 60 60 static size_t textureMemoryLimitBytes = 64 * 1024 * 1024; 61 61 62 #ifndef NDEBUG 63 bool LayerRendererChromium::s_inPaintLayerContents = false; 64 #endif 65 62 66 static TransformationMatrix orthoMatrix(float left, float right, float bottom, float top) 63 67 { … … 284 288 updatePropertiesAndRenderSurfaces(m_rootLayer.get(), identityMatrix, renderSurfaceLayerList, m_defaultRenderSurface->m_layerList); 285 289 290 #ifndef NDEBUG 291 s_inPaintLayerContents = true; 292 #endif 286 293 paintLayerContents(renderSurfaceLayerList); 294 #ifndef NDEBUG 295 s_inPaintLayerContents = false; 296 #endif 287 297 288 298 // FIXME: Before updateCompositorResourcesRecursive, when the compositor runs in -
trunk/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.h
r84582 r85112 135 135 void removeChildContext(GraphicsContext3D*); 136 136 137 #ifndef NDEBUG 138 static bool s_inPaintLayerContents; 139 #endif 137 140 private: 138 141 typedef Vector<RefPtr<CCLayerImpl> > LayerList;
Note: See TracChangeset
for help on using the changeset viewer.