From 1db268ef508605b7b39d670ad91a2469e45bf9ee Mon Sep 17 00:00:00 2001 From: Moonchild Date: Sat, 15 Jun 2024 16:21:54 +0200 Subject: [PATCH] Issue #2532 - Align dialog submission triggered by form.submit() with the spec. Submission in click handler of submit button should not be deferred per https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#submit-dialog See Bug 1719872 --- dom/html/HTMLFormElement.cpp | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/dom/html/HTMLFormElement.cpp b/dom/html/HTMLFormElement.cpp index 240eaf2b54..d2b39461f1 100644 --- a/dom/html/HTMLFormElement.cpp +++ b/dom/html/HTMLFormElement.cpp @@ -676,16 +676,6 @@ HTMLFormElement::DoSubmit(WidgetEvent* aEvent) mSubmitInitiatedFromUserInput = EventStateManager::IsHandlingUserInput(); - if(mDeferSubmission) { - // we are in an event handler, JS submitted so we have to - // defer this submission. let's remember it and return - // without submitting - mPendingSubmission = submission; - // ensure reentrancy - mIsSubmitting = false; - return NS_OK; - } - // // perform the submission // @@ -709,6 +699,17 @@ HTMLFormElement::DoSubmit(WidgetEvent* aEvent) submission->GetAsDialogSubmission()) { return SubmitDialog(dialogSubmission); } + + if(mDeferSubmission) { + // we are in an event handler, JS submitted so we have to + // defer this submission. let's remember it and return + // without submitting + mPendingSubmission = submission; + // ensure reentrancy + mIsSubmitting = false; + return NS_OK; + } + return SubmitSubmission(submission); }