XUL trees should invalidate on window focus changes
Categories
(Core :: Web Painting, defect)
Tracking
()
Tracking | Status | |
---|---|---|
firefox79 | --- | fixed |
People
(Reporter: mstange, Assigned: mstange)
Details
Attachments
(1 file)
(deleted),
text/x-phabricator-request
|
Details |
XUL trees can contain -moz-appearance widgets whose rendering depends on window focus. At the moment, nothing invalidates the XUL tree when the window focus changes, so those widgets can look incorrect.
Bug 1493789 is going to add another case of this, where the shade of gray of inactive sidebar selections changes a slight amount depending on the window focus state.
It think the easiest way to fix this is to just make the entire XUL tree repaint every time its containing window changes focus.
Assignee | ||
Comment 1•4 years ago
|
||
Comment 3•4 years ago
|
||
Backed out changeset 53c16c65827a (bug 1644468) for Mochitest failures in checkouts/gecko/layout/painting/nsDisplayListInvalidation.h. CLOSED TREE
Log:
https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=305959440&repo=autoland&lineNumber=2270
https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=305959485&repo=autoland&lineNumber=1034
https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=305957402&repo=autoland&lineNumber=1244
Push with failures:
https://treeherder.mozilla.org/#/jobs?repo=autoland&group_state=expanded&revision=53c16c65827af9ac2c95e057a2723709688f1178
Backout:
https://hg.mozilla.org/integration/autoland/rev/29082233b33dc411ca5740c22948ee53044b1c5b
Assignee | ||
Comment 4•4 years ago
|
||
Wow, that's a footgun and a half. The call to nsDisplayItemGenericImageGeometry::UpdateDrawResult(this, result);
in Paint() needs to be updated to call nsDisplayTreeBodyGeometry::UpdateDrawResult
instead. UpdateDrawResult
a generic static method that happily casts FrameLayerBuilder::GetMostRecentGeometry(aItem)
to whatever concrete class it's called on.
Assignee | ||
Comment 5•4 years ago
|
||
I'm really happy we have ASAN tests! They pointed right at the culprit. The crash stacks in the other tests were much less helpful.
Comment 6•4 years ago
|
||
Comment 8•4 years ago
|
||
Backed out for perma failures.
Logs:
https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=306000428&repo=autoland&lineNumber=1176
https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=306003349&repo=autoland&lineNumber=1886
Backout: https://hg.mozilla.org/integration/autoland/rev/bc9ef959da6b1f5039c6f29b50315ff3495e218e
Assignee | ||
Comment 9•4 years ago
|
||
I got the base class wrong :(
I wish there were more compile time checks in this code.
Comment 10•4 years ago
|
||
Comment 11•4 years ago
|
||
bugherder |
Description
•