Bug 78332 - [Qt] 6 SVG tests assert after r107207
Summary: [Qt] 6 SVG tests assert after r107207
Status: RESOLVED WORKSFORME
Alias: None
Product: WebKit
Classification: Unclassified
Component: Tools / Tests (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P1 Critical
Assignee: Nobody
URL:
Keywords: Qt, QtTriaged
Depends on: 67543
Blocks: 78115 78219 79668
  Show dependency treegraph
 
Reported: 2012-02-10 00:46 PST by Csaba Osztrogonác
Modified: 2012-05-15 02:31 PDT (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
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