diff --git a/accessible/src/base/FocusManager.cpp b/accessible/src/base/FocusManager.cpp index b85cbd39a4b8029fa124a0a6a57091770b9762f2..eed6b9a484da30b537709e34129690469bb1faa4 100644 --- a/accessible/src/base/FocusManager.cpp +++ b/accessible/src/base/FocusManager.cpp @@ -287,11 +287,12 @@ FocusManager::ProcessFocusEvent(AccEvent* aEvent) // if it's still focused and then update active item and emit focus event. nsAccessible* target = aEvent->GetAccessible(); if (target != mActiveItem) { + // Check if still focused. Otherwise we can end up with storing the active // item for control that isn't focused anymore. - nsAccessible* DOMFocus = - GetAccService()->GetAccessibleOrContainer(FocusedDOMNode(), - aEvent->GetDocAccessible()); + nsDocAccessible* document = aEvent->GetDocAccessible(); + nsAccessible* DOMFocus = document->GetAccessibleOrContainer(FocusedDOMNode()); + if (target != DOMFocus) return; diff --git a/accessible/src/base/NotificationController.cpp b/accessible/src/base/NotificationController.cpp index eb3c67e578a958613b861093e64f9ad3e8c80003..5a1db68a8d28882472449cb76ef3d269dfe63e2f 100644 --- a/accessible/src/base/NotificationController.cpp +++ b/accessible/src/base/NotificationController.cpp @@ -669,9 +669,8 @@ NotificationController::CoalesceTextChangeEventsFor(AccShowEvent* aTailEvent, void NotificationController::CreateTextChangeEventFor(AccMutationEvent* aEvent) { - nsAccessible* container = - GetAccService()->GetContainerAccessible(aEvent->mNode, - aEvent->GetDocAccessible()); + nsDocAccessible* document = aEvent->GetDocAccessible(); + nsAccessible* container = document->GetContainerAccessible(aEvent->mNode); if (!container) return; diff --git a/accessible/src/base/nsAccessibilityService.cpp b/accessible/src/base/nsAccessibilityService.cpp index ef2b3667b4e1e9053402d51a2c13762397f097e2..408c9641e49b4e4c3e123aaba3b9fbcbe397f117 100644 --- a/accessible/src/base/nsAccessibilityService.cpp +++ b/accessible/src/base/nsAccessibilityService.cpp @@ -919,17 +919,6 @@ nsAccessibilityService::GetAccessible(nsINode* aNode, nsIPresShell* aPresShell) return document ? document->GetAccessible(aNode) : nsnull; } -nsAccessible* -nsAccessibilityService::GetAccessibleOrContainer(nsINode* aNode, nsDocAccessible* aDoc) -{ - if (!aNode) - return nsnull; - - NS_PRECONDITION(aDoc, "Must pass a document accessible."); - - return aDoc ? aDoc->GetAccessibleOrContainer(aNode) : nsnull; -} - static bool HasRelatedContent(nsIContent *aContent) { nsAutoString id; diff --git a/accessible/src/base/nsAccessibilityService.h b/accessible/src/base/nsAccessibilityService.h index ad2acafb3e91a584489e0cc0dcd18d174444bf36..e3f114caca7b3df5c1a65f8c01d2c67e577a70eb 100644 --- a/accessible/src/base/nsAccessibilityService.h +++ b/accessible/src/base/nsAccessibilityService.h @@ -197,24 +197,6 @@ public: */ nsAccessible* GetAccessible(nsINode* aNode, nsIPresShell* aPresShell); - /** - * Return an accessible for the given DOM node or container accessible if - * the node is not accessible. - * - * @param aNode [in] the given node - * @param aDoc [in] the document accessible. Can't be null. - */ - nsAccessible* GetAccessibleOrContainer(nsINode* aNode, nsDocAccessible* aDoc); - - /** - * Return a container accessible for the given DOM node. - */ - nsAccessible* GetContainerAccessible(nsINode* aNode, nsDocAccessible* aDoc) - { - return aNode ? - GetAccessibleOrContainer(aNode->GetNodeParent(), aDoc) : nsnull; - } - private: // nsAccessibilityService creation is controlled by friend // NS_GetAccessibilityService, keep constructors private. diff --git a/accessible/src/base/nsAccessible.cpp b/accessible/src/base/nsAccessible.cpp index f5c0637630673da7e03f45b16531c85f792ebab4..da8039e7db6e5b84f441cf60cd38ba6fbfba54fb 100644 --- a/accessible/src/base/nsAccessible.cpp +++ b/accessible/src/base/nsAccessible.cpp @@ -852,8 +852,7 @@ nsAccessible::ChildAtPoint(PRInt32 aX, PRInt32 aY, // Get accessible for the node with the point or the first accessible in // the DOM parent chain. - nsAccessible* accessible = - GetAccService()->GetAccessibleOrContainer(content, accDocument); + nsAccessible* accessible = accDocument->GetAccessibleOrContainer(content); if (!accessible) return fallbackAnswer;