Closed
Bug 1156238
Opened 10 years ago
Closed 9 years ago
"Assertion failure: nsLayoutUtils::IsAncestorFrameCrossDoc(Builder()->RootReferenceFrame(), aAnimatedGeometryRoot)"
Categories
(Core :: Layout, defect)
Tracking
()
RESOLVED
FIXED
mozilla45
People
(Reporter: jruderman, Assigned: tnikkel)
References
Details
(Keywords: assertion, testcase)
Attachments
(5 files, 2 obsolete files)
283 bytes,
text/html
|
Details | |
4.32 KB,
text/plain
|
Details | |
3.03 KB,
patch
|
mstange
:
review+
|
Details | Diff | Splinter Review |
20.15 KB,
patch
|
mattwoodrow
:
review+
|
Details | Diff | Splinter Review |
8.78 KB,
patch
|
mattwoodrow
:
review+
|
Details | Diff | Splinter Review |
Assertion failure: nsLayoutUtils::IsAncestorFrameCrossDoc(Builder()->RootReferenceFrame(), aAnimatedGeometryRoot), at layout/base/FrameLayerBuilder.cpp:2504
This assertion was added in https://hg.mozilla.org/mozilla-central/rev/10e5dd951795 (bug 1148855)
Reporter | ||
Comment 1•10 years ago
|
||
mozilla::dom::CanvasRenderingContext2DBinding::drawWindow is on the stack. I guess this is related to some Firefox frontend feature.
Updated•10 years ago
|
Assignee: nobody → mstange
Status: NEW → ASSIGNED
Assignee | ||
Comment 2•10 years ago
|
||
If we are drawWindow'ing some iframe the root reference frame will be the root frame of the iframe. The animated geometry root could be a frame in the parent doc.
Comment 3•10 years ago
|
||
I hit this assertion dragging buttons in the toolbar's "customize" mode on Linux. Is that likely to be fixed by a patch for this bug?
Comment 4•10 years ago
|
||
Interesting, I don't know yet.
Comment 5•9 years ago
|
||
Bug 1156238 - Replace erroneous assert with something that ensures what we used to assert. r?tn
Attachment #8655645 -
Flags: review?(tnikkel)
Assignee | ||
Comment 7•9 years ago
|
||
Comment on attachment 8655645 [details]
MozReview Request: Bug 1156238 - Replace erroneous assert with something that ensures what we used to assert. r?tn
https://reviewboard.mozilla.org/r/17961/#review16617
I don't think this will fix the problem of calling ComputeFrameMetrics on scrollframes for which BuildDisplayList hasn't been called.
I looked into a testcase (loading a google groups thread, select all, click and drag selection). In that case the root reference frame was the block frame for the body element. We follow placeholders and build items for an absolute element whose frame is a child of the canvas frame for the body element. The canvas frame is an ancestor of the block frame. So the ancestors of the absolute item never go through the root reference frame.
This can only happen when the root reference frame is not a root frame, which can only happen when we are drawing to non-retained, non-widget layer managers. So all the extra async scroll processing we do is useless. So maybe we can avoid the problem by avoiding doing the extra async scroll processing for non-retained layer managers?
Alternatively we could make frame layer builder deal with complicated cases like this with AGMs.
Attachment #8655645 -
Flags: review?(tnikkel)
Assignee | ||
Comment 8•9 years ago
|
||
Can you still reproduce this? I could only reproduce using the steps in bug 1186407 but the testcase and stack indicates that this bug as originally filed could be a different issue and I'd like to understand it.
Flags: needinfo?(jruderman)
Assignee | ||
Comment 9•9 years ago
|
||
Assignee: mstange → tnikkel
Attachment #8659372 -
Flags: review?(mstange)
Assignee | ||
Comment 10•9 years ago
|
||
I audited the code and found a couple cases where we didn't provide a stop at ancestor when computing the AGM. That could cause asserts like this. I made it mandatory to always provide a stop at ancestor. If we computed the AGM for an item without a "stop at" ancestor during display list building, and then with a "stop at" ancestor in FrameLayerBuilder we could have two different AGMs for the same item.
Attachment #8659373 -
Flags: review?(mstange)
Comment 11•9 years ago
|
||
FYI, I noted that Matt introduced some AGM caching in bug 1205087.
(Just mentioning it in case it affects the patches here in any way.)
Updated•9 years ago
|
Attachment #8659372 -
Flags: review?(mstange) → review+
Updated•9 years ago
|
Attachment #8659373 -
Flags: review?(mstange) → review+
Reporter | ||
Comment 12•9 years ago
|
||
I can't reproduce this using the testcase in comment 0, even with an added call to fuzzPriv.callDrawWindow(2).
Flags: needinfo?(jruderman)
Comment 13•9 years ago
|
||
I just realized that these patches never landed. I think we're going to need something like them in order to fix bug 1199131: In that bug, while painting the <select> popup (non-e10s), the builder's root reference frame is the <select> popup frame, and the animated geometry root of the background-attachment:fixed item is the root frame of the XUL window (which is the animated geometry root of the content page's viewport frame).
Timothy, were you planning on finishing the patches here? Do you know what's left to be done?
Blocks: 1199131
Flags: needinfo?(tnikkel)
Assignee | ||
Comment 14•9 years ago
|
||
Yes, I was going to land them, but they likely conflict with bug 1205087, which seems more important. Bug 1205087 is blocked on bug 1208780, where I need to write a new patch because I think we can accomplish the same thing much simpler.
So I need to get bug 1205087 landed, and the rebase the patches here on top of them.
Flags: needinfo?(tnikkel)
Comment 15•9 years ago
|
||
(In reply to Timothy Nikkel (:tn) from comment #14)
> Yes, I was going to land them, but they likely conflict with bug 1205087,
> which seems more important.
Bug 1199131 is already on release, so we might want to have patches that apply without bug 1205087 anyway.
Assignee | ||
Comment 16•9 years ago
|
||
This is a large chunk of Matt's patch in bug 1205087 minus the actual caching of the agr on display items.
I liked the approach there better then my previous patch here.
Getting bug 1205087 landed is taking a little longer, but we should fix this because it is causing crashes. Also separating out this change from the caching makes sense.
The only new bit is the ShouldFixToViewport part.
Attachment #8659373 -
Attachment is obsolete: true
Attachment #8678043 -
Flags: review?(matt.woodrow)
Updated•9 years ago
|
Attachment #8678043 -
Flags: review?(matt.woodrow) → review+
Assignee | ||
Comment 17•9 years ago
|
||
Assignee | ||
Updated•9 years ago
|
Attachment #8655645 -
Attachment is obsolete: true
Assignee | ||
Comment 18•9 years ago
|
||
The patches had some try server failures. The explanation is all in the commit msg.
Attachment #8680468 -
Flags: review?(matt.woodrow)
Assignee | ||
Comment 19•9 years ago
|
||
Updated•9 years ago
|
Attachment #8680468 -
Flags: review?(matt.woodrow) → review+
Assignee | ||
Comment 20•9 years ago
|
||
And finally a green try run
https://treeherder.mozilla.org/#/jobs?repo=try&revision=3adbfe011e8f
Comment 21•9 years ago
|
||
Comment 22•9 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/1d71945686e0
https://hg.mozilla.org/mozilla-central/rev/515229f96686
https://hg.mozilla.org/mozilla-central/rev/cb0f1211b033
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
status-firefox45:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla45
Comment 23•9 years ago
|
||
bugherder uplift |
https://hg.mozilla.org/releases/mozilla-b2g44_v2_5/rev/1d71945686e0
https://hg.mozilla.org/releases/mozilla-b2g44_v2_5/rev/515229f96686
https://hg.mozilla.org/releases/mozilla-b2g44_v2_5/rev/cb0f1211b033
status-b2g-v2.5:
--- → fixed
Comment 24•9 years ago
|
||
removing the b2g 2.5 flag since this commit has been reverted due to an incorrect merge, sorry for the confusion
status-b2g-v2.5:
fixed → ---
Updated•9 years ago
|
You need to log in
before you can comment on or make changes to this bug.
Description
•