Fix a hang when combining tile cache layers with preserve-3d or reflections
<rdar://problem/12539560>
Created attachment 169728 [details] Patch
Comment on attachment 169728 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=169728&action=review I might like to see the changelog describe why preserve-3d and reflection layers hit this. > Source/WebCore/ChangeLog:15 > + on the fact that this flag-dirtying functions get called before the later functions typo this->these > Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:1445 > - // Update the properties of m_layer now that we no longer have a structural layer. > - updateGeometry(pageScaleFactor, positionRelativeToBase); > - updateTransform(); > - updateChildrenTransform(); > - > + m_uncommittedChanges |= NameChanged > + | GeometryChanged > + | TransformChanged > + | ChildrenTransformChanged > + | ChildrenChanged > + | BackfaceVisibilityChanged BackfaceVisibility wasn't here before the change. Is this right? Probably a mistake that it wasn't :)
http://trac.webkit.org/changeset/131964
Comment on attachment 169728 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=169728&action=review > Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm:333 > + ASSERT(m_layer.get() != layer->m_layer.get()); This kind of thing is supposed to work without the get(). > Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm:341 > + ASSERT(m_layer.get() != layer->m_layer.get()); Ditto. > Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm:349 > + ASSERT(m_layer.get() != layer->m_layer.get()); Again.
(In reply to comment #5) > (From update of attachment 169728 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=169728&action=review > > > Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm:333 > > + ASSERT(m_layer.get() != layer->m_layer.get()); > > This kind of thing is supposed to work without the get(). > > > Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm:341 > > + ASSERT(m_layer.get() != layer->m_layer.get()); > > Ditto. > > > Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm:349 > > + ASSERT(m_layer.get() != layer->m_layer.get()); > > Again. Fixed in http://trac.webkit.org/changeset/131966.