diff options
Diffstat (limited to 'WebKitTools/DumpRenderTree/win/AccessibilityUIElementWin.cpp')
-rw-r--r-- | WebKitTools/DumpRenderTree/win/AccessibilityUIElementWin.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/WebKitTools/DumpRenderTree/win/AccessibilityUIElementWin.cpp b/WebKitTools/DumpRenderTree/win/AccessibilityUIElementWin.cpp index 96937fd..5b771b2 100644 --- a/WebKitTools/DumpRenderTree/win/AccessibilityUIElementWin.cpp +++ b/WebKitTools/DumpRenderTree/win/AccessibilityUIElementWin.cpp @@ -35,6 +35,16 @@ using std::wstring; +static COMPtr<IAccessibleComparable> comparableObject(IAccessible* accessible) +{ + COMPtr<IServiceProvider> serviceProvider(Query, accessible); + if (!serviceProvider) + return 0; + COMPtr<IAccessibleComparable> comparable; + serviceProvider->QueryService(SID_AccessibleComparable, __uuidof(IAccessibleComparable), reinterpret_cast<void**>(&comparable)); + return comparable; +} + AccessibilityUIElement::AccessibilityUIElement(PlatformUIElement element) : m_element(element) { @@ -49,6 +59,18 @@ AccessibilityUIElement::~AccessibilityUIElement() { } +bool AccessibilityUIElement::isEqual(AccessibilityUIElement* otherElement) +{ + COMPtr<IAccessibleComparable> comparable = comparableObject(m_element.get()); + COMPtr<IAccessibleComparable> otherComparable = comparableObject(otherElement->m_element.get()); + if (!comparable || !otherComparable) + return false; + BOOL isSame = FALSE; + if (FAILED(comparable->isSameObject(otherComparable.get(), &isSame))) + return false; + return isSame; +} + void AccessibilityUIElement::getLinkedUIElements(Vector<AccessibilityUIElement>&) { } |