Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(723)

Unified Diff: Source/core/html/HTMLFormElement.cpp

Issue 19510005: [oilpan] Completely move HTMLFormControlElement's hierarchy to the managed heap Base URL: svn://svn.chromium.org/blink/branches/oilpan
Patch Set: Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/html/HTMLFormElement.h ('k') | Source/core/html/HTMLInputElement.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « Source/core/html/HTMLFormElement.h ('k') | Source/core/html/HTMLInputElement.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698