Bug 1864379 - P1. Don't dispatch LoginManager DOM events for disconnected input elements. r=dimi,emilio

Differential Revision: https://phabricator.services.mozilla.com/D194768
This commit is contained in:
Issam Mani
2023-12-04 11:39:19 +00:00
parent f32c50299f
commit 03b2ed51e3
7 changed files with 81 additions and 68 deletions

View File

@@ -61,6 +61,11 @@ class HTMLFormElement final : public nsGenericHTMLElement,
// EventTarget
void AsyncEventRunning(AsyncEventDispatcher* aEvent) override;
/** Whether we already dispatched a DOMFormHasPassword event or not */
bool mHasPendingPasswordEvent = false;
/** Whether we already dispatched a DOMFormHasPossibleUsername event or not */
bool mHasPendingPossibleUsernameEvent = false;
// nsIContent
bool ParseAttribute(int32_t aNamespaceID, nsAtom* aAttribute,
const nsAString& aValue,
@@ -362,12 +367,6 @@ class HTMLFormElement final : public nsGenericHTMLElement,
protected:
JSObject* WrapNode(JSContext*, JS::Handle<JSObject*> aGivenProto) override;
void PostPasswordEvent();
void PostPossibleUsernameEvent();
RefPtr<AsyncEventDispatcher> mFormPasswordEventDispatcher;
RefPtr<AsyncEventDispatcher> mFormPossibleUsernameEventDispatcher;
class RemoveElementRunnable;
friend class RemoveElementRunnable;