Closed Bug 1590550 Opened 4 years ago Closed 4 years ago

Categories

(Core :: Web Painting, defect, P5)

defect

Tracking

()

RESOLVED FIXED
mozilla72
Tracking Status
firefox72 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: emilio)

References

(Regression)

Details

(Keywords: intermittent-failure, regression, Whiteboard: [stockwell fixed:patch])

Attachments

(2 files, 1 obsolete file)

Filed by: dvarga [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer.html#?job_id=272460175&repo=autoland
Full log: https://queue.taskcluster.net/v1/task/PJg2NDQoRO68PxHeaejuXQ/runs/0/artifacts/public/logs/live_backing.log
Reftest URL: https://hg.mozilla.org/mozilla-central/raw-file/tip/layout/tools/reftest/reftest-analyzer.xhtml#logurl=https://queue.taskcluster.net/v1/task/PJg2NDQoRO68PxHeaejuXQ/runs/0/artifacts/public/logs/live_backing.log&only_show_unexpected=1


[task 2019-10-22T20:44:06.602Z] 20:44:06     INFO - TEST-START | /css/css-overflow/dynamic-visible-to-clip-001.html
[task 2019-10-22T20:44:06.605Z] 20:44:06     INFO - PID 6200 | ++DOMWINDOW == 7 (0x7fd728eb9400) [pid = 6291] [serial = 7] [outer = 0x7fd72a0d02e0]
[task 2019-10-22T20:44:06.606Z] 20:44:06     INFO - PID 6200 | [Child 6291, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80070057: file /builds/worker/workspace/build/src/dom/base/ThirdPartyUtil.cpp, line 217
[task 2019-10-22T20:44:06.607Z] 20:44:06     INFO - PID 6200 | [Child 6291, Main Thread] WARNING: NS_ENSURE_TRUE(frame) failed: file /builds/worker/workspace/build/src/layout/base/nsPresContext.cpp, line 821
[task 2019-10-22T20:44:06.615Z] 20:44:06     INFO - PID 6200 | ++DOCSHELL 0x7f75dec76800 == 5 [pid = 6200] [id = {d1d45fb4-5097-4afb-9200-b73f54dcc134}]
[task 2019-10-22T20:44:06.615Z] 20:44:06     INFO - PID 6200 | ++DOMWINDOW == 11 (0x7f75e31cf7a0) [pid = 6200] [serial = 11] [outer = (nil)]
[task 2019-10-22T20:44:06.616Z] 20:44:06     INFO - PID 6200 | ++DOMWINDOW == 12 (0x7f75f2b33400) [pid = 6200] [serial = 12] [outer = 0x7f75e31cf7a0]
[task 2019-10-22T20:44:06.636Z] 20:44:06     INFO - PID 6200 | [Parent 6200, Main Thread] WARNING: Attempting to get a displayport from a content with no primary frame!: file /builds/worker/workspace/build/src/layout/base/nsLayoutUtils.cpp, line 767
[task 2019-10-22T20:44:06.705Z] 20:44:06     INFO - PID 6200 | ++DOCSHELL 0x7f863cfc3000 == 1 [pid = 6344] [id = {a4c38a49-36a1-49d6-81ff-0faed4b8655e}]
[task 2019-10-22T20:44:06.806Z] 20:44:06     INFO - PID 6200 | ### XPCOM_MEM_BLOAT_LOG defined -- logging bloat/leaks to /tmp/tmpMIaRM0.mozrunner/runtests_leaks_3893_tab_pid6379.log
[task 2019-10-22T20:44:06.826Z] 20:44:06     INFO - PID 6200 | ++DOMWINDOW == 1 (0x7f863ce02f20) [pid = 6344] [serial = 1] [outer = (nil)]
[task 2019-10-22T20:44:06.842Z] 20:44:06     INFO - PID 6200 | [Child 6379, Main Thread] WARNING: No CID found when attempting to map contract ID: file /builds/worker/workspace/build/src/xpcom/components/nsComponentManager.cpp, line 732
[task 2019-10-22T20:44:06.842Z] 20:44:06     INFO - PID 6200 | ++DOMWINDOW == 2 (0x7f863d9a4000) [pid = 6344] [serial = 2] [outer = 0x7f863ce02f20]
[task 2019-10-22T20:44:06.898Z] 20:44:06     INFO - PID 6200 | [Child 6344, Main Thread] WARNING: NS_ENSURE_TRUE(frame) failed: file /builds/worker/workspace/build/src/layout/base/nsPresContext.cpp, line 821
[task 2019-10-22T20:44:07.135Z] 20:44:07     INFO - PID 6200 | Couldn't convert chrome URL: chrome://branding/locale/brand.properties
[task 2019-10-22T20:44:07.453Z] 20:44:07     INFO - PID 6200 | [Child 6379, Main Thread] WARNING: could not set real-time limit at process startup: file /builds/worker/workspace/build/src/dom/ipc/ContentChild.cpp, line 1786
[task 2019-10-22T20:44:07.489Z] 20:44:07     INFO - PID 6200 | 1571777047481	Marionette	INFO	Testing http://web-platform.test:8000/css/css-overflow/dynamic-visible-to-clip-001.html == http://web-platform.test:8000/css/css-overflow/clip-001-ref.html
[task 2019-10-22T20:44:07.497Z] 20:44:07     INFO - PID 6200 | ++DOMWINDOW == 3 (0x7f863d9aac00) [pid = 6344] [serial = 3] [outer = 0x7f863ce02f20]
[task 2019-10-22T20:44:07.512Z] 20:44:07     INFO - PID 6200 | [Child 6344, Main Thread] WARNING: NS_ENSURE_TRUE(frame) failed: file /builds/worker/workspace/build/src/layout/base/nsPresContext.cpp, line 821
[task 2019-10-22T20:44:07.617Z] 20:44:07     INFO - PID 6200 | ++DOMWINDOW == 4 (0x7f863ece3000) [pid = 6344] [serial = 4] [outer = 0x7f863ce02f20]
[task 2019-10-22T20:44:07.637Z] 20:44:07     INFO - PID 6200 | [Child 6344, Main Thread] WARNING: NS_ENSURE_TRUE(frame) failed: file /builds/worker/workspace/build/src/layout/base/nsPresContext.cpp, line 821
[task 2019-10-22T20:44:07.758Z] 20:44:07     INFO - PID 6200 | ++DOMWINDOW == 5 (0x7f863ec6dc00) [pid = 6344] [serial = 5] [outer = 0x7f863ce02f20]
[task 2019-10-22T20:44:07.774Z] 20:44:07     INFO - PID 6200 | [Child 6344, Main Thread] WARNING: NS_ENSURE_TRUE(frame) failed: file /builds/worker/workspace/build/src/layout/base/nsPresContext.cpp, line 821
[task 2019-10-22T20:44:07.937Z] 20:44:07     INFO - PID 6200 | 1571777047935	Marionette	INFO	No differences allowed
[task 2019-10-22T20:44:07.998Z] 20:44:07     INFO - PID 6200 | [Child 6291, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80070057: file /builds/worker/workspace/build/src/dom/base/ThirdPartyUtil.cpp, line 217
[task 2019-10-22T20:44:07.999Z] 20:44:07     INFO - PID 6200 | [Child 6291, Main Thread] WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80070057: file /builds/worker/workspace/build/src/dom/base/ThirdPartyUtil.cpp, line 217
[task 2019-10-22T20:44:08.027Z] 20:44:08     INFO - TEST-UNEXPECTED-FAIL | /css/css-overflow/dynamic-visible-to-clip-001.html | Testing http://web-platform.test:8000/css/css-overflow/dynamic-visible-to-clip-001.html == http://web-platform.test:8000/css/css-overflow/clip-001-ref.html
[task 2019-10-22T20:44:08.028Z] 20:44:08     INFO - Found 20000 pixels different, maximum difference per channel 255
Regressed by: 1590357
Keywords: regression

So this is doing a dynamic change in an onload event handler, and expect it to be painted. I have a pernosco trace of this...

I think this is some sort of RDL bug or such. This is the point in time where we invalidate the frame's layout + paint.

Then we do layout, and reflow in such a way that scrollbars in the container end up disappearing (indeed that's the purpose of the test). We get a bunch of other repaint requests for scrollbars and such, and eventually we paint, but it seems that the element is not correctly clipped...

Matt, do you have any idea of where this may be going wrong?

Flags: needinfo?(matt.woodrow)

I think we reproduced this: https://pernos.co/debug/RNSUMtw8HbJ6WxOTS5-tMQ/index.html

It's from a try push but it doesn't look like the failure is related to the push at all.

Hi Emilio, by the looks of it, this will soon reach the disable recommended queue, are there any updates here?

Flags: needinfo?(emilio)

Waiting on Matt, but I'll try to dig a bit more now.

Flags: needinfo?(emilio)

So I think I found the issue... Also why is this bug in the Web Painting component?

Assignee: nobody → emilio
Component: Privacy: Anti-Tracking → Web Painting
Flags: needinfo?(matt.woodrow)

The previous code tried to do it, but it did it wrongly, as the overflow clip
comes from the parent, not the child.

Thus when we change a style that influences it, we weren't invalidating the
SIMPLE_DISPLAY_LIST bit, and such.

Make the reftest that caught this fail more reliable.

Pushed by ealvarez@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/e75d9dbb4853
Don't do the "simple display list" optimization when we have overflow clips. r=mattwoodrow
Created web-platform-tests PR https://github.com/web-platform-tests/wpt/pull/20076 for changes under testing/web-platform/tests
Upstream web-platform-tests status checks passed, PR will merge once commit reaches central.
Upstream PR was closed without merging

This fixes css/css-contain/contain-paint-{002,012,024}.html when not using the
fast path (i.e., with the following patch).

Also invert the check in IsStackingContext as IsFrameOfType is a virtual method,
and IsContain* is just a bitflag.

Attachment #9106290 - Attachment is obsolete: true
Flags: needinfo?(emilio)
Pushed by ealvarez@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/2248bd863a26
Don't apply contain: paint inappropriately. r=mattwoodrow
https://hg.mozilla.org/integration/autoland/rev/6400ccbce0a2
Don't do the "simple display list" optimization when we have overflow clips. r=mattwoodrow
Upstream web-platform-tests status checks passed, PR will merge once commit reaches central.
Upstream PR was closed without merging
Whiteboard: [stockwell disable-recommended]
Pushed by ealvarez@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/bc1b0170ef11
Don't apply contain: paint inappropriately. r=mattwoodrow
https://hg.mozilla.org/integration/autoland/rev/b4ef304c1c6b
Don't do the "simple display list" optimization when we have overflow clips. r=mattwoodrow
Flags: needinfo?(emilio)
Upstream web-platform-tests status checks passed, PR will merge once commit reaches central.
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla72
Upstream PR merged by moz-wptsync-bot
Regressions: 1595000
Whiteboard: [stockwell disable-recommended] → [stockwell fixed:patch]
Has Regression Range: --- → yes
You need to log in before you can comment on or make changes to this bug.