Bug 31278 - Assertion Failure in RenderSVGRoot::mapLocalToContainer
: Assertion Failure in RenderSVGRoot::mapLocalToContainer
Status: NEW
: WebKit
SVG
: 528+ (Nightly build)
: Macintosh Intel Mac OS X 10.6
: P2 Normal
Assigned To:
: http://intertwingly.net/blog/2009/11/...
:
: 68117
: 41761
  Show dependency treegraph
 
Reported: 2009-11-09 16:39 PST by
Modified: 2011-10-17 18:07 PST (History)


Attachments
simple testcase (453 bytes, application/xhtml+xml)
2009-11-09 18:02 PST, Dean Jackson
no flags Details
Testcase that shows that position:fixed on svg is busted (491 bytes, application/xhtml+xml)
2009-11-09 19:31 PST, Simon Fraser (smfr)
no flags Details


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2009-11-09 16:39:38 PST
Loading the URL gives the following assertion:
ASSERTION FAILED: !fixed
(WebCore/rendering/RenderSVGRoot.cpp:269 virtual void WebCore::RenderSVGRoot::mapLocalToContainer(WebCore::RenderBoxModelObject*, bool, bool, WebCore::TransformState&) const)
------- Comment #1 From 2009-11-09 16:56:02 PST -------
Assertion comes because the page has position:fixed on the svg diagram used in the page footer. The page works fine in release builds, and the fixed position element is rendered correctly, so I'm not sure why the ASSERT is there.
------- Comment #2 From 2009-11-09 18:02:58 PST -------
Created an attachment (id=42819) [details]
simple testcase

Notice that the test has both position:fixed and a CSS transform on the svg element.

Removing the ASSERT(!fixed) will cause the 2nd ASSERT to fire. Removing that will have the correct behaviour, but only when the CSS transform is not present.
------- Comment #3 From 2009-11-09 19:31:12 PST -------
Created an attachment (id=42843) [details]
Testcase that shows that position:fixed on svg is busted
------- Comment #4 From 2009-11-09 19:37:19 PST -------
(From update of attachment 42843 [details])
Never mind; that's currently expected with -webkit-transform and position:fixed (bug 31283).
------- Comment #5 From 2009-11-09 19:48:03 PST -------
I think there are two issues here:
1. We haven't cleaned up the "fixed inside of transformed" codepath. I don' think the code in convertToLayerCoords() is doing the right thing there now by just calling localToAbsolute() ignoring transforms.

2. There needs to be some explicit hand-off code in the interface between SVG and HTML (in both directions), that maps the expectations of one into those of the other.
------- Comment #6 From 2011-03-30 03:20:09 PST -------
Something similar is happening on YouTube HTML5 video embeds.

For an example: disable Flash, visit http://www.trackosaurusrex.com/pblog/comments.php?y=11&m=03&entry=entry110329-122230 and click the play button in comment #3.

Segfault in trunk rev 82358, webkitgtk/gtk3, caused by an assertion:

ASSERTION FAILED: useTransforms
Source/WebCore/rendering/svg/RenderSVGRoot.cpp(300) : virtual void WebCore::RenderSVGRoot::mapLocalToContainer(WebCore::RenderBoxModelObject*, bool, bool, WebCore::TransformState&) const