| 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 9676ad9ddce2b7ee4894c6e2e4d40f6a32c96037..8b236d6e79f76916765b029c0c58fa3536aa20f8 100644
|
| --- a/third_party/WebKit/Source/modules/accessibility/AXMenuListOption.cpp
|
| +++ b/third_party/WebKit/Source/modules/accessibility/AXMenuListOption.cpp
|
| @@ -27,6 +27,7 @@
|
|
|
| #include "SkMatrix44.h"
|
| #include "core/dom/AccessibleNode.h"
|
| +#include "core/html/HTMLSelectElement.h"
|
| #include "modules/accessibility/AXMenuListPopup.h"
|
| #include "modules/accessibility/AXObjectCacheImpl.h"
|
|
|
| @@ -63,6 +64,26 @@ Element* AXMenuListOption::ActionElement() const {
|
| return element_;
|
| }
|
|
|
| +AXObject* AXMenuListOption::ComputeParent() const {
|
| + Node* node = GetNode();
|
| + if (!node)
|
| + return nullptr;
|
| + HTMLSelectElement* select = toHTMLOptionElement(node)->OwnerSelectElement();
|
| + if (!select)
|
| + return nullptr;
|
| + AXObject* 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.
|
|
|