From 1f335743e710477060cbbdd73e7a33fb8c660322 Mon Sep 17 00:00:00 2001 From: Makoto Kato Date: Mon, 18 Dec 2023 05:46:13 +0000 Subject: [PATCH] Bug 1850213 - Initialize mInHTMLEditorEventListener. r=masayuki `mInHTMLEditorEventListener` isn't initialized during IPC, so this variable is randomly between multi-process. Also, I try to write a test for it, but drag and drop tests don't seem to support multi-process. Differential Revision: https://phabricator.services.mozilla.com/D196694 --- widget/MouseEvents.h | 6 +++++- widget/nsGUIEventIPC.h | 4 +++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/widget/MouseEvents.h b/widget/MouseEvents.h index 7ad7d82cd688..ea714704df53 100644 --- a/widget/MouseEvents.h +++ b/widget/MouseEvents.h @@ -383,7 +383,9 @@ class WidgetDragEvent : public WidgetMouseEvent { protected: WidgetDragEvent() - : mUserCancelled(false), mDefaultPreventedOnContent(false) {} + : mUserCancelled(false), + mDefaultPreventedOnContent(false), + mInHTMLEditorEventListener(false) {} public: virtual WidgetDragEvent* AsDragEvent() override { return this; } @@ -425,6 +427,8 @@ class WidgetDragEvent : public WidgetMouseEvent { // XXX mUserCancelled isn't copied, is this intentionally? mUserCancelled = false; mDefaultPreventedOnContent = aEvent.mDefaultPreventedOnContent; + // XXX mInHTMLEditorEventListener isn't copied, is this intentionally? + mInHTMLEditorEventListener = false; } /** diff --git a/widget/nsGUIEventIPC.h b/widget/nsGUIEventIPC.h index a3d7aaf1b6c6..8ba46829357f 100644 --- a/widget/nsGUIEventIPC.h +++ b/widget/nsGUIEventIPC.h @@ -270,13 +270,15 @@ struct ParamTraits { WriteParam(aWriter, static_cast(aParam)); WriteParam(aWriter, aParam.mUserCancelled); WriteParam(aWriter, aParam.mDefaultPreventedOnContent); + WriteParam(aWriter, aParam.mInHTMLEditorEventListener); } static bool Read(MessageReader* aReader, paramType* aResult) { bool rv = ReadParam(aReader, static_cast(aResult)) && ReadParam(aReader, &aResult->mUserCancelled) && - ReadParam(aReader, &aResult->mDefaultPreventedOnContent); + ReadParam(aReader, &aResult->mDefaultPreventedOnContent) && + ReadParam(aReader, &aResult->mInHTMLEditorEventListener); return rv; } };