Platform/GFX/APZ: Difference between revisions

Line 38: Line 38:
* On B2G: [https://mxr.mozilla.org/mozilla-central/source/layout/ipc/RenderFrameParent.h RenderFrameParent]/[https://mxr.mozilla.org/mozilla-central/source/layout/ipc/RenderFrameChild.h RenderFrameChild] and [https://mxr.mozilla.org/mozilla-central/source/dom/ipc/TabParent.h TabParent]/[https://mxr.mozilla.org/mozilla-central/source/dom/ipc/TabChild.h TabChild]
* On B2G: [https://mxr.mozilla.org/mozilla-central/source/layout/ipc/RenderFrameParent.h RenderFrameParent]/[https://mxr.mozilla.org/mozilla-central/source/layout/ipc/RenderFrameChild.h RenderFrameChild] and [https://mxr.mozilla.org/mozilla-central/source/dom/ipc/TabParent.h TabParent]/[https://mxr.mozilla.org/mozilla-central/source/dom/ipc/TabChild.h TabChild]
* On Metro: [https://mxr.mozilla.org/mozilla-central/source/widget/windows/winrt/MetroWidget.h MetroWidget] and [https://mxr.mozilla.org/mozilla-central/source/widget/windows/winrt/MetroInput.h MetroInput]
* On Metro: [https://mxr.mozilla.org/mozilla-central/source/widget/windows/winrt/MetroWidget.h MetroWidget] and [https://mxr.mozilla.org/mozilla-central/source/widget/windows/winrt/MetroInput.h MetroInput]
* On Fennec (which doesn't use the APZ yet): [https://mxr.mozilla.org/mozilla-central/source/mobile/android/base/GeckoAppShell.java GeckoAppShell] and [https://mxr.mozilla.org/mozilla-central/source/mobile/android/base/gfx/GeckoLayerClient.java GeckoLayerClient], which communicate with native code via the [https://mxr.mozilla.org/mozilla-central/source/widget/android/nsIAndroidBridge.idl AndroidBridge].
* On Fennec (which doesn't use the APZ yet): [https://mxr.mozilla.org/mozilla-central/source/mobile/android/base/GeckoAppShell.java GeckoAppShell] and [https://mxr.mozilla.org/mozilla-central/source/mobile/android/base/gfx/GeckoLayerClient.java GeckoLayerClient], which communicate with native code via [http://mxr.mozilla.org/mozilla-central/source/widget/android/AndroidJNI.cpp AndroidJNI].


The widget code interacts with the APZ in the following ways:
The widget code interacts with the APZ in the following ways:


* forwards relevant input events to the APZ (APZCTreeManager::ReceiveInputEvent())
* forwards relevant input events to the APZ (APZCTreeManager::ReceiveInputEvent())
*  
* notifies the APZ about Gecko events that are relevant to it, such as
** a reflow that causes a change in the dimensions of a scrollable layer (APZCTreeManager::UpdateCompositionBounds())
** a scrollTo performed by content (APZCTreeManager::UpdateScrollOffset())
**  


=== Gecko ===
=== Gecko ===
Confirmed users
85

edits