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) { |
// 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 |