Source code
Revision control
Copy as Markdown
Other Tools
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
include "mozilla/GfxMessageUtils.h";
include "mozilla/layers/LayersMessageUtils.h";
include protocol PCompositorBridge;
using mozilla::CSSRect from "Units.h";
using mozilla::layers::ZoomTarget from "mozilla/layers/DoubleTapToZoom.h";
using mozilla::layers::DoubleTapToZoomMetrics from "mozilla/layers/DoubleTapToZoom.h";
using mozilla::layers::ZoomConstraints from "mozilla/layers/ZoomConstraints.h";
using mozilla::layers::ScrollableLayerGuid from "mozilla/layers/ScrollableLayerGuid.h";
using mozilla::layers::TouchBehaviorFlags from "mozilla/layers/LayersTypes.h";
using mozilla::layers::AsyncDragMetrics from "mozilla/layers/AsyncDragMetrics.h";
using mozilla::layers::GeckoContentController_TapType from "mozilla/layers/GeckoContentControllerTypes.h";
using mozilla::layers::APZHandledResult from "mozilla/layers/APZBridge.h";
namespace mozilla {
namespace layers {
/**
* PAPZCTreeManager is a protocol for remoting an IAPZCTreeManager. PAPZCTreeManager
* lives on the PCompositorBridge protocol which either connects to the compositor
* thread in the main process, or to the compositor thread in the gpu processs.
*
* PAPZCTreeManagerParent lives in the compositor thread, while PAPZCTreeManagerChild
* lives in the main thread of the main or the content process. APZCTreeManagerParent
* and APZCTreeManagerChild implement this protocol.
*/
protocol PAPZCTreeManager
{
manager PCompositorBridge;
parent:
// These messages correspond to the methods
// on the IAPZCTreeManager interface
async ZoomToRect(ScrollableLayerGuid aGuid, ZoomTarget aZoomTarget, uint32_t Flags);
async ContentReceivedInputBlock(uint64_t aInputBlockId, bool PreventDefault);
async SetTargetAPZC(uint64_t aInputBlockId, ScrollableLayerGuid[] Targets);
async UpdateZoomConstraints(ScrollableLayerGuid aGuid, ZoomConstraints? aConstraints);
async SetAllowedTouchBehavior(uint64_t aInputBlockId, TouchBehaviorFlags[] aValues);
async StartScrollbarDrag(ScrollableLayerGuid aGuid, AsyncDragMetrics aDragMetrics);
// Fast notification from content that an APZ-aware (non-passive
// touchstart/touchmove/touchend/wheel/...) event listener has been
// registered. |aGuid| identifies the nearest scroll container ancestor
// of the listener target (or the document's root scroll container for
// document/window listeners). APZ uses this signal to set
// eApzAwareListeners on subsequent hit-test results whose target APZC
// matches |aGuid| or descends from it in the APZC tree (within the
// same layers id), without waiting for a full paint and WebRender
// transaction round-trip.
async NotifyApzAwareListenerAdded(ScrollableLayerGuid aGuid);
async __delete__();
};
} // namespace gfx
} // namespace mozilla