From ce2ac61426c4ca2f52b02cf8b80cd846fb807778 Mon Sep 17 00:00:00 2001 From: Alexander Surkov Date: Fri, 28 Jan 2011 13:15:22 +0800 Subject: [PATCH] Bug 629394, part3 - replace do_QueryObject on AsHyperText, r=fer, a=davidb --- accessible/src/atk/nsMaiInterfaceHypertext.cpp | 6 +++--- accessible/src/atk/nsMaiInterfaceText.cpp | 2 +- accessible/src/base/NotificationController.cpp | 8 ++++++-- accessible/src/base/nsAccUtils.cpp | 5 ++--- accessible/src/base/nsAccUtils.h | 2 +- accessible/src/base/nsAccessible.cpp | 7 +++---- accessible/src/base/nsCaretAccessible.cpp | 6 +++--- accessible/src/base/nsDocAccessible.cpp | 7 +++++-- accessible/src/html/nsHyperTextAccessible.cpp | 3 ++- 9 files changed, 26 insertions(+), 20 deletions(-) diff --git a/accessible/src/atk/nsMaiInterfaceHypertext.cpp b/accessible/src/atk/nsMaiInterfaceHypertext.cpp index 337ebb031a7c..5f5b06cf3d73 100644 --- a/accessible/src/atk/nsMaiInterfaceHypertext.cpp +++ b/accessible/src/atk/nsMaiInterfaceHypertext.cpp @@ -59,7 +59,7 @@ getLinkCB(AtkHypertext *aText, gint aLinkIndex) if (!accWrap) return nsnull; - nsRefPtr hyperText = do_QueryObject(accWrap); + nsHyperTextAccessible* hyperText = accWrap->AsHyperText(); NS_ENSURE_TRUE(hyperText, nsnull); nsAccessible* hyperLink = hyperText->GetLinkAt(aLinkIndex); @@ -82,7 +82,7 @@ getLinkCountCB(AtkHypertext *aText) if (!accWrap) return -1; - nsRefPtr hyperText = do_QueryObject(accWrap); + nsHyperTextAccessible* hyperText = accWrap->AsHyperText(); NS_ENSURE_TRUE(hyperText, -1); return hyperText->GetLinkCount(); @@ -95,7 +95,7 @@ getLinkIndexCB(AtkHypertext *aText, gint aCharIndex) if (!accWrap) return -1; - nsRefPtr hyperText = do_QueryObject(accWrap); + nsHyperTextAccessible* hyperText = accWrap->AsHyperText(); NS_ENSURE_TRUE(hyperText, -1); PRInt32 index = -1; diff --git a/accessible/src/atk/nsMaiInterfaceText.cpp b/accessible/src/atk/nsMaiInterfaceText.cpp index 62a60e9cdc0c..c9d69ccfbd49 100644 --- a/accessible/src/atk/nsMaiInterfaceText.cpp +++ b/accessible/src/atk/nsMaiInterfaceText.cpp @@ -373,7 +373,7 @@ getCharacterCountCB(AtkText *aText) if (!accWrap) return 0; - nsRefPtr textAcc(do_QueryObject(accWrap)); + nsHyperTextAccessible* textAcc = accWrap->AsHyperText(); return textAcc->IsDefunct() ? 0 : static_cast(textAcc->CharacterCount()); } diff --git a/accessible/src/base/NotificationController.cpp b/accessible/src/base/NotificationController.cpp index 1e23c991d683..00d87bfddba3 100644 --- a/accessible/src/base/NotificationController.cpp +++ b/accessible/src/base/NotificationController.cpp @@ -527,9 +527,13 @@ NotificationController::CoalesceTextChangeEventsFor(AccShowEvent* aTailEvent, void NotificationController::CreateTextChangeEventFor(AccMutationEvent* aEvent) { - nsRefPtr textAccessible = do_QueryObject( + nsAccessible* container = GetAccService()->GetContainerAccessible(aEvent->mNode, - aEvent->mAccessible->GetWeakShell())); + aEvent->mAccessible->GetWeakShell()); + if (!container) + return; + + nsHyperTextAccessible* textAccessible = container->AsHyperText(); if (!textAccessible) return; diff --git a/accessible/src/base/nsAccUtils.cpp b/accessible/src/base/nsAccUtils.cpp index 03c223646c5e..f48b1633c8bd 100644 --- a/accessible/src/base/nsAccUtils.cpp +++ b/accessible/src/base/nsAccUtils.cpp @@ -404,7 +404,7 @@ nsAccUtils::IsARIASelected(nsAccessible *aAccessible) nsAccessibilityAtoms::_true, eCaseMatters); } -already_AddRefed +nsHyperTextAccessible* nsAccUtils::GetTextAccessibleFromSelection(nsISelection* aSelection) { // Get accessible from selection's focus DOM point (the DOM point where @@ -432,8 +432,7 @@ nsAccUtils::GetTextAccessibleFromSelection(nsISelection* aSelection) } do { - nsHyperTextAccessible* textAcc = nsnull; - CallQueryInterface(accessible, &textAcc); + nsHyperTextAccessible* textAcc = accessible->AsHyperText(); if (textAcc) return textAcc; diff --git a/accessible/src/base/nsAccUtils.h b/accessible/src/base/nsAccUtils.h index f79028901209..26ae2ef59148 100644 --- a/accessible/src/base/nsAccUtils.h +++ b/accessible/src/base/nsAccUtils.h @@ -225,7 +225,7 @@ public: * @param aSelection [in] the given selection * @return text accessible */ - static already_AddRefed + static nsHyperTextAccessible* GetTextAccessibleFromSelection(nsISelection* aSelection); /** diff --git a/accessible/src/base/nsAccessible.cpp b/accessible/src/base/nsAccessible.cpp index 979eb113d214..14a1d773dd4d 100644 --- a/accessible/src/base/nsAccessible.cpp +++ b/accessible/src/base/nsAccessible.cpp @@ -2954,8 +2954,7 @@ nsAccessible::IsHyperLink() { // Every embedded accessible within hypertext accessible implements // hyperlink interface. - nsRefPtr hyperText = do_QueryObject(GetParent()); - return hyperText && nsAccUtils::IsEmbeddedObject(this); + return mParent && mParent->IsHyperText() && nsAccUtils::IsEmbeddedObject(this); } PRUint32 @@ -2963,7 +2962,7 @@ nsAccessible::StartOffset() { NS_PRECONDITION(IsHyperLink(), "StartOffset is called not on hyper link!"); - nsRefPtr hyperText(do_QueryObject(GetParent())); + nsHyperTextAccessible* hyperText = mParent ? mParent->AsHyperText() : nsnull; return hyperText ? hyperText->GetChildOffset(this) : 0; } @@ -2972,7 +2971,7 @@ nsAccessible::EndOffset() { NS_PRECONDITION(IsHyperLink(), "EndOffset is called on not hyper link!"); - nsRefPtr hyperText(do_QueryObject(GetParent())); + nsHyperTextAccessible* hyperText = mParent ? mParent->AsHyperText() : nsnull; return hyperText ? (hyperText->GetChildOffset(this) + 1) : 0; } diff --git a/accessible/src/base/nsCaretAccessible.cpp b/accessible/src/base/nsCaretAccessible.cpp index 5bedfe2601f6..0410c81bc611 100644 --- a/accessible/src/base/nsCaretAccessible.cpp +++ b/accessible/src/base/nsCaretAccessible.cpp @@ -269,7 +269,7 @@ nsCaretAccessible::NormalSelectionChanged(nsISelection* aSelection) return; // No selection } - nsRefPtr textAcc = + nsHyperTextAccessible* textAcc = nsAccUtils::GetTextAccessibleFromSelection(aSelection); if (!textAcc) return; @@ -287,7 +287,7 @@ nsCaretAccessible::NormalSelectionChanged(nsISelection* aSelection) } mLastCaretOffset = caretOffset; - mLastTextAccessible.swap(textAcc); + mLastTextAccessible = textAcc; nsRefPtr event = new AccCaretMoveEvent(mLastTextAccessible->GetNode()); @@ -304,7 +304,7 @@ nsCaretAccessible::SpellcheckSelectionChanged(nsISelection* aSelection) // misspelled word). If spellchecking is disabled (for example, // @spellcheck="false" on html:body) then we won't fire any event. - nsRefPtr textAcc = + nsHyperTextAccessible* textAcc = nsAccUtils::GetTextAccessibleFromSelection(aSelection); if (!textAcc) return; diff --git a/accessible/src/base/nsDocAccessible.cpp b/accessible/src/base/nsDocAccessible.cpp index 6694710db453..f5467c9459cb 100644 --- a/accessible/src/base/nsDocAccessible.cpp +++ b/accessible/src/base/nsDocAccessible.cpp @@ -1716,8 +1716,11 @@ nsDocAccessible::FireTextChangeEventForText(nsIContent *aContent, if (!accessible) return; - nsRefPtr textAccessible = - do_QueryObject(accessible->GetParent()); + nsAccessible* parent = accessible->GetParent(); + if (!parent) + return; + + nsHyperTextAccessible* textAccessible = parent->AsHyperText(); if (!textAccessible) return; diff --git a/accessible/src/html/nsHyperTextAccessible.cpp b/accessible/src/html/nsHyperTextAccessible.cpp index 8f196ed8ce0f..b1d067b09901 100644 --- a/accessible/src/html/nsHyperTextAccessible.cpp +++ b/accessible/src/html/nsHyperTextAccessible.cpp @@ -78,8 +78,9 @@ static NS_DEFINE_IID(kRangeCID, NS_RANGE_CID); nsHyperTextAccessible:: nsHyperTextAccessible(nsIContent *aNode, nsIWeakReference *aShell) : - nsAccessibleWrap(aNode, aShell), mFlags(eHyperTextAccessible) + nsAccessibleWrap(aNode, aShell) { + mFlags |= eHyperTextAccessible; } NS_IMPL_ADDREF_INHERITED(nsHyperTextAccessible, nsAccessibleWrap)