Bug 393040 - nsIAccessible::name fails on menupopup, r=aaronlev, sr=neil, a=dsicore

This commit is contained in:
surkov.alexander%gmail.com 2007-08-22 08:05:33 +00:00
Родитель 0dbf54ac88
Коммит a408f4ca23
1 изменённых файлов: 11 добавлений и 13 удалений

Просмотреть файл

@ -657,23 +657,21 @@ void nsXULMenupopupAccessible::GenerateMenu(nsIDOMNode *aNode)
}
}
NS_IMETHODIMP nsXULMenupopupAccessible::GetName(nsAString& _retval)
NS_IMETHODIMP
nsXULMenupopupAccessible::GetName(nsAString& aName)
{
nsCOMPtr<nsIDOMElement> element(do_QueryInterface(mDOMNode));
NS_ASSERTION(element, "No element for popup node!");
aName.Truncate();
while (element) {
element->GetAttribute(NS_LITERAL_STRING("label"), _retval);
if (!_retval.IsEmpty())
return NS_OK;
nsCOMPtr<nsIDOMNode> parentNode, node(do_QueryInterface(element));
if (!node)
return NS_ERROR_FAILURE;
node->GetParentNode(getter_AddRefs(parentNode));
element = do_QueryInterface(parentNode);
if (!mDOMNode)
return NS_ERROR_FAILURE;
nsCOMPtr<nsIContent> content(do_QueryInterface(mDOMNode));
while (content && aName.IsEmpty()) {
content->GetAttr(kNameSpaceID_None, nsAccessibilityAtoms::label, aName);
content = content->GetParent();
}
return NS_ERROR_FAILURE;
return NS_OK;
}
NS_IMETHODIMP nsXULMenupopupAccessible::GetRole(PRUint32 *aRole)