Chromium Code Reviews| Index: Source/core/html/HTMLFormElement.cpp |
| diff --git a/Source/core/html/HTMLFormElement.cpp b/Source/core/html/HTMLFormElement.cpp |
| index 00a901e6784b2ca6234ba072fdca896d668f120f..39d2e11ab7566468abc8f0e9aed9993954617075 100644 |
| --- a/Source/core/html/HTMLFormElement.cpp |
| +++ b/Source/core/html/HTMLFormElement.cpp |
| @@ -184,7 +184,7 @@ void HTMLFormElement::submitImplicitly(Event* event, bool fromImplicitSubmission |
| FormAssociatedElement* formAssociatedElement = m_associatedElements[i]; |
| if (!formAssociatedElement->isFormControlElement()) |
| continue; |
| - HTMLFormControlElement* formElement = static_cast<HTMLFormControlElement*>(formAssociatedElement); |
| + Handle<HTMLFormControlElement> formElement(static_cast<HTMLFormControlElement*>(formAssociatedElement)); |
| if (formElement->isSuccessfulSubmitButton()) { |
| if (formElement->renderer()) { |
| formElement->dispatchSimulatedClick(event); |
| @@ -197,13 +197,13 @@ void HTMLFormElement::submitImplicitly(Event* event, bool fromImplicitSubmission |
| prepareForSubmission(event); |
| } |
| -static inline HTMLFormControlElement* submitElementFromEvent(const Event* event) |
| +static inline Result<HTMLFormControlElement> submitElementFromEvent(const Event* event) |
| { |
| for (Node* node = event->target()->toNode(); node; node = node->parentNode()) { |
| if (node->isElementNode() && toElement(node)->isFormControlElement()) |
| - return static_cast<HTMLFormControlElement*>(node); |
| + return Handle<HTMLFormControlElement>(static_cast<HTMLFormControlElement*>(node)); |
| } |
| - return 0; |
| + return nullptr; |
| } |
| bool HTMLFormElement::validateInteractively(Event* event) |
| @@ -212,7 +212,7 @@ bool HTMLFormElement::validateInteractively(Event* event) |
| if (!document()->page() || !document()->page()->settings()->interactiveFormValidationEnabled() || noValidate()) |
| return true; |
| - HTMLFormControlElement* submitElement = submitElementFromEvent(event); |
| + Handle<HTMLFormControlElement> submitElement = submitElementFromEvent(event); |
| if (submitElement && submitElement->formNoValidate()) |
| return true; |
| @@ -311,7 +311,7 @@ void HTMLFormElement::getTextFieldValues(StringPairVector& fieldNamesAndValues) |
| if (!element->hasLocalName(inputTag)) |
| continue; |
| - HTMLInputElement* input = static_cast<HTMLInputElement*>(control); |
| + Handle<HTMLInputElement> input(static_cast<HTMLInputElement*>(control)); |
| if (!input->isTextField()) |
| continue; |
| @@ -334,7 +334,7 @@ void HTMLFormElement::submit(Event* event, bool activateSubmitButton, bool proce |
| m_isSubmittingOrPreparingForSubmission = true; |
| m_wasUserSubmitted = processingUserGesture; |
| - HTMLFormControlElement* firstSuccessfulSubmitButton = 0; |
| + Handle<HTMLFormControlElement> firstSuccessfulSubmitButton; |
| bool needButtonActivation = activateSubmitButton; // do we need to activate a submit button? |
| for (unsigned i = 0; i < m_associatedElements.size(); ++i) { |
| @@ -342,7 +342,7 @@ void HTMLFormElement::submit(Event* event, bool activateSubmitButton, bool proce |
| if (!associatedElement->isFormControlElement()) |
| continue; |
| if (needButtonActivation) { |
| - HTMLFormControlElement* control = static_cast<HTMLFormControlElement*>(associatedElement); |
| + Handle<HTMLFormControlElement> control(static_cast<HTMLFormControlElement*>(associatedElement)); |
| if (control->isActivatedSubmit()) |
| needButtonActivation = false; |
| else if (firstSuccessfulSubmitButton == 0 && control->isSuccessfulSubmitButton()) |
| @@ -619,17 +619,17 @@ bool HTMLFormElement::wasUserSubmitted() const |
| return m_wasUserSubmitted; |
| } |
| -HTMLFormControlElement* HTMLFormElement::defaultButton() const |
| +Result<HTMLFormControlElement> HTMLFormElement::defaultButton() const |
| { |
| for (unsigned i = 0; i < m_associatedElements.size(); ++i) { |
| if (!m_associatedElements[i]->isFormControlElement()) |
| continue; |
| - HTMLFormControlElement* control = static_cast<HTMLFormControlElement*>(m_associatedElements[i]); |
| + Handle<HTMLFormControlElement> control(static_cast<HTMLFormControlElement*>(m_associatedElements[i])); |
| if (control->isSuccessfulSubmitButton()) |
| return control; |
| } |
| - return 0; |
| + return nullptr; |
| } |
| bool HTMLFormElement::checkValidity() |
| @@ -650,7 +650,7 @@ bool HTMLFormElement::checkInvalidControlsAndCollectUnhandled(Vector<RefPtr<Form |
| bool hasInvalidControls = false; |
| for (unsigned i = 0; i < elements.size(); ++i) { |
| if (elements[i]->form() == this && elements[i]->isFormControlElement()) { |
| - HTMLFormControlElement* control = static_cast<HTMLFormControlElement*>(elements[i].get()); |
| + Handle<HTMLFormControlElement> control(static_cast<HTMLFormControlElement*>(elements[i].get())); |
| if (!control->checkValidity(&unhandledInvalidControls) && control->form() == this) |
| hasInvalidControls = true; |
| } |
| @@ -658,14 +658,14 @@ bool HTMLFormElement::checkInvalidControlsAndCollectUnhandled(Vector<RefPtr<Form |
| return hasInvalidControls; |
| } |
| -HTMLFormControlElement* HTMLFormElement::elementForAlias(const AtomicString& alias) |
| +Result<HTMLFormControlElement> HTMLFormElement::elementForAlias(const AtomicString& alias) |
| { |
| if (alias.isEmpty() || !m_elementAliases) |
| - return 0; |
| - return m_elementAliases->get(alias.impl()).get(); |
| + return nullptr; |
| + return m_elementAliases->get(alias.impl()); |
| } |
| -void HTMLFormElement::addElementAlias(HTMLFormControlElement* element, const AtomicString& alias) |
| +void HTMLFormElement::addElementAlias(Handle<HTMLFormControlElement> element, const AtomicString& alias) |
| { |
| if (alias.isEmpty()) |
| return; |
| @@ -678,16 +678,16 @@ void HTMLFormElement::getNamedElements(const AtomicString& name, Vector<RefPtr<N |
| { |
| elements()->namedItems(name, namedItems); |
| - HTMLFormControlElement* aliasElement = elementForAlias(name); |
| + Handle<HTMLFormControlElement> aliasElement = elementForAlias(name); |
| if (aliasElement) { |
| - if (namedItems.find(aliasElement) == notFound) { |
| + if (namedItems.find(aliasElement.passRefPtr()) == notFound) { |
|
Vyacheslav Egorov (Google)
2013/07/18 16:50:08
Any specific reason why you decided to use passRef
haraken
2013/07/19 02:57:09
Done.
|
| // We have seen it before but it is gone now. Still, we need to return it. |
| // FIXME: The above comment is not clear enough; it does not say why we need to do this. |
| - namedItems.append(aliasElement); |
| + namedItems.append(aliasElement.passRefPtr()); |
| } |
| } |
| - if (namedItems.size() && namedItems.first() != aliasElement) |
| - addElementAlias(static_cast<HTMLFormControlElement*>(namedItems.first().get()), name); |
| + if (namedItems.size() && namedItems.first().get() != aliasElement.raw()) |
| + addElementAlias(Handle<HTMLFormControlElement>(static_cast<HTMLFormControlElement*>(namedItems.first().get())), name); |
| } |
| bool HTMLFormElement::shouldAutocomplete() const |