Changeset 117790 in webkit


Ignore:
Timestamp:
May 21, 2012 9:12:10 AM (12 years ago)
Author:
schenney@chromium.org
Message:

[Chromium] REGRESSION: Assertion failure on svg/custom/acid3-test-77.html
https://bugs.webkit.org/show_bug.cgi?id=86715

Reviewed by Nikolas Zimmermann.

Source/WebCore:

Calls to clear the text positioning elements in RenderSVGText must be
protected with a FontCachePurgeProtector so that fonts are not removed
before the SVG metrics are rebuilt. The protection must cover both the
cache clearing and the reconstruction calls.

Patch fixes existing tests.

  • rendering/svg/RenderSVGText.cpp:

(WebCore::RenderSVGText::subtreeChildWasAdded):
(WebCore::RenderSVGText::subtreeChildWasRemoved):
(WebCore::RenderSVGText::subtreeTextDidChange):
(WebCore::RenderSVGText::removeChild):

LayoutTests:

  • platform/chromium/test_expectations.txt: Removing expectation for acid3 test.
Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r117786 r117790  
     12012-05-21  Stephen Chenney  <schenney@chromium.org>
     2
     3        [Chromium] REGRESSION: Assertion failure on svg/custom/acid3-test-77.html
     4        https://bugs.webkit.org/show_bug.cgi?id=86715
     5
     6        Reviewed by Nikolas Zimmermann.
     7
     8        * platform/chromium/test_expectations.txt: Removing expectation for acid3 test.
     9
    1102012-05-21  Ilya Tikhonovsky  <loislo@chromium.org>
    211
  • trunk/LayoutTests/platform/chromium/test_expectations.txt

    r117767 r117790  
    37483748BUGWK86683 WIN LINUX DEBUG SLOW : inspector/profiler/heap-snapshot-summary-show-ranges.html = TEXT
    37493749
    3750 BUGWK86715 DEBUG : svg/custom/acid3-test-77.html = CRASH PASS
    3751 
    37523750BUGWK86907 WIN : http/tests/inspector/compiler-script-mapping.html = PASS TEXT
    37533751
  • trunk/Source/WebCore/ChangeLog

    r117788 r117790  
     12012-05-21  Stephen Chenney  <schenney@chromium.org>
     2
     3        [Chromium] REGRESSION: Assertion failure on svg/custom/acid3-test-77.html
     4        https://bugs.webkit.org/show_bug.cgi?id=86715
     5
     6        Reviewed by Nikolas Zimmermann.
     7
     8        Calls to clear the text positioning elements in RenderSVGText must be
     9        protected with a FontCachePurgeProtector so that fonts are not removed
     10        before the SVG metrics are rebuilt. The protection must cover both the
     11        cache clearing and the reconstruction calls.
     12
     13        Patch fixes existing tests.
     14
     15        * rendering/svg/RenderSVGText.cpp:
     16        (WebCore::RenderSVGText::subtreeChildWasAdded):
     17        (WebCore::RenderSVGText::subtreeChildWasRemoved):
     18        (WebCore::RenderSVGText::subtreeTextDidChange):
     19        (WebCore::RenderSVGText::removeChild):
     20
    1212012-05-21  Stephen Chenney  <schenney@chromium.org>
    222
  • trunk/Source/WebCore/rendering/svg/RenderSVGText.cpp

    r117225 r117790  
    172172        return;
    173173
     174    // Always protect the cache before clearing text positioning elements when the cache will subsequently be rebuilt.
     175    FontCachePurgePreventer fontCachePurgePreventer;
     176
    174177    // The positioning elements cache doesn't include the new 'child' yet. Clear the
    175178    // cache, as the next buildLayoutAttributesForTextRenderer() call rebuilds it.
     
    307310    }
    308311
     312    // Always protect the cache before clearing text positioning elements when the cache will subsequently be rebuilt.
     313    FontCachePurgePreventer fontCachePurgePreventer;
     314
    309315    // The positioning elements cache depends on the size of each text renderer in the
    310316    // subtree. If this changes, clear the cache. It's going to be rebuilt below.
     
    527533    RenderSVGInlineText* text = toRenderSVGInlineText(child);
    528534    Vector<SVGTextLayoutAttributes*, 2> affectedAttributes;
     535    FontCachePurgePreventer fontCachePurgePreventer;
    529536    subtreeChildWillBeRemoved(text, affectedAttributes);
    530537    RenderSVGBlock::removeChild(child);
Note: See TracChangeset for help on using the changeset viewer.