Open Bug 1710321 Opened 3 years ago Updated 3 years ago

Make partial-prerender-expansion-with-resolution-1.html pass on WebRender with enabling partial pre-render on Android

Categories

(Core :: Layout, defect, P3)

defect

Tracking

()

People

(Reporter: mattwoodrow, Unassigned)

References

(Depends on 1 open bug, Blocks 1 open bug)

Details

Bug 1707513 changes the reftest harness slightly so that it uses async messages with a reply for requesting a canvas update, instead of a sync message.

Looking at the log for the failing test, it seems that we keep detecting that there's a pending paint and so we wait for the MozAfterPaint event. This repeats for what looks to be ~3000 paints.

I think we're just waiting for the entire 100s animation to complete (log timestamps aren't useful, because the reftest harness dumps the whole test log in one go), and then capturing a final screenshot without the transform applied.

I guess if isMozAfterPaintPending is returning true, then it means we're not running this animation async?

I'm going to mark this as failing on WebRender+Android for now.

:hiro, can you comment to this bug?

Flags: needinfo?(hikezoe.birchill)

With the layers backend, this transform value includes reftest-resolution value, whereas with the WebRender backend, this transform doesn't include the resolution value, thus we fail to detect jank with WebRender, in other words, we mis-consider janks a lot, then we repeatedly see MozAfterPaint events.

I fixed a similar issue caused by this WebRender/layers backend difference in bug 1682200 for hit-testing issues on fission worlds, in that bug we applied the desktop zoom value (i.e. reftest-resolution value) in the top level content document on the main-thread, but I am almost 100% sure we can't take the same approach here. Presumably we need to apply the zoom value on the compositor in the case of WebRender.

Flags: needinfo?(hikezoe.birchill)

Thanks.

:hiro, I have additional question. When I tested browser_test_scrollbar_in_extension_popup_window.js locally on Linux, it did not use WebRenderLayerManager::MakeSnapshotIfRequired() nor ClientLayerManager::MakeSnapshotIfRequired(), since CanvasRenderingContext2D::DrawWindow() was called in content process. With it, does the test work as expected?

Flags: needinfo?(hikezoe.birchill)

So as for the case of browser_test_scrollbar_in_extension_popup_window.js, it opens an extension's popup window which is opened in a content process, i.e. popup.html in the test is opened in a content process, then we can take a snapshot on the content by canvas drawWindow just like our reftest harness does.

Flags: needinfo?(hikezoe.birchill)

Sorry, browser_test_scrollbar_in_extension_popup_window.js is not related to this bug. I was confused. I just worried that popup reftests does not test expected target(WebRender/Compositor).

bug 1722359 made this reftest pass on Android+WR, should we close this? See bug 1722436

Yep, sure. Thanks! So there were some inconsistencies about the pref showing/hiding scrollbars?

You need to log in before you can comment on or make changes to this bug.