diff options
Diffstat (limited to 'WebCore/html/HTMLFormElement.cpp')
-rw-r--r-- | WebCore/html/HTMLFormElement.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/WebCore/html/HTMLFormElement.cpp b/WebCore/html/HTMLFormElement.cpp index ace0f2f..bf25bf6 100644 --- a/WebCore/html/HTMLFormElement.cpp +++ b/WebCore/html/HTMLFormElement.cpp @@ -26,6 +26,7 @@ #include "HTMLFormElement.h" #include "CSSHelper.h" +#include "Chrome.h" #include "ChromeClient.h" #include "Document.h" #include "Event.h" @@ -302,7 +303,7 @@ bool HTMLFormElement::prepareSubmit(Event* event) m_insubmit = false; if (m_doingsubmit) - submit(event, true); + submit(event, true, false, NotSubmittedByJavaScript); return m_doingsubmit; } @@ -329,7 +330,15 @@ static void transferMailtoPostFormDataToURL(RefPtr<FormData>& data, KURL& url, c url.setQuery(query); } -void HTMLFormElement::submit(Event* event, bool activateSubmitButton, bool lockHistory) +void HTMLFormElement::submit(Frame* javaScriptActiveFrame) +{ + if (javaScriptActiveFrame) + submit(0, false, !javaScriptActiveFrame->script()->anyPageIsProcessingUserGesture(), SubmittedByJavaScript); + else + submit(0, false, false, NotSubmittedByJavaScript); +} + +void HTMLFormElement::submit(Event* event, bool activateSubmitButton, bool lockHistory, FormSubmissionTrigger formSubmissionTrigger) { FrameView* view = document()->view(); Frame* frame = document()->frame(); @@ -366,7 +375,7 @@ void HTMLFormElement::submit(Event* event, bool activateSubmitButton, bool lockH } } - RefPtr<FormState> formState = FormState::create(this, formValues, frame); + RefPtr<FormState> formState = FormState::create(this, formValues, frame, formSubmissionTrigger); if (needButtonActivation && firstSuccessfulSubmitButton) firstSuccessfulSubmitButton->setActivatedSubmit(true); |