Changeset 143379 in webkit


Ignore:
Timestamp:
Feb 19, 2013, 1:48:33 PM (12 years ago)
Author:
pdr@google.com
Message:

Merge 141645

Prevent skipped repaints for children of inner SVG elements
https://bugs.webkit.org/show_bug.cgi?id=108429

Reviewed by Eric Seidel.

Source/WebCore:

This patch fixes a bug caused by r108699 and r133786 where we would not repaint children
of inner SVG elements because "m_didTransformToRootUpdate" was never reset on viewport
containers. The stale m_didTransformToRootUpdate variable caused us to skip child repaints.

I verified that the Robohornet SVG benchmark performance gains in r133786 are not regressed
with this patch.

Test: svg/repaint/svgsvgelement-repaint-children.html

  • rendering/svg/RenderSVGViewportContainer.cpp:

(WebCore::RenderSVGViewportContainer::calcViewport):

This can be removed because setNeedsTransformUpdate() will set m_needsTransformUpdate.

(WebCore::RenderSVGViewportContainer::calculateLocalTransform):

This change is straightforward and is similar to the equivalent assignment in
RenderSVGTransformableContainer::calculateLocalTransform().

LayoutTests:

Need to update expectations for a single file (just a 1px difference).

  • platform/chromium/TestExpectations:
  • platform/efl/TestExpectations:
  • platform/mac/TestExpectations:
  • platform/qt/TestExpectations:
  • platform/win/TestExpectations:
  • svg/repaint/svgsvgelement-repaint-children-expected.png: Added.
  • svg/repaint/svgsvgelement-repaint-children-expected.txt: Added.
  • svg/repaint/svgsvgelement-repaint-children.html: Added.

TBR=pdr@google.com

Location:
branches/chromium/1364
Files:
5 edited
3 copied

Legend:

Unmodified
Added
Removed
  • branches/chromium/1364/LayoutTests/platform/chromium/TestExpectations

    r142740 r143379  
    36203620webkit.org/b/94242 [ Android Debug ] media/track/track-cues-sorted-before-dispatch.html [ Crash Pass Timeout ]
    36213621
     3622# Needs a rebaseline after WK108429 lands.
     3623webkit.org/b/108429 svg/custom/text-ctm.svg [ Pass Failure ]
     3624webkit.org/b/108429 svg/repaint/svgsvgelement-repaint-children.html [ Pass Failure ]
     3625
    36223626# Chromium still has the CC toggle button, not the menu of tracks.
    36233627webkit.org/b/101670 media/video-controls-captions-trackmenu.html [ Skip ]
  • branches/chromium/1364/LayoutTests/platform/mac/TestExpectations

    r141158 r143379  
    11561156webkit.org/b/104595 fast/css/empty-generated-content.html [ Failure ]
    11571157
     1158# Needs a rebaseline after WK108429 lands.
     1159webkit.org/b/108429 svg/custom/text-ctm.svg [ Pass Failure ]
     1160
    11581161webkit.org/b/93247 [ Debug ] fast/lists/list-marker-remove-crash.html [ Crash ]
    11591162
  • branches/chromium/1364/LayoutTests/platform/qt/TestExpectations

    r137662 r143379  
    23372337webkit.org/b/99870 svg/custom/pattern-scaling.svg [ Pass ImageOnlyFailure Missing ]
    23382338
     2339# Needs a rebaseline after WK108429 lands.
     2340webkit.org/b/108429 svg/custom/text-ctm.svg [ Pass Failure ]
     2341
    23392342# Disable webaudio codec tests, including proprietary codecs.
    23402343webkit.org/b/88794 webaudio/codec-tests
  • branches/chromium/1364/LayoutTests/platform/win/TestExpectations

    r137662 r143379  
    20352035fast/forms/time-multiple-fields
    20362036fast/forms/week-multiple-fields
     2037
     2038# Needs a rebaseline after WK108429 lands.
     2039svg/custom/text-ctm.svg
    20372040
    20382041# Require rebaseline after https://bugs.webkit.org/show_bug.cgi?id=84286
  • branches/chromium/1364/Source/WebCore/rendering/svg/RenderSVGViewportContainer.cpp

    r109097 r143379  
    115115
    116116    if (oldViewport != m_viewport) {
    117         m_didTransformToRootUpdate = true;
    118117        setNeedsBoundariesUpdate();
    119118        setNeedsTransformUpdate();
     
    123122bool RenderSVGViewportContainer::calculateLocalTransform()
    124123{
     124    m_didTransformToRootUpdate = m_needsTransformUpdate || SVGRenderSupport::transformToRootChanged(parent());
    125125    if (!m_needsTransformUpdate)
    126126        return false;
Note: See TracChangeset for help on using the changeset viewer.