Chromium Code Reviews| Index: Source/core/editing/FrameSelection.cpp |
| diff --git a/Source/core/editing/FrameSelection.cpp b/Source/core/editing/FrameSelection.cpp |
| index b07ac8dfa6e8f6baa4301ff12080ed53062e585d..7730282dbe71f63804be4080c1faa5022c2d6f16 100644 |
| --- a/Source/core/editing/FrameSelection.cpp |
| +++ b/Source/core/editing/FrameSelection.cpp |
| @@ -1739,8 +1739,11 @@ static HTMLFormElement* scanForForm(Node* start) |
| for (; element; element = ElementTraversal::next(*element)) { |
| if (element->hasTagName(formTag)) |
| return toHTMLFormElement(element); |
| - if (element->isHTMLElement() && toHTMLElement(element)->isFormControlElement()) |
| - return toHTMLFormControlElement(element)->form(); |
| + if (element->isHTMLElement()) { |
| + HTMLFormElement* owner = toHTMLElement(element)->formOwner(); |
|
arv (Not doing code reviews)
2013/12/10 20:37:20
You could do:
if (HTMLFormElement* owner = toHTML
|
| + if (owner) |
| + return owner; |
| + } |
| if (element->hasTagName(frameTag) || element->hasTagName(iframeTag)) { |
| Node* childDocument = toHTMLFrameElementBase(element)->contentDocument(); |
| if (HTMLFormElement* frameResult = scanForForm(childDocument)) |
| @@ -1763,8 +1766,11 @@ HTMLFormElement* FrameSelection::currentForm() const |
| for (node = start; node; node = node->parentNode()) { |
| if (node->hasTagName(formTag)) |
| return toHTMLFormElement(node); |
| - if (node->isHTMLElement() && toHTMLElement(node)->isFormControlElement()) |
| - return toHTMLFormControlElement(node)->form(); |
| + if (node->isHTMLElement()) { |
| + HTMLFormElement* owner = toHTMLElement(node)->formOwner(); |
| + if (owner) |
| + return owner; |
| + } |
| } |
| // Try walking forward in the node tree to find a form element. |