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); }