зеркало из https://github.com/mozilla/pjs.git
Bug 388930. Fix assertions on Linux accessibility without breaking text change events in form controls. r=surkov, a=dsicore
This commit is contained in:
Родитель
dc3d43d94f
Коммит
86fb10c17b
|
@ -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) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче