Bug 2039903 - Use proper types for PBrowser::SynthesizeNativeMouseEvent. r=masayuki
Differential Revision: https://phabricator.services.mozilla.com/D300803
This commit is contained in:
committed by
tschuster@mozilla.com
parent
86424bc2fa
commit
eb77d9c97a
@@ -1928,22 +1928,18 @@ mozilla::ipc::IPCResult BrowserParent::RecvSynthesizeNativeKeyEvent(
|
||||
}
|
||||
|
||||
mozilla::ipc::IPCResult BrowserParent::RecvSynthesizeNativeMouseEvent(
|
||||
const LayoutDeviceIntPoint& aPoint, const uint32_t& aNativeMessage,
|
||||
const int16_t& aButton, const uint32_t& aModifierFlags,
|
||||
const LayoutDeviceIntPoint& aPoint,
|
||||
const nsIWidget::NativeMouseMessage& aNativeMessage,
|
||||
const mozilla::MouseButton& aButton,
|
||||
const nsIWidget::NativeModifiers& aModifierFlags,
|
||||
const Maybe<uint64_t>& aCallbackId) {
|
||||
NS_ENSURE_TRUE(xpc::IsInAutomation(), IPC_FAIL(this, "Unexpected event"));
|
||||
|
||||
const uint32_t last =
|
||||
static_cast<uint32_t>(nsIWidget::NativeMouseMessage::LeaveWindow);
|
||||
NS_ENSURE_TRUE(aNativeMessage <= last, IPC_FAIL(this, "Bogus message"));
|
||||
|
||||
nsCOMPtr<nsISynthesizedEventCallback> callback =
|
||||
SynthesizedEventCallback::MaybeCreate(this, aCallbackId);
|
||||
if (nsCOMPtr<nsIWidget> widget = GetWidget()) {
|
||||
widget->SynthesizeNativeMouseEvent(
|
||||
aPoint, static_cast<nsIWidget::NativeMouseMessage>(aNativeMessage),
|
||||
static_cast<mozilla::MouseButton>(aButton),
|
||||
static_cast<nsIWidget::NativeModifiers>(aModifierFlags), callback);
|
||||
widget->SynthesizeNativeMouseEvent(aPoint, aNativeMessage, aButton,
|
||||
aModifierFlags, callback);
|
||||
}
|
||||
return IPC_OK();
|
||||
}
|
||||
|
||||
@@ -507,8 +507,10 @@ class BrowserParent final : public PBrowserParent,
|
||||
const Maybe<uint64_t>& aCallbackId);
|
||||
|
||||
mozilla::ipc::IPCResult RecvSynthesizeNativeMouseEvent(
|
||||
const LayoutDeviceIntPoint& aPoint, const uint32_t& aNativeMessage,
|
||||
const int16_t& aButton, const uint32_t& aModifierFlags,
|
||||
const LayoutDeviceIntPoint& aPoint,
|
||||
const nsIWidget::NativeMouseMessage& aNativeMessage,
|
||||
const mozilla::MouseButton& aButton,
|
||||
const nsIWidget::NativeModifiers& aModifierFlags,
|
||||
const Maybe<uint64_t>& aCallbackId);
|
||||
|
||||
mozilla::ipc::IPCResult RecvSynthesizeNativeMouseMove(
|
||||
|
||||
@@ -83,9 +83,12 @@ using mozilla::layers::CompositorOptions from "mozilla/layers/CompositorOptions.
|
||||
using mozilla::CSSToScreenScale from "Units.h";
|
||||
using mozilla::CommandInt from "mozilla/EventForwards.h";
|
||||
using mozilla::HapticFeedbackType from "nsIWidget.h";
|
||||
using nsIWidget::NativeMouseMessage from "nsIWidget.h";
|
||||
using nsIWidget::NativeModifiers from "nsIWidget.h";
|
||||
using nsIWidget::NativePointerLockMode from "nsIWidget.h";
|
||||
using nsIWidget::TouchPointerState from "nsIWidget.h";
|
||||
using nsIWidget::TouchpadGesturePhase from "nsIWidget.h";
|
||||
using mozilla::MouseButton from "mozilla/EventForwards.h";
|
||||
using nsCursor from "nsIWidget.h";
|
||||
using struct LookAndFeelInt from "mozilla/widget/WidgetMessageUtils.h";
|
||||
using struct mozilla::DimensionRequest from "mozilla/widget/WidgetMessageUtils.h";
|
||||
@@ -471,9 +474,9 @@ parent:
|
||||
nsString aUnmodifiedCharacters,
|
||||
uint64_t? aCallbackId);
|
||||
async SynthesizeNativeMouseEvent(LayoutDeviceIntPoint aPoint,
|
||||
uint32_t aNativeMessage,
|
||||
int16_t aButton,
|
||||
uint32_t aModifierFlags,
|
||||
NativeMouseMessage aNativeMessage,
|
||||
MouseButton aButton,
|
||||
NativeModifiers aModifierFlags,
|
||||
uint64_t? aCallbackId);
|
||||
async SynthesizeNativeMouseMove(LayoutDeviceIntPoint aPoint,
|
||||
uint64_t? aCallbackId);
|
||||
|
||||
@@ -344,9 +344,7 @@ nsresult PuppetWidget::SynthesizeNativeMouseEvent(
|
||||
return NS_ERROR_FAILURE;
|
||||
}
|
||||
mBrowserChild->SendSynthesizeNativeMouseEvent(
|
||||
aPoint, static_cast<uint32_t>(aNativeMessage),
|
||||
static_cast<int16_t>(aButton), static_cast<uint32_t>(aModifierFlags),
|
||||
notifier.SaveCallback());
|
||||
aPoint, aNativeMessage, aButton, aModifierFlags, notifier.SaveCallback());
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "ipc/IPCMessageUtils.h"
|
||||
#include "mozilla/Attributes.h"
|
||||
#include "mozilla/DimensionRequest.h"
|
||||
#include "mozilla/EventForwards.h"
|
||||
#include "mozilla/GfxMessageUtils.h"
|
||||
#include "mozilla/LookAndFeel.h"
|
||||
#include "mozilla/NativeKeyBindingsType.h"
|
||||
@@ -68,6 +69,24 @@ struct ParamTraits<nsIWidget::NativePointerLockMode>
|
||||
nsIWidget::NativePointerLockMode::Regular,
|
||||
nsIWidget::NativePointerLockMode::Unadjusted> {};
|
||||
|
||||
template <>
|
||||
struct ParamTraits<nsIWidget::NativeMouseMessage>
|
||||
: ContiguousEnumSerializerInclusive<
|
||||
nsIWidget::NativeMouseMessage,
|
||||
nsIWidget::NativeMouseMessage::ButtonDown,
|
||||
nsIWidget::NativeMouseMessage::LeaveWindow> {};
|
||||
|
||||
template <>
|
||||
struct ParamTraits<nsIWidget::NativeModifiers>
|
||||
: BitFlagsEnumSerializer<nsIWidget::NativeModifiers,
|
||||
nsIWidget::NativeModifiers::ALL_BITS> {};
|
||||
|
||||
template <>
|
||||
struct ParamTraits<mozilla::MouseButton>
|
||||
: ContiguousEnumSerializerInclusive<mozilla::MouseButton,
|
||||
mozilla::MouseButton::eNotPressed,
|
||||
mozilla::MouseButton::eEraser> {};
|
||||
|
||||
template <>
|
||||
struct ParamTraits<nsCursor>
|
||||
: ContiguousEnumSerializer<nsCursor, eCursor_standard, eCursorCount> {};
|
||||
|
||||
Reference in New Issue
Block a user