Bug 78332

Summary: [Qt] 6 SVG tests assert after r107207
Product: WebKit Reporter: Csaba Osztrogonác <ossy>
Component: Tools / TestsAssignee: Nobody <webkit-unassigned>
Status: RESOLVED WORKSFORME    
Severity: Critical CC: kkristof, ossy, rhodovan.u-szeged, zherczeg, zimmermann
Priority: P1 Keywords: Qt, QtTriaged
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Bug Depends on: 67543    
Bug Blocks: 78115, 78219, 79668    

Description Csaba Osztrogonác 2012-02-10 00:46:27 PST
After r107207 the following tests started to assert in debug mode:
svg/custom/mask-child-changes.svg
svg/custom/mask-invalidation.svg
svg/custom/absolute-sized-content-with-resources.xhtml

ASSERTION FAILED: m_transparencyCount > 0
../../../../Source/WebCore/platform/graphics/GraphicsContext.cpp(346) : void WebCore::GraphicsContext::endTransparencyLayer()

Nikos comment on the original bug:
"hm, I guess this only exposes a Qt bug - that's now visible due the changed timing. It's not something I can fix without a Qt build"
Comment 1 Csaba Osztrogonác 2012-02-10 00:57:13 PST
I skipped the to paint the bot green - http://trac.webkit.org/changeset/107378
Please unskip them with the proper fix.
Comment 2 Nikolas Zimmermann 2012-02-17 03:12:47 PST
> ASSERTION FAILED: m_transparencyCount > 0

Hmpf, the problem is the m_transparencyCount generalization. Qt maintains a different count "layerCount" returned by isInTransparentLayer(), and it calls endTransparencyLayer too often, compared to all other ports - to support image clipping.

Cairo has similar needs (mask image operation during restore()) but doesn't suffer from the problem - can this be reused instead? I hope Zoltan can have a look.
Comment 3 Nikolas Zimmermann 2012-02-17 03:19:49 PST
Bug 67543 is the culprit, leading to the Qt assertion.
Comment 4 Csaba Osztrogonác 2012-02-21 04:59:08 PST
Two more asserting test:
svg/dynamic-updates/SVGMaskElement-svgdom-width-prop.html
svg/dynamic-updates/SVGMaskElement-dom-x-attr.html
Comment 5 Csaba Osztrogonác 2012-02-21 05:06:58 PST
(In reply to comment #4)
> Two more asserting test:
> svg/dynamic-updates/SVGMaskElement-svgdom-width-prop.html
> svg/dynamic-updates/SVGMaskElement-dom-x-attr.html

And svg/dynamic-updates/SVGPathElement-dom-requiredFeatures.html

I skipped them too. I hope once the test coverge will hit 0% and then all tests will pass forever. :)
Comment 6 Kristóf Kosztyó 2012-05-15 01:14:38 PDT
Committed r117040: <http://trac.webkit.org/changeset/117040>
Comment 7 Kristóf Kosztyó 2012-05-15 02:31:20 PDT
These don't asserts now, hence I unskipped them in r117040