The APZ interacts with the following other platform components:
=== Compositor ===
The '''compositor''' creates and stores the APZCTreeManager, and interacts with it in the following ways:
* When the compositor receives an update to the layer tree, it propagates this update to the APZCTreeManager by calling APZCTreeManager::UpdatePanZoomControllerTree(). This function updates the tree of APZCs to reflect the tree of scrollable layers in the updated layer tree.
* Every time the compositor composites a frame, it queries each APZC for its current async transform (see AsyncPanZoomController::SampleContentTransformForFrame()). The APZC modifies this transform as the user pans and zooms.
* APZCs can schedule a composite by calling CompositorParent::ScheduleRenderOnCompositorThread().
=== Widget code ===
The widget code interacts with the APZ in the following ways:
=== Compositor ===
=== Gecko ===