Bug 388930. Fix assertions on Linux accessibility without breaking text change events in form controls. r=surkov, a=dsicore

This commit is contained in:
aaronleventhal%moonset.net 2007-08-17 18:25:13 +00:00
Родитель dc3d43d94f
Коммит 86fb10c17b
2 изменённых файлов: 9 добавлений и 15 удалений

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

@ -1222,9 +1222,7 @@ nsDocAccessible::FireTextChangedEventOnDOMCharacterDataModified(nsIContent *aCon
nsCOMPtr<nsIAccessible> accessible;
nsresult rv = GetAccessibleInParentChain(node, getter_AddRefs(accessible));
nsCOMPtr<nsIAccessibleHyperText> hyperTextIface =
do_QueryInterface(accessible);
if (NS_FAILED(rv) || !hyperTextIface)
if (NS_FAILED(rv) || !accessible)
return;
nsRefPtr<nsHyperTextAccessible> textAccessible;
@ -1273,9 +1271,7 @@ nsDocAccessible::FireTextChangedEventOnDOMNodeInserted(nsIContent *aChild,
nsCOMPtr<nsIAccessible> accessible;
nsresult rv = GetAccessibleInParentChain(node, getter_AddRefs(accessible));
nsCOMPtr<nsIAccessibleHyperText> hyperTextIface =
do_QueryInterface(accessible);
if (NS_FAILED(rv) || !hyperTextIface)
if (NS_FAILED(rv) || !accessible)
return;
nsRefPtr<nsHyperTextAccessible> textAccessible;
@ -1333,9 +1329,7 @@ nsDocAccessible::FireTextChangedEventOnDOMNodeRemoved(nsIContent *aChild,
nsCOMPtr<nsIAccessible> accessible;
nsresult rv = GetAccessibleInParentChain(node, getter_AddRefs(accessible));
nsCOMPtr<nsIAccessibleHyperText> hyperTextIface =
do_QueryInterface(accessible);
if (NS_FAILED(rv) || !hyperTextIface)
if (NS_FAILED(rv) || !accessible)
return;
nsRefPtr<nsHyperTextAccessible> textAccessible;

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

@ -75,12 +75,6 @@ nsresult nsHyperTextAccessible::QueryInterface(REFNSIID aIID, void** aInstancePt
{
*aInstancePtr = nsnull;
if (aIID.Equals(NS_GET_IID(nsHyperTextAccessible))) {
*aInstancePtr = static_cast<nsHyperTextAccessible*>(this);
NS_ADDREF_THIS();
return NS_OK;
}
nsCOMPtr<nsIDOMXULDocument> xulDoc(do_QueryInterface(mDOMNode));
if (mDOMNode && !xulDoc) {
// We need XUL doc check for now because for now nsDocAccessible must
@ -89,6 +83,12 @@ nsresult nsHyperTextAccessible::QueryInterface(REFNSIID aIID, void** aInstancePt
// However at some point we may push <body> to implement the interfaces and
// return nsDocAccessible to inherit from nsAccessibleWrap.
if (aIID.Equals(NS_GET_IID(nsHyperTextAccessible))) {
*aInstancePtr = static_cast<nsHyperTextAccessible*>(this);
NS_ADDREF_THIS();
return NS_OK;
}
PRUint32 role = Role(this);
if (aIID.Equals(NS_GET_IID(nsIAccessibleText))) {
if (role == nsIAccessibleRole::ROLE_TEXT_LEAF) {