Issue #2135 - Bug 1413102 (Follow-up): Ignore current target because of shadow DOM retargeting

Based on https://bugzilla.mozilla.org/show_bug.cgi?id=1466581
This commit is contained in:
FranklinDM 2023-03-04 02:23:31 +08:00 committed by roytam1
commit 1bb2009f61
3 changed files with 18 additions and 4 deletions

View file

@ -128,6 +128,7 @@ public:
, mParentIsSlotInClosedTree(false)
, mParentIsChromeHandler(false)
, mRelatedTargetRetargetedInCurrentScope(false)
, mIgnoreBecauseOfShadowDOM(false)
, mParentTarget(nullptr)
, mEventTargetAtParent(nullptr)
, mRetargetedRelatedTarget(nullptr)
@ -151,6 +152,7 @@ public:
// Note, we don't clear mRelatedTargetRetargetedInCurrentScope explicitly,
// since it is used during event path creation to indicate whether
// relatedTarget may need to be retargeted.
mIgnoreBecauseOfShadowDOM = false;
mParentTarget = nullptr;
mEventTargetAtParent = nullptr;
mRetargetedRelatedTarget = nullptr;
@ -169,9 +171,10 @@ public:
}
}
void IgnoreCurrentTarget()
void IgnoreCurrentTargetBecauseOfShadowDOMRetargeting()
{
mCanHandle = false;
mIgnoreBecauseOfShadowDOM = true;
SetParentTarget(nullptr, false);
mEventTargetAtParent = nullptr;
}
@ -251,6 +254,12 @@ public:
*/
bool mRelatedTargetRetargetedInCurrentScope;
/**
* True if Shadow DOM relatedTarget retargeting causes the current item
* to not show up in the event path.
*/
bool mIgnoreBecauseOfShadowDOM;
private:
/**
* Parent item in the event target chain.