APZCCallbackHelper.cpp has a call to nsPresContext::GetParentPresContext() (in an assertion) which needs to be adjusted for a fission world
Categories
(Core :: Panning and Zooming, defect, P2)
Tracking
()
People
(Reporter: dholbert, Assigned: hiro)
References
(Blocks 1 open bug)
Details
Attachments
(4 files, 1 obsolete file)
48 bytes,
text/x-phabricator-request
|
jcristau
:
approval-mozilla-beta-
|
Details | Review |
48 bytes,
text/x-phabricator-request
|
jcristau
:
approval-mozilla-beta-
|
Details | Review |
40.71 KB,
image/png
|
Details | |
39.91 KB,
image/png
|
Details |
APZCCallbackHelper.cpp has this snippet:
void APZCCallbackHelper::InitializeRootDisplayport(PresShell* aPresShell) {
[...]
// This code is only correct for root content or toplevel documents.
MOZ_ASSERT(!pc || pc->IsRootContentDocumentCrossProcess() ||
!pc->GetParentPresContext());
If we're in a cross-origin iframe, then the call to pc->GetParentPresContext()
will trivially fail (due to not being able to traverse a process boundary). This effectively nerfs the assertion and makes it trivially pass without checking anything useful.
The assertion is, in fact, meant to verify that we're not in an iframe, but in fact it'll trivially pass if we're in a cross-origin iframe (in a session with fission enabled).
We need to adjust the assertion to account for this.
Reporter | ||
Comment 1•4 years ago
|
||
This bug probably doesn't need to block any particular fission milestone, since it doesn't impact user-perceptible behavior. It's just about a MOZ_ASSERT debug-only check that's inadvertently becoming less strict with fission enabled, basically.
Comment 2•4 years ago
|
||
Yes, but we also have to audit that we don't call this function in a way that would cause a new, modified assertion to fire.
Assignee | ||
Updated•4 years ago
|
Comment 3•4 years ago
|
||
This is similar to bug 1698693 (an audit of code to make sure it works fine with Fission), so tracking it with the same priority (M7a).
Updated•4 years ago
|
Updated•4 years ago
|
Assignee | ||
Comment 4•3 years ago
|
||
We are going to use the mEffectsInfo's mVisibleRect as a displayport base for
OOP iframe's root scroller and we don't want the displayport base if it hasn't
been arrived from the parent content, to do that, we need to tell the difference
whether the iframe was painted as empty or hasn't been painted.
Assignee | ||
Comment 5•3 years ago
|
||
In the same manner what we initialize a diplayport base for top level contents.
Depends on D116575
Assignee | ||
Comment 6•3 years ago
|
||
Depends on D116576
Updated•3 years ago
|
Assignee | ||
Comment 7•3 years ago
|
||
As discussed with Timothy on Matrix, I dropped the last piece of changes deferred it to bug 1716436.
Comment 9•3 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/20c1ef91fc10
https://hg.mozilla.org/mozilla-central/rev/07272d29f97f
Assignee | ||
Comment 10•3 years ago
|
||
Comment on attachment 9224655 [details]
Bug 1709460 - Try to initialize a displayport base for OOP iframe's root scroller with its visible rect. r?tnikkel
Beta/Release Uplift Approval Request
- User impact if declined: Basically nothing, this change will change checkerboard severity telemetry data, with this change we will not report incorrect severity for OOP iframes in Fission.
- Is this code covered by automated tests?: Yes
- Has the fix been verified in Nightly?: Yes
- Needs manual test from QE?: No
- If yes, steps to reproduce:
- List of other uplifts needed: None
- Risk to taking this patch: Low
- Why is the change risky/not risky? (and alternatives if risky): This change does just set diplayport data property when we initialize OOP iframes, it just makes things correct such as incorrect severity telemetry data, should not have impacts either on user interactions on rendering results. It may reduce the cases that users will see checkerboarding during scrolling inside OOP iframes but it's a good thing.
- String changes made/needed:
Assignee | ||
Updated•3 years ago
|
Comment 11•3 years ago
|
||
Comment on attachment 9224655 [details]
Bug 1709460 - Try to initialize a displayport base for OOP iframe's root scroller with its visible rect. r?tnikkel
given the limited impact I think I prefer to let this ride the trains to 91
Updated•3 years ago
|
Assignee | ||
Comment 12•3 years ago
|
||
Oops, I forgot mentioning this will fix one of the reasons that our checkerboard severity data on fission beta experiment looks odd (bug 1713360). Neha agreed on landing this change on beta.
Though I'd like to the approval request again, but it seems that one it has been rejected we can no longer re-request. I'd do NI instead.
Updated•3 years ago
|
Assignee | ||
Comment 13•3 years ago
|
||
Timothy suggested diagnosing nightly results with/without fission instead of trying to uplift the change to beta. Yeah, I agree with that.
So, here are results, with Fission and without Fission;
Checkerboard severity with Fission on Nightly
Checkerboard severity without Fission on Nightly
As you can see the severity has dropped down with Fission since June 15, whereas it looks same as before without Fission.
I am going to attach two images for the charts because the queries above might show us different results in future.
Assignee | ||
Comment 14•3 years ago
|
||
Assignee | ||
Comment 15•3 years ago
|
||
Updated•3 years ago
|
Comment 16•3 years ago
|
||
I'll second that. This isn't risky for users, and doesn't affect non-Fission data at all. We need it in order to be able to get any sort of remotely useful data from Fission users.
Comment 17•3 years ago
•
|
||
(In reply to Kris Maglione [:kmag] from comment #16)
I'll second that. This isn't risky for users, and doesn't affect non-Fission data at all. We need it in order to be able to get any sort of remotely useful data from Fission users.
Are you seconding comment 12 ("let's uplift to beta") or comment 13 ("let's not uplift to beta")?
Description
•