Index: third_party/WebKit/Source/modules/accessibility/AXMenuListOption.cpp |
diff --git a/third_party/WebKit/Source/modules/accessibility/AXMenuListOption.cpp b/third_party/WebKit/Source/modules/accessibility/AXMenuListOption.cpp |
index a4353de322f57ae95c800afa59aca59869ecfffd..af8b879f8aa95cb684c00df08472d6ac07eb7339 100644 |
--- a/third_party/WebKit/Source/modules/accessibility/AXMenuListOption.cpp |
+++ b/third_party/WebKit/Source/modules/accessibility/AXMenuListOption.cpp |
@@ -64,6 +64,26 @@ Element* AXMenuListOption::ActionElement() const { |
return element_; |
} |
+AXObjectImpl* AXMenuListOption::ComputeParent() const { |
+ Node* node = GetNode(); |
+ if (!node) |
+ return nullptr; |
+ HTMLSelectElement* select = toHTMLOptionElement(node)->OwnerSelectElement(); |
+ if (!select) |
+ return nullptr; |
+ AXObjectImpl* select_ax_object = AxObjectCache().GetOrCreate(select); |
+ if (select_ax_object->HasChildren()) { |
+ const auto& child_objects = select_ax_object->Children(); |
+ DCHECK(!child_objects.IsEmpty()); |
+ DCHECK_EQ(child_objects.size(), 1UL); |
+ DCHECK(child_objects[0]->IsMenuListPopup()); |
+ ToAXMenuListPopup(child_objects[0].Get())->UpdateChildrenIfNecessary(); |
+ } else { |
+ select_ax_object->UpdateChildrenIfNecessary(); |
+ } |
+ return parent_.Get(); |
+} |
+ |
bool AXMenuListOption::IsEnabled() const { |
// isDisabledFormControl() returns true if the parent <select> element is |
// disabled, which we don't want. |