Changeset 117056 in webkit


Ignore:
Timestamp:
May 15, 2012 5:56:35 AM (12 years ago)
Author:
fmalita@chromium.org
Message:

Mask deformations when masked content is rotated
https://bugs.webkit.org/show_bug.cgi?id=76527

Reviewed by Nikolas Zimmermann.

Source/WebCore:

Test: svg/repaint/mask-clip-target-transform.svg

RenderSVGResource::markForLayoutAndParentResourceInvalidation() needs to also
invalidate parent mask and clip resources, not just filters.

  • rendering/svg/RenderSVGResource.cpp:

(WebCore::removeFromCacheAndInvalidateDependencies):
(WebCore::RenderSVGResource::markForLayoutAndParentResourceInvalidation):

LayoutTests:

  • platform/chromium-linux/svg/repaint/mask-clip-target-transform-expected.png: Added.
  • platform/chromium/test_expectations.txt:
  • platform/mac/test_expectations.txt:
  • svg/repaint/mask-clip-target-transform-expected.txt: Added.
  • svg/repaint/mask-clip-target-transform.svg: Added.
Location:
trunk
Files:
3 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r117054 r117056  
     12012-05-15  Florin Malita  <fmalita@chromium.org>
     2
     3        Mask deformations when masked content is rotated
     4        https://bugs.webkit.org/show_bug.cgi?id=76527
     5
     6        Reviewed by Nikolas Zimmermann.
     7
     8        * platform/chromium-linux/svg/repaint/mask-clip-target-transform-expected.png: Added.
     9        * platform/chromium/test_expectations.txt:
     10        * platform/mac/test_expectations.txt:
     11        * svg/repaint/mask-clip-target-transform-expected.txt: Added.
     12        * svg/repaint/mask-clip-target-transform.svg: Added.
     13
    1142012-05-15  Sheriff Bot  <webkit.review.bot@gmail.com>
    215
  • trunk/LayoutTests/platform/chromium/test_expectations.txt

    r117030 r117056  
    12191219BUGWK81217 : svg/hixie/perf/003.xml = PASS FAIL
    12201220
     1221// Needs rebaselining after landing 76527
     1222BUGWK76527 WIN MAC : svg/repaint/mask-clip-target-transform.svg = IMAGE+TEXT IMAGE TEXT PASS
     1223
    12211224BUGWK81240 MAC : svg/text/bidi-reorder-value-lists.svg = PASS IMAGE+TEXT
    12221225
  • trunk/LayoutTests/platform/mac/test_expectations.txt

    r116900 r117056  
    208208BUGWK85990 : media/video-controls-toggling.html = TIMEOUT TEXT
    209209
     210// Requires rebaseline after bug 76527
     211BUGWK76527 : svg/repaint/mask-clip-target-transform.svg = IMAGE+TEXT IMAGE TEXT PASS
     212
    210213BUGWK85308 : ietestcenter/css3/valuesandunits/units-000.htm = IMAGE
    211214BUGWK85310 : ietestcenter/css3/valuesandunits/units-010.htm = IMAGE
  • trunk/Source/WebCore/ChangeLog

    r117055 r117056  
     12012-05-15  Florin Malita  <fmalita@chromium.org>
     2
     3        Mask deformations when masked content is rotated
     4        https://bugs.webkit.org/show_bug.cgi?id=76527
     5
     6        Reviewed by Nikolas Zimmermann.
     7
     8        Test: svg/repaint/mask-clip-target-transform.svg
     9
     10        RenderSVGResource::markForLayoutAndParentResourceInvalidation() needs to also
     11        invalidate parent mask and clip resources, not just filters.
     12
     13        * rendering/svg/RenderSVGResource.cpp:
     14        (WebCore::removeFromCacheAndInvalidateDependencies):
     15        (WebCore::RenderSVGResource::markForLayoutAndParentResourceInvalidation):
     16
    1172012-05-15  Pavel Feldman  <pfeldman@chromium.org>
    218
  • trunk/Source/WebCore/rendering/svg/RenderSVGResource.cpp

    r107067 r117056  
    2828#include "Frame.h"
    2929#include "FrameView.h"
     30#include "RenderSVGResourceClipper.h"
    3031#include "RenderSVGResourceContainer.h"
    3132#include "RenderSVGResourceFilter.h"
     33#include "RenderSVGResourceMasker.h"
    3234#include "RenderSVGResourceSolidColor.h"
    3335#include "SVGResources.h"
     
    162164}
    163165
    164 static inline void removeFromFilterCacheAndInvalidateDependencies(RenderObject* object, bool needsLayout)
     166static inline void removeFromCacheAndInvalidateDependencies(RenderObject* object, bool needsLayout)
    165167{
    166168    ASSERT(object);
     169    if (SVGResources* resources = SVGResourcesCache::cachedResourcesForRenderObject(object)) {
    167170#if ENABLE(FILTERS)
    168     if (SVGResources* resources = SVGResourcesCache::cachedResourcesForRenderObject(object)) {
    169171        if (RenderSVGResourceFilter* filter = resources->filter())
    170172            filter->removeClientFromCache(object);
    171     }
    172173#endif
     174        if (RenderSVGResourceMasker* masker = resources->masker())
     175            masker->removeClientFromCache(object);
     176
     177        if (RenderSVGResourceClipper* clipper = resources->clipper())
     178            clipper->removeClientFromCache(object);
     179    }
     180
    173181    if (!object->node() || !object->node()->isSVGElement())
    174182        return;
     
    192200        object->setNeedsLayout(true);
    193201
    194     removeFromFilterCacheAndInvalidateDependencies(object, needsLayout);
     202    removeFromCacheAndInvalidateDependencies(object, needsLayout);
    195203
    196204    // Invalidate resources in ancestor chain, if needed.
    197205    RenderObject* current = object->parent();
    198206    while (current) {
    199         removeFromFilterCacheAndInvalidateDependencies(current, needsLayout);
     207        removeFromCacheAndInvalidateDependencies(current, needsLayout);
    200208
    201209        if (current->isSVGResourceContainer()) {
Note: See TracChangeset for help on using the changeset viewer.