Closed
Bug 835978
Opened 11 years ago
Closed 11 years ago
crash in nsDisplayList::HitTest
Categories
(Core :: SVG, defect)
Core
SVG
Tracking
()
VERIFIED
FIXED
mozilla21
People
(Reporter: kbrosnan, Assigned: longsonr)
References
Details
(Keywords: crash, regression, reproducible)
Crash Data
Attachments
(3 files)
2.22 KB,
patch
|
jwatt
:
review+
lsblakk
:
approval-mozilla-aurora+
|
Details | Diff | Splinter Review |
3.80 KB,
patch
|
longsonr
:
feedback+
lsblakk
:
approval-mozilla-beta-
|
Details | Diff | Splinter Review |
3.82 KB,
patch
|
longsonr
:
feedback+
lsblakk
:
approval-mozilla-esr17-
|
Details | Diff | Splinter Review |
< jonathancutrell> Hey folks - I'm a front end developer, and I'm looking for a bit of insight into why Firefox is crashing on an app I'm developing. This bug was filed from the Socorro interface and is report bp-ad0abc57-a8f1-49bc-9225-9f11e2130129 . =============================================================
![]() |
||
Updated•11 years ago
|
Component: Layout: HTML Frames → Layout: View Rendering
Comment 1•11 years ago
|
||
The crash stack doesn't really provide any clues. We'll need more. Can we talk to the developer? A testcase? STR?
Comment 2•11 years ago
|
||
Hey folks - I am the developer. Basically, this error occurs randomly while using the interface at http://believecampaign.org ; in particular, when interacting with the modals. The "close" action on any given modal seems to be the most common trigger for the problem. A few notes: the application relies heavily on Polymaps, which is an SVG-based map plugin. We're loading in a map and displaying it as the full width background, and overlaying SVG circles as "anchors" for the messages that show on top of those anchors. Hopefully this is helpful/insightful.
Comment 3•11 years ago
|
||
Perfect. I was able to reproduce right away.
Comment 4•11 years ago
|
||
So an interesting addition - it seems that enabling/disabling a JS pushHistory call significantly reduces the occurrence of this bug, but doesn't completely eradicate it. To reproduce the bug almost without variation, visit http://believecampaign.org/beliefs/52 directly, and click the black "curtain". The frequency of occurrence of this specific scenario is 100% with pushHistory, and MUCH less without, but, as I mentioned before, still not eradicated.
Comment 5•11 years ago
|
||
We can flush while we are hittesting, destroying a frame that's on our list of potential hits. Here is the stack. #34 0x0000000101dfaf0a in nsDocument::FlushPendingNotifications (this=0x10f245000, aType=Flush_Layout) at /Users/tim/ff/src/content/base/src/nsDocument.cpp:6723 #35 0x0000000102bb7861 in SVGContentUtils::GetCTM (aElement=0x149dce8c0, aScreenCTM=true) at /Users/tim/ff/src/content/svg/content/src/SVGContentUtils.cpp:252 #36 0x0000000102aa2caf in nsSVGUtils::GetStrokeTransform (aFrame=0x149f1c968) at /Users/tim/ff/src/layout/svg/nsSVGUtils.cpp:1366 #37 0x0000000102aa3b26 in nsSVGUtils::SetupCairoStrokeGeometry (aFrame=0x149f1c968, aContext=0x10f056380, aObjectPaint=0x0) at /Users/tim/ff/src/layout/svg/nsSVGUtils.cpp:1662 #38 0x0000000102aa3c68 in nsSVGUtils::SetupCairoStrokeHitGeometry (aFrame=0x149f1c968, aContext=0x10f056380, aObjectPaint=0x0) at /Users/tim/ff/src/layout/svg/nsSVGUtils.cpp:1765 #39 0x0000000102a94335 in nsSVGPathGeometryFrame::GetFrameForPoint (this=0x149f1c968, aPoint=@0x7fff5fbf8070) at /Users/tim/ff/src/layout/svg/nsSVGPathGeometryFrame.cpp:255 #40 0x0000000102a9352d in nsDisplaySVGPathGeometry::HitTest (this=0x11d2c2ae0, aBuilder=0x7fff5fbfbe10, aRect=@0x7fff5fbf8520, aState=0x7fff5fbfba80, aOutFrames=0x7fff5fbf8170) at /Users/tim/ff/src/layout/svg/nsSVGPathGeometryFrame.cpp:81 Can we not flush here?
Updated•11 years ago
|
Component: Layout: View Rendering → SVG
OS: Mac OS X → All
Comment 7•11 years ago
|
||
The steps in comment 4 plus moving your mouse immediately before and after the click make it happen pretty reliably.
Updated•11 years ago
|
Keywords: reproducible
Assignee | ||
Updated•11 years ago
|
Assignee: nobody → longsonr
Assignee | ||
Comment 8•11 years ago
|
||
Attachment #708085 -
Flags: review?(jwatt)
![]() |
||
Comment 9•11 years ago
|
||
Comment on attachment 708085 [details] [diff] [review] patch Hmm, yeah, it does seem like a bad idea for nsSVGUtils::GetStrokeTransform to flush. r=me.
Attachment #708085 -
Flags: review?(jwatt) → review+
Assignee | ||
Comment 10•11 years ago
|
||
https://tbpl.mozilla.org/?tree=Try&rev=eb1b95818869
Assignee | ||
Comment 11•11 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/0bbcb088b1b8
Assignee | ||
Updated•11 years ago
|
Keywords: regression
Comment 12•11 years ago
|
||
Awesome, thanks guys! This happens all the way back to Firefox 16 and even further back, so if the patch is safe enough we should get it uplifted appropriately.
Assignee | ||
Comment 13•11 years ago
|
||
It's pretty safe, there are 3 callers of SVGContentUtils::GetCTM, the patch moves the flush call from SVGContentUtils::GetCTM to the other two callers, thereby removing it from the nsSVGUtils::GetStrokeTransform path It will need adjusting for branches though as the location of the SVGContentUtils::GetCTM callers have moved (the same functions are there but in another file)
Assignee | ||
Comment 14•11 years ago
|
||
The patch will apply to Aurora but not to Beta.
![]() |
||
Comment 15•11 years ago
|
||
As the original crash report is from 18, I assume that everything newer is affected as well.
status-firefox18:
--- → affected
status-firefox19:
--- → affected
status-firefox20:
--- → affected
status-firefox21:
--- → affected
Comment 16•11 years ago
|
||
And I got it in 16 too, and the likely regression bug has TM 15, so esr17 is affected too I guess.
status-firefox-esr17:
--- → affected
Comment 17•11 years ago
|
||
Backported the patch to beta, w/ Robert's help, since he didn't have a beta branch handy. Basically, the trunk patch's changes to SVGLocatableElement need to be applied to the corresponding methods in nsSVGGraphicElement and nsSVGSVGElement.
Attachment #708262 -
Flags: feedback?
Updated•11 years ago
|
Attachment #708262 -
Flags: feedback? → feedback?(longsonr)
Comment 18•11 years ago
|
||
...and here's the patch backported to ESR17. (Same as the beta patch, but with s/SVGContentUtils/nsSVGUtils/ basically.)
Attachment #708270 -
Flags: feedback?(longsonr)
Updated•11 years ago
|
Attachment #708262 -
Attachment description: patch backported to beta branch → patch backported to beta (firefox 18)
Assignee | ||
Updated•11 years ago
|
Attachment #708262 -
Flags: feedback?(longsonr) → feedback+
Assignee | ||
Updated•11 years ago
|
Attachment #708270 -
Flags: feedback?(longsonr) → feedback+
Comment 19•11 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/0bbcb088b1b8 Should this have a test?
Status: NEW → RESOLVED
Closed: 11 years ago
Flags: in-testsuite?
Resolution: --- → FIXED
Target Milestone: --- → mozilla21
Updated•11 years ago
|
Assignee | ||
Comment 20•11 years ago
|
||
Comment on attachment 708085 [details] [diff] [review] patch [Approval Request Comment] Bug caused by (feature/regressing bug #): bug 528332 User impact if declined: crashes occasionally with SVG pages that use non-scaling-stroke and some other DOM manipulation Testing completed (on m-c, etc.): patch landed, no automated test though. Does not crash on example site any more. Risk to taking this patch (and alternatives if risky): Low risk, just moves some code to callers so that one of the callers does not flush. String or UUID changes made by this patch: none
Attachment #708085 -
Flags: approval-mozilla-aurora?
Assignee | ||
Updated•11 years ago
|
Attachment #708262 -
Flags: approval-mozilla-beta?
Assignee | ||
Comment 21•11 years ago
|
||
Comment on attachment 708270 [details] [diff] [review] patch backported to esr17 branch [Approval Request Comment] If this is not a sec:{high,crit} bug, please state case for ESR consideration: User impact if declined: crash on some SVG sites that use non-scaling-stroke Fix Landed on Version: 21 Risk to taking this patch (and alternatives if risky): Low Risk. String or UUID changes made by this patch: none See https://wiki.mozilla.org/Release_Management/ESR_Landing_Process for more info.
Attachment #708270 -
Flags: approval-mozilla-esr17?
Comment 22•11 years ago
|
||
(In reply to Ryan VanderMeulen from comment #19) > Should this have a test? Ideally, yes. The best we've got right now, though, is a URL and some interactive STR. --> adding 'testcase-wanted', in case anyone can make a reduced testcase that crashes in un-patched builds.
Keywords: testcase-wanted
Comment 23•11 years ago
|
||
Comment on attachment 708085 [details] [diff] [review] patch We'll take this on Aurora, but it's too late for beta 19 now and this has been around since 15 so there's no rush push out the fix. Also it does not meet ESR landing criteria.
Attachment #708085 -
Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
Updated•11 years ago
|
Attachment #708262 -
Flags: approval-mozilla-beta? → approval-mozilla-beta-
Updated•11 years ago
|
Attachment #708270 -
Flags: approval-mozilla-esr17? → approval-mozilla-esr17-
Assignee | ||
Comment 24•11 years ago
|
||
https://hg.mozilla.org/releases/mozilla-aurora/rev/26872b25c4d0
Comment 25•11 years ago
|
||
I reproduced this on Nightly 2013-01-29 using the STR in comment 7. Verified fixed on FF 20b7 Win 7.
Comment 26•11 years ago
|
||
Verified fixed Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0b2
Status: RESOLVED → VERIFIED
Updated•11 years ago
|
Updated•8 years ago
|
Keywords: testcase-wanted
You need to log in
before you can comment on or make changes to this bug.
Description
•