Bug 1873123 Comment 0 Edit History

Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.

Currently, when WebRender prepares to build a frame and samples async properties for that frame from APZ by callng [apz_sample_transforms](https://searchfox.org/mozilla-central/rev/6321fb8f7533456a62dfa2aa68ee0477a6c8f693/gfx/webrender_bindings/src/bindings.rs#963), APZ makes a number of WebRender API calls to provide the information being sampled:

 * one call to [wr_transaction_scroll_layer](https://searchfox.org/mozilla-central/rev/6321fb8f7533456a62dfa2aa68ee0477a6c8f693/gfx/webrender_bindings/src/bindings.rs#2002) for every scroll frame to provide async scroll offsets
 * (since bug 1604280) if the minimap is enabled, one call to [wr_transaction_add_minimap_data](https://searchfox.org/mozilla-central/rev/6321fb8f7533456a62dfa2aa68ee0477a6c8f693/gfx/webrender_bindings/src/bindings.rs#2022) for every scroll frame to provide minimap data
 * one call to [wr_transaction_set_is_transform_async_zooming](https://searchfox.org/mozilla-central/rev/6321fb8f7533456a62dfa2aa68ee0477a6c8f693/gfx/webrender_bindings/src/bindings.rs#2013) to tell WebRender whether we are currently in an "async zoom" operation
 * one call to [wr_transaction_append_transform_properties](https://searchfox.org/mozilla-central/rev/6321fb8f7533456a62dfa2aa68ee0477a6c8f693/gfx/webrender_bindings/src/bindings.rs#1986) to tell WebRender about APZ transforms (other than async scroll offsets) such as the zoom transform, and translation transforms applicable to fixed elements, sticky elements, and scrollbar thumbs

During the review of bug 1604280, Glenn [suggested](https://phabricator.services.mozilla.com/D190720#6514860) that we consider changing the API to provide all this information in a single API call.
Currently, when WebRender prepares to build a frame and samples async properties for that frame from APZ by calling [apz_sample_transforms](https://searchfox.org/mozilla-central/rev/6321fb8f7533456a62dfa2aa68ee0477a6c8f693/gfx/webrender_bindings/src/bindings.rs#963), APZ makes a number of WebRender API calls to provide the information being sampled:

 * one call to [wr_transaction_scroll_layer](https://searchfox.org/mozilla-central/rev/6321fb8f7533456a62dfa2aa68ee0477a6c8f693/gfx/webrender_bindings/src/bindings.rs#2002) for every scroll frame to provide async scroll offsets
 * (since bug 1604280) if the minimap is enabled, one call to [wr_transaction_add_minimap_data](https://searchfox.org/mozilla-central/rev/6321fb8f7533456a62dfa2aa68ee0477a6c8f693/gfx/webrender_bindings/src/bindings.rs#2022) for every scroll frame to provide minimap data
 * one call to [wr_transaction_set_is_transform_async_zooming](https://searchfox.org/mozilla-central/rev/6321fb8f7533456a62dfa2aa68ee0477a6c8f693/gfx/webrender_bindings/src/bindings.rs#2013) to tell WebRender whether we are currently in an "async zoom" operation
 * one call to [wr_transaction_append_transform_properties](https://searchfox.org/mozilla-central/rev/6321fb8f7533456a62dfa2aa68ee0477a6c8f693/gfx/webrender_bindings/src/bindings.rs#1986) to tell WebRender about APZ transforms (other than async scroll offsets) such as the zoom transform, and translation transforms applicable to fixed elements, sticky elements, and scrollbar thumbs

During the review of bug 1604280, Glenn [suggested](https://phabricator.services.mozilla.com/D190720#6514860) that we consider changing the API to provide all this information in a single API call.

Back to Bug 1873123 Comment 0