diff options
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.cc | 11 |
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; |