From: commit-queue@webkit.org Date: Mon, 4 Mar 2013 22:16:46 +0000 (+0000) Subject: Canvas and DOM go out of sync X-Git-Url: http://git.webkit.org/?p=WebKit-https.git;a=commitdiff_plain;h=6fdff55995e756e84602cf619cf4baa830f837b5 Canvas and DOM go out of sync https://bugs.webkit.org/show_bug.cgi?id=107701 Patch by Alexis Hetu on 2013-03-04 Reviewed by Simon Fraser. Source/WebCore: Test: fast/canvas/canvas-overflow-hidden-animation.html Added an update of the current compositor from the layer's stacking container when the layer itself isn't a stacking container. * rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::updateAfterLayout): Added an update of the stacking container of the owning layer of the layer backing when the owning layer isn't a stacking container itself. LayoutTests: Added a new layout test for moving an object (a div) within a div that has the "overflow:hidden" property. * fast/canvas/canvas-overflow-hidden-animation-expected.html: Added. * fast/canvas/canvas-overflow-hidden-animation.html: Added. git-svn-id: https://svn.webkit.org/repository/webkit/trunk@144674 268f45cc-cd09-0410-ab3c-d52691b4dbfc --- diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog index cd2d555..9358038 100644 --- a/LayoutTests/ChangeLog +++ b/LayoutTests/ChangeLog @@ -1,3 +1,16 @@ +2013-03-04 Alexis Hetu + + Canvas and DOM go out of sync + https://bugs.webkit.org/show_bug.cgi?id=107701 + + Reviewed by Simon Fraser. + + Added a new layout test for moving an object (a div) within a div that + has the "overflow:hidden" property. + + * fast/canvas/canvas-overflow-hidden-animation-expected.html: Added. + * fast/canvas/canvas-overflow-hidden-animation.html: Added. + 2013-03-04 Tom Sepez XSSAuditor bypass with --> comment syntax. diff --git a/LayoutTests/fast/canvas/canvas-overflow-hidden-animation-expected.html b/LayoutTests/fast/canvas/canvas-overflow-hidden-animation-expected.html new file mode 100644 index 0000000..47133bc --- /dev/null +++ b/LayoutTests/fast/canvas/canvas-overflow-hidden-animation-expected.html @@ -0,0 +1,63 @@ + + + + + + + +
+ + + + diff --git a/LayoutTests/fast/canvas/canvas-overflow-hidden-animation.html b/LayoutTests/fast/canvas/canvas-overflow-hidden-animation.html new file mode 100644 index 0000000..8e4750f --- /dev/null +++ b/LayoutTests/fast/canvas/canvas-overflow-hidden-animation.html @@ -0,0 +1,67 @@ + + + + + + + +
+ + + + diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog index 86bca39..2ed2b8a 100644 --- a/Source/WebCore/ChangeLog +++ b/Source/WebCore/ChangeLog @@ -1,3 +1,20 @@ +2013-03-04 Alexis Hetu + + Canvas and DOM go out of sync + https://bugs.webkit.org/show_bug.cgi?id=107701 + + Reviewed by Simon Fraser. + + Test: fast/canvas/canvas-overflow-hidden-animation.html + + Added an update of the current compositor from the layer's stacking + container when the layer itself isn't a stacking container. + + * rendering/RenderLayerBacking.cpp: + (WebCore::RenderLayerBacking::updateAfterLayout): + Added an update of the stacking container of the owning layer of the + layer backing when the owning layer isn't a stacking container itself. + 2013-03-04 Alexey Proskuryakov Small BlobResourceHandle cleanup diff --git a/Source/WebCore/rendering/RenderLayerBacking.cpp b/Source/WebCore/rendering/RenderLayerBacking.cpp index 448a896..b364a06 100644 --- a/Source/WebCore/rendering/RenderLayerBacking.cpp +++ b/Source/WebCore/rendering/RenderLayerBacking.cpp @@ -464,6 +464,9 @@ void RenderLayerBacking::updateAfterLayout(UpdateAfterLayoutFlags flags) if (flags & IsUpdateRoot) { updateGraphicsLayerGeometry(); layerCompositor->updateRootLayerPosition(); + RenderLayer* stackingContainer = m_owningLayer->enclosingStackingContainer(); + if (!layerCompositor->compositingLayersNeedRebuild() && stackingContainer && (stackingContainer != m_owningLayer)) + layerCompositor->updateCompositingDescendantGeometry(stackingContainer, stackingContainer, flags & CompositingChildrenOnly); } }