| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2001 Dirk Mueller (mueller@kde.org) | 4 * (C) 2001 Dirk Mueller (mueller@kde.org) |
| 5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv
ed. | 5 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv
ed. |
| 6 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) | 6 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) |
| 7 * | 7 * |
| 8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
| 9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
| 10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 65 HTMLFormElement::HTMLFormElement(Document& document) | 65 HTMLFormElement::HTMLFormElement(Document& document) |
| 66 : HTMLElement(formTag, document) | 66 : HTMLElement(formTag, document) |
| 67 #if !ENABLE(OILPAN) | 67 #if !ENABLE(OILPAN) |
| 68 , m_weakPtrFactory(this) | 68 , m_weakPtrFactory(this) |
| 69 #endif | 69 #endif |
| 70 , m_associatedElementsAreDirty(false) | 70 , m_associatedElementsAreDirty(false) |
| 71 , m_imageElementsAreDirty(false) | 71 , m_imageElementsAreDirty(false) |
| 72 , m_hasElementsAssociatedByParser(false) | 72 , m_hasElementsAssociatedByParser(false) |
| 73 , m_hasElementsAssociatedByFormAttribute(false) | 73 , m_hasElementsAssociatedByFormAttribute(false) |
| 74 , m_didFinishParsingChildren(false) | 74 , m_didFinishParsingChildren(false) |
| 75 , m_wasUserSubmitted(false) | |
| 76 , m_isSubmittingOrInUserJSSubmitEvent(false) | 75 , m_isSubmittingOrInUserJSSubmitEvent(false) |
| 77 , m_shouldSubmit(false) | 76 , m_shouldSubmit(false) |
| 78 , m_isInResetFunction(false) | 77 , m_isInResetFunction(false) |
| 79 , m_wasDemoted(false) | 78 , m_wasDemoted(false) |
| 80 , m_pendingAutocompleteEventsQueue(GenericEventQueue::create(this)) | 79 , m_pendingAutocompleteEventsQueue(GenericEventQueue::create(this)) |
| 81 { | 80 { |
| 82 } | 81 } |
| 83 | 82 |
| 84 PassRefPtrWillBeRawPtr<HTMLFormElement> HTMLFormElement::create(Document& docume
nt) | 83 PassRefPtrWillBeRawPtr<HTMLFormElement> HTMLFormElement::create(Document& docume
nt) |
| 85 { | 84 { |
| (...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 325 m_shouldSubmit = false; | 324 m_shouldSubmit = false; |
| 326 | 325 |
| 327 frame->loader().client()->dispatchWillSendSubmitEvent(this); | 326 frame->loader().client()->dispatchWillSendSubmitEvent(this); |
| 328 | 327 |
| 329 if (dispatchEvent(Event::createCancelableBubble(EventTypeNames::submit)) ==
DispatchEventResult::NotCanceled) | 328 if (dispatchEvent(Event::createCancelableBubble(EventTypeNames::submit)) ==
DispatchEventResult::NotCanceled) |
| 330 m_shouldSubmit = true; | 329 m_shouldSubmit = true; |
| 331 | 330 |
| 332 m_isSubmittingOrInUserJSSubmitEvent = false; | 331 m_isSubmittingOrInUserJSSubmitEvent = false; |
| 333 | 332 |
| 334 if (m_shouldSubmit) | 333 if (m_shouldSubmit) |
| 335 submit(event, true, true); | 334 submit(event, true); |
| 336 } | 335 } |
| 337 | 336 |
| 338 void HTMLFormElement::submitFromJavaScript() | 337 void HTMLFormElement::submitFromJavaScript() |
| 339 { | 338 { |
| 340 submit(0, false, UserGestureIndicator::processingUserGesture()); | 339 submit(0, false); |
| 341 } | 340 } |
| 342 | 341 |
| 343 void HTMLFormElement::submitDialog(PassRefPtrWillBeRawPtr<FormSubmission> formSu
bmission) | 342 void HTMLFormElement::submitDialog(PassRefPtrWillBeRawPtr<FormSubmission> formSu
bmission) |
| 344 { | 343 { |
| 345 for (Node* node = this; node; node = node->parentOrShadowHostNode()) { | 344 for (Node* node = this; node; node = node->parentOrShadowHostNode()) { |
| 346 if (isHTMLDialogElement(*node)) { | 345 if (isHTMLDialogElement(*node)) { |
| 347 toHTMLDialogElement(*node).closeDialog(formSubmission->result()); | 346 toHTMLDialogElement(*node).closeDialog(formSubmission->result()); |
| 348 return; | 347 return; |
| 349 } | 348 } |
| 350 } | 349 } |
| 351 } | 350 } |
| 352 | 351 |
| 353 void HTMLFormElement::submit(Event* event, bool activateSubmitButton, bool proce
ssingUserGesture) | 352 void HTMLFormElement::submit(Event* event, bool activateSubmitButton) |
| 354 { | 353 { |
| 355 FrameView* view = document().view(); | 354 FrameView* view = document().view(); |
| 356 LocalFrame* frame = document().frame(); | 355 LocalFrame* frame = document().frame(); |
| 357 if (!view || !frame || !frame->page()) | 356 if (!view || !frame || !frame->page()) |
| 358 return; | 357 return; |
| 359 | 358 |
| 360 if (m_isSubmittingOrInUserJSSubmitEvent) { | 359 if (m_isSubmittingOrInUserJSSubmitEvent) { |
| 361 m_shouldSubmit = true; | 360 m_shouldSubmit = true; |
| 362 return; | 361 return; |
| 363 } | 362 } |
| 364 | 363 |
| 365 m_isSubmittingOrInUserJSSubmitEvent = true; | 364 m_isSubmittingOrInUserJSSubmitEvent = true; |
| 366 m_wasUserSubmitted = processingUserGesture; | |
| 367 | 365 |
| 368 RefPtrWillBeRawPtr<HTMLFormControlElement> firstSuccessfulSubmitButton = nul
lptr; | 366 RefPtrWillBeRawPtr<HTMLFormControlElement> firstSuccessfulSubmitButton = nul
lptr; |
| 369 bool needButtonActivation = activateSubmitButton; // do we need to activate
a submit button? | 367 bool needButtonActivation = activateSubmitButton; // do we need to activate
a submit button? |
| 370 | 368 |
| 371 const FormAssociatedElement::List& elements = associatedElements(); | 369 const FormAssociatedElement::List& elements = associatedElements(); |
| 372 for (unsigned i = 0; i < elements.size(); ++i) { | 370 for (unsigned i = 0; i < elements.size(); ++i) { |
| 373 FormAssociatedElement* associatedElement = elements[i]; | 371 FormAssociatedElement* associatedElement = elements[i]; |
| 374 if (!associatedElement->isFormControlElement()) | 372 if (!associatedElement->isFormControlElement()) |
| 375 continue; | 373 continue; |
| 376 if (needButtonActivation) { | 374 if (needButtonActivation) { |
| (...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 661 String HTMLFormElement::method() const | 659 String HTMLFormElement::method() const |
| 662 { | 660 { |
| 663 return FormSubmission::Attributes::methodString(m_attributes.method()); | 661 return FormSubmission::Attributes::methodString(m_attributes.method()); |
| 664 } | 662 } |
| 665 | 663 |
| 666 void HTMLFormElement::setMethod(const AtomicString& value) | 664 void HTMLFormElement::setMethod(const AtomicString& value) |
| 667 { | 665 { |
| 668 setAttribute(methodAttr, value); | 666 setAttribute(methodAttr, value); |
| 669 } | 667 } |
| 670 | 668 |
| 671 bool HTMLFormElement::wasUserSubmitted() const | |
| 672 { | |
| 673 return m_wasUserSubmitted; | |
| 674 } | |
| 675 | |
| 676 HTMLFormControlElement* HTMLFormElement::findDefaultButton() const | 669 HTMLFormControlElement* HTMLFormElement::findDefaultButton() const |
| 677 { | 670 { |
| 678 for (const auto& element : associatedElements()) { | 671 for (const auto& element : associatedElements()) { |
| 679 if (!element->isFormControlElement()) | 672 if (!element->isFormControlElement()) |
| 680 continue; | 673 continue; |
| 681 HTMLFormControlElement* control = toHTMLFormControlElement(element); | 674 HTMLFormControlElement* control = toHTMLFormControlElement(element); |
| 682 if (control->canBeSuccessfulSubmitButton()) | 675 if (control->canBeSuccessfulSubmitButton()) |
| 683 return control; | 676 return control; |
| 684 } | 677 } |
| 685 return nullptr; | 678 return nullptr; |
| (...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 841 { | 834 { |
| 842 for (const auto& control : associatedElements()) { | 835 for (const auto& control : associatedElements()) { |
| 843 if (!control->isFormControlElement()) | 836 if (!control->isFormControlElement()) |
| 844 continue; | 837 continue; |
| 845 if (toHTMLFormControlElement(control)->canBeSuccessfulSubmitButton()) | 838 if (toHTMLFormControlElement(control)->canBeSuccessfulSubmitButton()) |
| 846 toHTMLFormControlElement(control)->pseudoStateChanged(CSSSelector::P
seudoDefault); | 839 toHTMLFormControlElement(control)->pseudoStateChanged(CSSSelector::P
seudoDefault); |
| 847 } | 840 } |
| 848 } | 841 } |
| 849 | 842 |
| 850 } // namespace blink | 843 } // namespace blink |
| OLD | NEW |