Closed Bug 1699890 Opened 4 years ago Closed 3 years ago

Intermittent TEST-UNEXPECTED-TIMEOUT | /css/css-backgrounds/animations/background-color-animation-with-zero-alpha.html | expected PASS

Categories

(Testing :: web-platform-tests, defect, P5)

defect

Tracking

(firefox-esr78 unaffected, firefox87 unaffected, firefox88 wontfix, firefox89 wontfix, firefox90 fixed)

RESOLVED FIXED
90 Branch
Tracking Status
firefox-esr78 --- unaffected
firefox87 --- unaffected
firefox88 --- wontfix
firefox89 --- wontfix
firefox90 --- fixed

People

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

References

(Regressed 1 open bug, Regression)

Details

(Keywords: intermittent-failure, regression, Whiteboard: [stockwell needswork:owner])

Attachments

(2 files)

Filed by: csabou [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer?job_id=333851353&repo=autoland
Full log: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/KRrVuXxiQY2bZ8xu4p9jyQ/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://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/KRrVuXxiQY2bZ8xu4p9jyQ/runs/0/artifacts/public/logs/live_backing.log&only_show_unexpected=1


task 2021-03-20T04:56:53.400Z] 04:56:53     INFO - TEST-PASS | /css/css-backgrounds/animations/background-color-animation-with-zero-alpha.html | took 164ms
[task 2021-03-20T04:56:53.401Z] 04:56:53     INFO - TEST-START | /css/css-backgrounds/animations/background-color-animation-with-zero-alpha.html
[task 2021-03-20T04:56:53.402Z] 04:56:53     INFO - Run 6/10
[task 2021-03-20T04:56:53.406Z] 04:56:53     INFO - PID 2865 | 1616216213404	Marionette	INFO	Testing http://web-platform.test:8000/css/css-backgrounds/animations/background-color-animation-with-zero-alpha.html == http://web-platform.test:8000/css/css-backgrounds/animations/background-color-animation-with-zero-alpha-ref.html
[task 2021-03-20T04:57:16.726Z] 04:57:16     INFO - PID 2865 | 2021-03-20 04:57:16.725 firefox[2865:27250] Persistent UI failed to open file file:///Users/cltbld/Library/Saved%20Application%20State/org.mozilla.nightlydebug.savedState/window_1.data: No such file or directory (2)
[task 2021-03-20T04:57:33.441Z] 04:57:33     INFO - PID 2865 | [Parent 2865, Compositor] WARNING: Possibly dropping task posted to updater thread: file /builds/worker/checkouts/gecko/gfx/layers/apz/src/APZUpdater.cpp:370
[task 2021-03-20T04:57:33.456Z] 04:57:33     INFO - PID 2865 | [Child 2873, Main Thread] WARNING: nsAppShell::Exit() called redundantly: file /builds/worker/checkouts/gecko/widget/cocoa/nsAppShell.mm:751
[task 2021-03-20T04:57:33.458Z] 04:57:33     INFO - PID 2865 | ###!!! [Parent][RunMessage] Error: Channel closing: too late to send/recv, messages will be lost
[task 2021-03-20T04:57:33.467Z] 04:57:33  WARNING - Failed to get assertion count; window was closed
[task 2021-03-20T04:57:33.475Z] 04:57:33  WARNING - Failed to get assertion count; window was closed
[task 2021-03-20T04:57:33.476Z] 04:57:33     INFO - TEST-UNEXPECTED-TIMEOUT | /css/css-backgrounds/animations/background-color-animation-with-zero-alpha.html | expected PASS
[task 2021-03-20T04:57:33.476Z] 04:57:33     INFO - TEST-INFO took 40075ms
[task 2021-03-20T04:57:33.499Z] 04:57:33     INFO - PID 2865 | 1616216253495	Marionette	INFO	Stopped listening on port 50835
[task 2021-03-20T04:57:33.515Z] 04:57:33     INFO - PID 2865 | [Child 2873, Main Thread] WARNING: Extra shutdown CC: 'i < NORMAL_SHUTDOWN_COLLECTIONS', file /builds/worker/checkouts/gecko/xpcom/base/nsCycleCollector.cpp:3365
[task 2021-03-20T04:57:33.535Z] 04:57:33     INFO - PID 2865 | [Child 2873, Main Thread] WARNING: NS_ENSURE_TRUE(Preferences::InitStaticMembers()) failed: file /builds/worker/checkouts/gecko/modules/libpref/Preferences.cpp:4442
[task 2021-03-20T04:57:33.552Z] 04:57:33     INFO - PID 2865 | [Child 2871, Main Thread] WARNING: '!CanSend() || !mManager || !mManager->CanSend()', file /builds/worker/checkouts/gecko/dom/ipc/jsactor/JSWindowActorChild.cpp:40
[task 2021-03-20T04:57:33.553Z] 04:57:33     INFO - PID 2865 | [Child 2871, Main Thread] WARNING: '!CanSend() || !mManager || !mManager->CanSend()', file /builds/worker/checkouts/gecko/dom/ipc/jsactor/JSWindowActorChild.cpp:40
[task 2021-03-20T04:57:33.559Z] 04:57:33     INFO - PID 2865 | [Child 2871, Main Thread] WARNING: '!CanSend() || !mManager || !mManager->CanSend()', file /builds/worker/checkouts/gecko/dom/ipc/jsactor/JSWindowActorChild.cpp:40
[task 2021-03-20T04:57:33.565Z] 04:57:33     INFO - PID 2865 | [Child 2871, Main Thread] WARNING: '!CanSend() || !mManager || !mManager->CanSend()', file /builds/worker/checkouts/gecko/dom/ipc/jsactor/JSWindowActorChild.cpp:40
[task 2021-03-20T04:57:33.573Z] 04:57:33     INFO - PID 2865 | [Child 2871, Main Thread] WARNING: '!CanSend() || !mManager || !mManager->CanSend()', file /builds/worker/checkouts/gecko/dom/ipc/jsactor/JSWindowActorChild.cpp:40
[task 2021-03-20T04:57:33.575Z] 04:57:33     INFO - PID 2865 | [Child 2871, Main Thread] WARNING: '!CanSend() || !mManager || !mManager->CanSend()', file /builds/worker/checkouts/gecko/dom/ipc/jsactor/JSWindowActorChild.cpp:40
[task 2021-03-20T04:57:33.731Z] 04:57:33     INFO - PID 2865 | [Parent 2865, Compositor] WARNING: Possibly dropping task posted to updater thread: file /builds/worker/checkouts/gecko/gfx/layers/apz/src/APZUpdater.cpp:370
[task 2021-03-20T04:57:33.742Z] 04:57:33     INFO - PID 2865 | ###!!! [Parent][RunMessage] Error: Channel closing: too late to send/recv, messages will be lost
[task 2021-03-20T04:57:33.743Z] 04:57:33     INFO - PID 2865 | [Child 2871, Main Thread] WARNING: nsAppShell::Exit() called redundantly: file /builds/worker/checkouts/gecko/widget/cocoa/nsAppShell.mm:751
[task 2021-03-20T04:57:33.744Z] 04:57:33     INFO - PID 2865 | ###!!! [Parent][RunMessage] Error: Channel closing: too late to send/recv, messages will be lost
[task 2021-03-20T04:57:33.850Z] 04:57:33     INFO - PID 2865 | [Child 2871, Main Thread] WARNING: Extra shutdown CC: 'i < NORMAL_SHUTDOWN_COLLECTIONS', file /builds/worker/checkouts/gecko/xpcom/base/nsCycleCollector.cpp:3365
[task 2021-03-20T04:57:33.863Z] 04:57:33     INFO - PID 2865 | [Child 2871, Main Thread] WARNING: NS_ENSURE_TRUE(Preferences::InitStaticMembers()) failed: file /builds/worker/checkouts/gecko/modules/libpref/Preferences.cpp:4442
[task 2021-03-20T04:57:33.943Z] 04:57:33     INFO - PID 2865 | [2021-03-20T04:57:33Z WARN  xulstore::persist] tried to remove key that isn't in the store
[task 2021-03-20T04:57:33.943Z] 04:57:33     INFO - PID 2865 | [2021-03-20T04:57:33Z WARN  xulstore::persist] tried to remove key that isn't in the store
[task 2021-03-20T04:57:34.105Z] 04:57:34     INFO - PID 2865 | [Child 2872, Main Thread] WARNING: nsAppShell::Exit() called redundantly: file /builds/worker/checkouts/gecko/widget/cocoa/nsAppShell.mm:751
[task 2021-03-20T04:57:34.139Z] 04:57:34     INFO - PID 2865 | [Child 2872, Main Thread] WARNING: Extra shutdown CC: 'i < NORMAL_SHUTDOWN_COLLECTIONS', file /builds/worker/checkouts/gecko/xpcom/base/nsCycleCollector.cpp:3365
[task 2021-03-20T04:57:34.143Z] 04:57:34     INFO - PID 2865 | [Child 2874, Main Thread] WARNING: nsAppShell::Exit() called redundantly: file /builds/worker/checkouts/gecko/widget/cocoa/nsAppShell.mm:751
[task 2021-03-20T04:57:34.144Z] 04:57:34     INFO - PID 2865 | ###!!! [Parent][RunMessage] Error: Channel closing: too late to send/recv, messages will be lost
[task 2021-03-20T04:57:34.154Z] 04:57:34     INFO - PID 2865 | [Child 2872, Main Thread] WARNING: NS_ENSURE_TRUE(Preferences::InitStaticMembers()) failed: file /builds/worker/checkouts/gecko/modules/libpref/Preferences.cpp:4442
[task 2021-03-20T04:57:34.169Z] 04:57:34     INFO - PID 2865 | [Child 2874, Main Thread] WARNING: Extra shutdown CC: 'i < NORMAL_SHUTDOWN_COLLECTIONS', file /builds/worker/checkouts/gecko/xpcom/base/nsCycleCollector.cpp:3365
[task 2021-03-20T04:57:34.174Z] 04:57:34     INFO - PID 2865 | [Parent 2865, IPDL Background] WARNING: idb: '0.000003s: starting', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3688
[task 2021-03-20T04:57:34.175Z] 04:57:34     INFO - PID 2865 | [Parent 2865, IPDL Background] WARNING: idb: '0.000304s: Live database entry removed', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3688
[task 2021-03-20T04:57:34.176Z] 04:57:34     INFO - PID 2865 | [Parent 2865, IPDL Background] WARNING: idb: '0.000319s: gLiveDatabaseHashtable entry removed', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3688
[task 2021-03-20T04:57:34.178Z] 04:57:34     INFO - PID 2865 | [Parent 2865, IPDL Background] WARNING: idb: '0.000823s: Live database entry removed', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3688
[task 2021-03-20T04:57:34.179Z] 04:57:34     INFO - PID 2865 | [Parent 2865, IPDL Background] WARNING: idb: '0.001071s: gLiveDatabaseHashtable entry removed', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3688
[task 2021-03-20T04:57:34.179Z] 04:57:34     INFO - PID 2865 | [Parent 2865, IPDL Background] WARNING: cache: '0.001100s: starting', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3688
[task 2021-03-20T04:57:34.180Z] 04:57:34     INFO - PID 2865 | [Parent 2865, IPDL Background] WARNING: sdb: '0.001114s: starting', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3688
[task 2021-03-20T04:57:34.181Z] 04:57:34     INFO - PID 2865 | [Parent 2865, IPDL Background] WARNING: ls: '0.001124s: starting', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3688
[task 2021-03-20T04:57:34.182Z] 04:57:34     INFO - PID 2865 | [Parent 2865, IPDL Background] WARNING: idb: '0.002158s: Live database entry removed', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3688
[task 2021-03-20T04:57:34.184Z] 04:57:34     INFO - PID 2865 | [Parent 2865, IPDL Background] WARNING: idb: '0.002206s: Live database entry removed', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3688
[task 2021-03-20T04:57:34.185Z] 04:57:34     INFO - PID 2865 | [Parent 2865, IPDL Background] WARNING: idb: '0.002227s: gLiveDatabaseHashtable entry removed', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3688
[task 2021-03-20T04:57:34.186Z] 04:57:34     INFO - PID 2865 | [Child 2874, Main Thread] WARNING: NS_ENSURE_TRUE(Preferences::InitStaticMembers()) failed: file /builds/worker/checkouts/gecko/modules/libpref/Preferences.cpp:4442
[task 2021-03-20T04:57:34.186Z] 04:57:34     INFO - PID 2865 | [Parent 2865, IPDL Background] WARNING: idb: '0.012300s: Live database entry removed', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3688
[task 2021-03-20T04:57:34.187Z] 04:57:34     INFO - PID 2865 | [Parent 2865, IPDL Background] WARNING: idb: '0.012335s: gLiveDatabaseHashtable entry removed', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3688
[task 2021-03-20T04:57:34.188Z] 04:57:34     INFO - PID 2865 | [Parent 2865, IPDL Background] WARNING: idb: '0.012370s: completed', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3688
[task 2021-03-20T04:57:34.188Z] 04:57:34     INFO - PID 2865 | [Parent 2865, IPDL Background] WARNING: cache: '0.012417s: completed', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3688
[task 2021-03-20T04:57:34.189Z] 04:57:34     INFO - PID 2865 | [Parent 2865, IPDL Background] WARNING: sdb: '0.012425s: completed', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3688
[task 2021-03-20T04:57:34.190Z] 04:57:34     INFO - PID 2865 | [Parent 2865, IPDL Background] WARNING: ls: '0.012430s: completed', file /builds/worker/checkouts/gecko/dom/quota/ActorsParent.cpp:3688
[task 2021-03-20T04:57:34.317Z] 04:57:34     INFO - PID 2865 | [Parent 2865, Main Thread] WARNING: NS_ENSURE_TRUE(mDB) failed: file /builds/worker/checkouts/gecko/netwerk/cache/nsDiskCacheDeviceSQL.cpp:1279
[task 2021-03-20T04:57:34.325Z] 04:57:34     INFO - PID 2865 | [Parent 2865, Main Thread] WARNING: nsAppShell::Exit() called redundantly: file /builds/worker/checkouts/gecko/widget/cocoa/nsAppShell.mm:751
[task 2021-03-20T04:57:35.085Z] 04:57:35     INFO - PID 2865 | [Parent 2865, Main Thread] WARNING: Extra shutdown CC: 'i < NORMAL_SHUTDOWN_COLLECTIONS', file /builds/worker/checkouts/gecko/xpcom/base/nsCycleCollector.cpp:3365
[task 2021-03-20T04:57:35.117Z] 04:57:35     INFO - PID 2865 | [Parent 2865, Main Thread] WARNING: NS_ENSURE_TRUE(Preferences::InitStaticMembers()) failed: file /builds/worker/checkouts/gecko/modules/libpref/Preferences.cpp:4442
[task 2021-03-20T04:57:35.273Z] 04:57:35     INFO - Browser exited with return code 0
[task 2021-03-20T04:57:35.273Z] 04:57:35     INFO - PROCESS LEAKS /var/folders/mx/15ww1m2s701gthpd5h8vmkbr000017/T/tmpyv9qrq5e/runtests_leaks_2815.log
task 2021-03-20T04:57:35.274Z] 04:57:35     INFO - leakcheck | Processing log file /var/folders/mx/15ww1m2s701gthpd5h8vmkbr000017/T/tmpyv9qrq5e/runtests_leaks_2815.log for scope /
[task 2021-03-20T04:57:35.274Z] 04:57:35     INFO - TEST-INFO | leakcheck | default process: leak threshold set at 51200 bytes
[task 2021-03-20T04:57:35.275Z] 04:57:35     INFO - TEST-INFO | leakcheck | forkserver process: leak threshold set at 0 bytes
[task 2021-03-20T04:57:35.275Z] 04:57:35     INFO - TEST-INFO | leakcheck | gmplugin process: leak threshold set at 20000 bytes
[task 2021-03-20T04:57:35.276Z] 04:57:35     INFO - TEST-INFO | leakcheck | gpu process: leak threshold set at 10000 bytes
[task 2021-03-20T04:57:35.276Z] 04:57:35     INFO - TEST-INFO | leakcheck | plugin process: leak threshold set at 0 bytes
[task 2021-03-20T04:57:35.276Z] 04:57:35     INFO - TEST-INFO | leakcheck | rdd process: leak threshold set at 0 bytes
[task 2021-03-20T04:57:35.277Z] 04:57:35     INFO - TEST-INFO | leakcheck | socket process: leak threshold set at 0 bytes
[task 2021-03-20T04:57:35.277Z] 04:57:35     INFO - TEST-INFO | leakcheck | tab process: leak threshold set at 10000 bytes
[task 2021-03-20T04:57:35.278Z] 04:57:35     INFO - TEST-INFO | leakcheck | vr process: leak threshold set at 0 bytes
[task 2021-03-20T04:57:35.278Z] 04:57:35     INFO - leakcheck | Processing leak log file /var/folders/mx/15ww1m2s701gthpd5h8vmkbr000017/T/tmpyv9qrq5e/runtests_leaks_2815_tab_pid2871.log
[task 2021-03-20T04:57:35.278Z] 04:57:35     INFO - 
[task 2021-03-20T04:57:35.279Z] 04:57:35     INFO - == BloatView: ALL (cumulative) LEAK AND BLOAT STATISTICS, tab process 2871
[task 2021-03-20T04:57:35.279Z] 04:57:35     INFO - 
[task 2021-03-20T04:57:35.280Z] 04:57:35     INFO -      |<----------------Class--------------->|<-----Bytes------>|<----Objects---->|
[task 2021-03-20T04:57:35.280Z] 04:57:35     INFO -      |                                      | Per-Inst   Leaked|   Total      Rem|
[task 2021-03-20T04:57:35.280Z] 04:57:35     INFO -    0 |TOTAL                                 |       42        0|  117634        0|
[task 2021-03-20T04:57:35.281Z] 04:57:35     INFO - 
[task 2021-03-20T04:57:35.281Z] 04:57:35     INFO - nsTraceRefcnt::DumpStatistics: 796 entries
[task 2021-03-20T04:57:35.282Z] 04:57:35     INFO - TEST-PASS | leakcheck | tab no leaks detected!```

Set release status flags based on info from the regressing bug 1699836

Update:

There have been 42 failures within the last 7 days:

  • 6 failures Android 7.0 x86-64 WebRender opt
  • 1 failure on Linux 18.04 x64 WebRender opt
  • 34 failures on Windows 10 x64 WebRender debug
  • 1 failure on Windows 10 x64 WebRender Shippable opt

Recent failure log: https://treeherder.mozilla.org/logviewer?job_id=339593814&repo=mozilla-central&lineNumber=9884

[task 2021-05-13T10:24:16.757Z] 10:24:16 INFO - TEST-START | /css/css-backgrounds/animations/invalidation/background-color-animation-with-zero-alpha.html
[task 2021-05-13T10:24:16.776Z] 10:24:16 INFO - PID 5228 | 1620901456774 Marionette INFO Testing http://web-platform.test:8000/css/css-backgrounds/animations/invalidation/background-color-animation-with-zero-alpha.html == http://web-platform.test:8000/css/css-backgrounds/animations/invalidation/background-color-animation-with-zero-alpha-ref.html
[task 2021-05-13T10:24:16.827Z] 10:24:16 INFO - PID 5228 | [Child 8592, Main Thread] WARNING: '!CanSend() || !mManager || !mManager->CanSend()', file /builds/worker/checkouts/gecko/dom/ipc/jsactor/JSWindowActorChild.cpp:40
[task 2021-05-13T10:24:16.949Z] 10:24:16 INFO - PID 5228 | [Child 8592, Main Thread] WARNING: '!CanSend() || !mManager || !mManager->CanSend()', file /builds/worker/checkouts/gecko/dom/ipc/jsactor/JSWindowActorChild.cpp:40
[task 2021-05-13T10:24:56.847Z] 10:24:56 INFO - PID 5228 | [GPU 1404, Compositor] WARNING: Possibly dropping task posted to updater thread: file /builds/worker/checkouts/gecko/gfx/layers/apz/src/APZUpdater.cpp:370
[task 2021-05-13T10:24:56.905Z] 10:24:56 WARNING - Failed to get assertion count; window was closed
[task 2021-05-13T10:24:56.920Z] 10:24:56 WARNING - Failed to get assertion count; window was closed
[task 2021-05-13T10:24:56.923Z] 10:24:56 INFO - TEST-UNEXPECTED-TIMEOUT | /css/css-backgrounds/animations/invalidation/background-color-animation-with-zero-alpha.html | expected PASS
[task 2021-05-13T10:24:56.923Z] 10:24:56 INFO - TEST-INFO took 40166ms

Whiteboard: [stockwell needswork:owner]

James, could you help us assign this to someone?

Thank you.

Flags: needinfo?(james)
Flags: needinfo?(james) → needinfo?(hikezoe.birchill)

Otherwise we keep restyling for the animations on the main thread and trying
to create display items for them.

Assignee: nobody → hikezoe.birchill
Status: NEW → ASSIGNED
Flags: needinfo?(hikezoe.birchill)

(In reply to Hiroyuki Ikezoe (:hiro) from comment #9)

Created attachment 9222534 [details]
Bug 1699890 - Forcibly create a display item for backgroud-color animations even if it's transparent at the moment. r?boris!,miko!

Otherwise we keep restyling for the animations on the main thread and trying
to create display items for them.

In the testcase background-color-animation-with-zero-alpha.html the whole animation is fully transparent. Rather than creating transparent items and throwing them away, can we instead detect that the target color is fully transparent and stop animating?

(In reply to Miko Mynttinen [:miko] from comment #10)

(In reply to Hiroyuki Ikezoe (:hiro) from comment #9)

Created attachment 9222534 [details]
Bug 1699890 - Forcibly create a display item for backgroud-color animations even if it's transparent at the moment. r?boris!,miko!

Otherwise we keep restyling for the animations on the main thread and trying
to create display items for them.

In the testcase background-color-animation-with-zero-alpha.html the whole animation is fully transparent. Rather than creating transparent items and throwing them away, can we instead detect that the target color is fully transparent and stop animating?

To stop animating means we need to tell when we need to restart animating beforehand, unfortunately it's quite hard to tell beforehand when the animating background-color becomes opaque without computing the style on each tick. We have a similar optimization that is to skip computing style if the computed timing value is not changed since the previous style computation. And also that we have nsChangeHint to tell whether the style change affects painting/reflow etc. etc. If there is no change hint we skip such post styling processes. That said, animation properties which can be run on the compositor thread, we need to do such post styling processes even if no change hint generated, we do the special handing in RestyleManager::AddLayerChangesForAnimation and the background-color-animation-with-zero-alpha.html is a case handled by AddLayerChangesForAnimation.

Note that as far as I can tell, opacity animation also generates a display item and thus runs on the compositor even if it's fully transparent.

(In reply to Hiroyuki Ikezoe (:hiro) from comment #11)

To stop animating means we need to tell when we need to restart animating beforehand, unfortunately it's quite hard to tell beforehand when the animating background-color becomes opaque without computing the style on each tick. We have a similar optimization that is to skip computing style if the computed timing value is not changed since the previous style computation. And also that we have nsChangeHint to tell whether the style change affects painting/reflow etc. etc. If there is no change hint we skip such post styling processes. That said, animation properties which can be run on the compositor thread, we need to do such post styling processes even if no change hint generated, we do the special handing in RestyleManager::AddLayerChangesForAnimation and the background-color-animation-with-zero-alpha.html is a case handled by AddLayerChangesForAnimation.

Thank you for the additional explanation. It seems that with WebRender, we might be able to avoid creating display items and instead add WebRenderAnimationData on frames. This would unfortunately not work with FLB since that uses DisplayItemData instead.

I think this can wait until FLB is removed, unless this patch regresses performance (it is modifying a hot code path).

Pushed by hikezoe.birchill@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/1c7f2486a0e9 Forcibly create a display item for backgroud-color animations even if it's transparent at the moment. r=boris,miko

(In reply to Miko Mynttinen [:miko] from comment #13)

(In reply to Hiroyuki Ikezoe (:hiro) from comment #11)

To stop animating means we need to tell when we need to restart animating beforehand, unfortunately it's quite hard to tell beforehand when the animating background-color becomes opaque without computing the style on each tick. We have a similar optimization that is to skip computing style if the computed timing value is not changed since the previous style computation. And also that we have nsChangeHint to tell whether the style change affects painting/reflow etc. etc. If there is no change hint we skip such post styling processes. That said, animation properties which can be run on the compositor thread, we need to do such post styling processes even if no change hint generated, we do the special handing in RestyleManager::AddLayerChangesForAnimation and the background-color-animation-with-zero-alpha.html is a case handled by AddLayerChangesForAnimation.

Thank you for the additional explanation. It seems that with WebRender, we might be able to avoid creating display items and instead add WebRenderAnimationData on frames. This would unfortunately not work with FLB since that uses DisplayItemData instead.

I think this can wait until FLB is removed, unless this patch regresses performance (it is modifying a hot code path).

I believe the patch improves the performance where (transparent) background-color animations are.

See Also: → 1712193

Sigh. So I was blind about the fact background-color animations covered by opaque background-image propety's image haven't properly been optimized. Instead, it just simply keeps restyling and trying to create display items repeatedly, which means it consumes main-thread works. For now it's better than before that is that now the animations run on the compositor instead of consuming the main-thread, but eventually we should avoid the works both the main and the compositor threads, i.e. skip restyling and following jobs on the main-thread in such cases. For now, I do skip the check in the test I will file a bug for the optimization (and in that bug the test case should be moved into file_restyles.html to make sure it doesn't do restyling on the main-thread too).

Flags: needinfo?(hikezoe.birchill)

Filed bug 1712246.

Pushed by hikezoe.birchill@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/c5ce83934eac Forcibly create a display item for backgroud-color animations even if it's transparent at the moment. r=boris,miko

Backed out for causing dt assertion failures on nsDisplayList.h.

Push with failures

Failure log

Backout link

Flags: needinfo?(hikezoe.birchill)

So that now EffectCompositor::HasAnimationsForCompositor doesn't return true
for such cases, thus we will not accidentally try to generate
nsDisplayBackgroundColor display item for such animations (bug 1699890#c21)
and we will not generate nsChangeHint_RepaintFrame (bug 1701547) either.

Pushed by hikezoe.birchill@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/69826920340d Restrict background-color animations on canvas frame or on <body> element not to run on the compositor in KeyframeEffect::IsMatchForCompositor. r=boris https://hg.mozilla.org/integration/autoland/rev/38bfba07a1ac Forcibly create a display item for backgroud-color animations even if it's transparent at the moment. r=boris,miko
Flags: needinfo?(hikezoe.birchill)
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 90 Branch

I wonder what our backing out policy is.. The test has been already filed as intermittent failure (bug 1712193) and I've already commented the failure reason in bug 1712193 comment 1. So I thought the changes in this bug will never be backed out due to the intermittent....
(Note that the reason why it looks like bug 1712193 failure rate was bumped up by this change is that this change makes the test in question more reliable fail, the test should just fail all the time but it's been passing accidentally!)

Anyway, I am going to mark all background-color-animation-with-table[1-4].html as "[PASS, TIMEOUT]". (Interestingly background-color-animation-with-table3.html has been already marked as "[PASS, TIMEOUT]" by the wptsync-bot).

Flags: needinfo?(hikezoe.birchill)
Pushed by hikezoe.birchill@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/153fa39b3084 Restrict background-color animations on canvas frame or on <body> element not to run on the compositor in KeyframeEffect::IsMatchForCompositor. r=boris https://hg.mozilla.org/integration/autoland/rev/6128a351b7e7 Forcibly create a display item for backgroud-color animations even if it's transparent at the moment. r=boris,miko
Status: REOPENED → RESOLVED
Closed: 3 years ago3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 90 Branch
Regressions: 1713880
Regressions: 1725908
Regressions: 1760795
Regressions: 1839022
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: