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 "ipc/nsGUIEventIPC.h";
using mozilla::LayoutDeviceCoord from "Units.h";
using mozilla::LayoutDeviceIntPoint from "Units.h";
using mozilla::LayoutDevicePoint from "Units.h";
using mozilla::ScreenPoint from "Units.h";
using mozilla::layers::GeckoContentController_TapType from "mozilla/layers/GeckoContentControllerTypes.h";
using mozilla::layers::DoubleTapToZoomMetrics from "mozilla/layers/DoubleTapToZoom.h";
using struct mozilla::layers::ScrollableLayerGuid from "mozilla/layers/ScrollableLayerGuid.h";
using mozilla::layers::ScrollableLayerGuid::ViewID from "mozilla/layers/ScrollableLayerGuid.h";
using struct mozilla::layers::APZEventResult from "mozilla/layers/APZBridge.h";
using struct mozilla::layers::APZHandledResult from "mozilla/layers/APZBridge.h";
using mozilla::layers::BrowserGestureResponse from "mozilla/layers/APZBridge.h";
using mozilla::EventMessage from "mozilla/EventForwards.h";
using mozilla::Modifiers from "mozilla/EventForwards.h";
using class mozilla::MultiTouchInput from "InputData.h";
using class mozilla::MouseInput from "InputData.h";
using class mozilla::PanGestureInput from "InputData.h";
using class mozilla::PinchGestureInput from "InputData.h";
using mozilla::PinchGestureInput::PinchGestureType from "InputData.h";
using class mozilla::TapGestureInput from "InputData.h";
using class mozilla::ScrollWheelInput from "InputData.h";
using class mozilla::KeyboardInput from "InputData.h";
using class mozilla::layers::KeyboardMap from "mozilla/layers/KeyboardMap.h";
using mozilla::layers::LayersId from "mozilla/layers/LayersTypes.h";
using mozilla::layers::MatrixMessage from "mozilla/layers/MatrixMessage.h";
namespace mozilla {
namespace layers {
/**
* This protocol is used for APZ communication between the UI process and the
* GPU process. The UI process uses it to send input events and other requests
* to APZ, and the GPU process uses it to notify the UI process of things like
* taps and layer transforms. There is one instance per top-level
* compositor, or in other words, one instance per concrete APZCTreeManager
* instance. The child side lives on the controller thread in the UI process,
* ie the main thread on most platforms, but the Android UI thread on Android.
* The parent side lives on the main thread in the GPU process. If there is no
* GPU process, then this protocol is not instantiated.
*/
[ParentProc=GPU, ChildProc=Parent]
sync protocol PAPZBridge
{
parent:
// The following messages are used to
// implement the ReceiveInputEvent methods
sync ReceiveMultiTouchInputEvent(MultiTouchInput aEvent, bool aWantsCallback)
returns(APZEventResult aOutResult, MultiTouchInput aOutEvent);
sync ReceiveMouseInputEvent(MouseInput aEvent, bool aWantsCallback)
returns (APZEventResult aOutResult,
MouseInput aOutEvent);
sync ReceivePanGestureInputEvent(PanGestureInput aEvent, bool aWantsCallback)
returns (APZEventResult aOutResult,
PanGestureInput aOutEvent);
sync ReceivePinchGestureInputEvent(PinchGestureInput aEvent,
bool aWantsCallback)
returns (APZEventResult aOutResult,
PinchGestureInput aOutEvent);
sync ReceiveTapGestureInputEvent(TapGestureInput aEvent, bool aWantsCallback)
returns (APZEventResult aOutResult,
TapGestureInput aOutEvent);
sync ReceiveScrollWheelInputEvent(ScrollWheelInput aEvent,
bool aWantsCallback)
returns (APZEventResult aOutResult,
ScrollWheelInput aOutEvent);
sync ReceiveKeyboardInputEvent(KeyboardInput aEvent, bool aWantsCallback)
returns (APZEventResult aOutResult,
KeyboardInput aOutEvent);
async UpdateWheelTransaction(LayoutDeviceIntPoint aRefPoint,
EventMessage aEventMessage,
ScrollableLayerGuid? aTargetGuid);
sync ProcessUnhandledEvent(LayoutDeviceIntPoint aRefPoint)
returns (LayoutDeviceIntPoint aOutRefPoint,
ScrollableLayerGuid aOutTargetGuid,
uint64_t aOutFocusSequenceNumber,
LayersId aOutLayersId);
async SetKeyboardMap(KeyboardMap aKeyboardMap);
async SetDPI(float aDpiValue);
async SetBrowserGestureResponse(uint64_t aInputBlockId,
BrowserGestureResponse aResponse);
async StartAutoscroll(ScrollableLayerGuid aGuid, ScreenPoint aAnchorLocation);
async StopAutoscroll(ScrollableLayerGuid aGuid);
async SetLongTapEnabled(bool aTapGestureEnabled);
child:
async CallInputBlockCallback(uint64_t aInputBlockId,
APZHandledResult aHandledResult);
async HandleTap(GeckoContentController_TapType aType, LayoutDevicePoint point,
Modifiers aModifiers, ScrollableLayerGuid aGuid,
uint64_t aInputBlockId, DoubleTapToZoomMetrics? aDoubleTapToZoomMetrics);
async NotifyPinchGesture(PinchGestureType aType, ScrollableLayerGuid aGuid,
LayoutDevicePoint aFocusPoint, LayoutDeviceCoord aSpanChange,
Modifiers aModifiers);
async CancelAutoscroll(ViewID aScrollId);
async NotifyScaleGestureComplete(ViewID aScrollId, float aScale);
async LayerTransforms(MatrixMessage[] aTransforms);
async UpdateOverscrollVelocity(ScrollableLayerGuid aGuid, float aX, float aY, bool aIsRootContent);
async UpdateOverscrollOffset(ScrollableLayerGuid aGuid, float aX, float aY, bool aIsRootContent);
async HideDynamicToolbar();
};
} // namespace gfx
} // namespace mozilla