summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/page/focus_controller.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/core/page/focus_controller.cc')
-rw-r--r--chromium/third_party/blink/renderer/core/page/focus_controller.cc11
1 files changed, 5 insertions, 6 deletions
diff --git a/chromium/third_party/blink/renderer/core/page/focus_controller.cc b/chromium/third_party/blink/renderer/core/page/focus_controller.cc
index 4a0e1016160..aa350fb7a01 100644
--- a/chromium/third_party/blink/renderer/core/page/focus_controller.cc
+++ b/chromium/third_party/blink/renderer/core/page/focus_controller.cc
@@ -1134,15 +1134,15 @@ Element* FocusController::NextFocusableElementInForm(Element* element,
if (!html_element)
return nullptr;
- if (!element->IsFormControlElement() &&
- !html_element->isContentEditableForBinding())
+ auto* form_control_element = DynamicTo<HTMLFormControlElement>(element);
+ if (!form_control_element && !html_element->isContentEditableForBinding())
return nullptr;
HTMLFormElement* form_owner = nullptr;
if (html_element->isContentEditableForBinding())
form_owner = Traversal<HTMLFormElement>::FirstAncestor(*element);
else
- form_owner = ToHTMLFormControlElement(element)->formOwner();
+ form_owner = form_control_element->formOwner();
if (!form_owner)
return nullptr;
@@ -1160,10 +1160,9 @@ Element* FocusController::NextFocusableElementInForm(Element* element,
if (next_html_element->isContentEditableForBinding() &&
next_element->IsDescendantOf(form_owner))
return next_element;
- if (!next_element->IsFormControlElement())
+ auto* form_element = DynamicTo<HTMLFormControlElement>(next_element);
+ if (!form_element)
continue;
- HTMLFormControlElement* form_element =
- ToHTMLFormControlElement(next_element);
if (form_element->formOwner() != form_owner ||
form_element->IsDisabledOrReadOnly())
continue;