diff --git a/mozilla/accessible/src/base/nsAccessibilityService.cpp b/mozilla/accessible/src/base/nsAccessibilityService.cpp index d817113fd5b..c99374b2050 100644 --- a/mozilla/accessible/src/base/nsAccessibilityService.cpp +++ b/mozilla/accessible/src/base/nsAccessibilityService.cpp @@ -193,14 +193,7 @@ NS_IMETHODIMP nsAccessibilityService::OnStateChange(nsIWebProgress *aWebProgress nsCOMPtr docAccessible = do_QueryInterface(accessible); NS_ENSURE_TRUE(docAccessible, NS_ERROR_FAILURE); - - nsCOMPtr sameTypeRoot; - docShellTreeItem->GetSameTypeRootTreeItem(getter_AddRefs(sameTypeRoot)); PRBool isFinished = !(aStateFlags & STATE_START); - if (sameTypeRoot != docShellTreeItem) { - // Frame and iframe handling done via DOMContentLoaded in nsRootAccessible::HandleEvent() - return NS_OK; - } docAccessible->FireDocLoadingEvent(isFinished); diff --git a/mozilla/accessible/src/msaa/nsDocAccessibleWrap.cpp b/mozilla/accessible/src/msaa/nsDocAccessibleWrap.cpp index dc2af4b8e96..cf6e8e00163 100644 --- a/mozilla/accessible/src/msaa/nsDocAccessibleWrap.cpp +++ b/mozilla/accessible/src/msaa/nsDocAccessibleWrap.cpp @@ -450,6 +450,16 @@ NS_IMETHODIMP nsDocAccessibleWrap::FireDocLoadingEvent(PRBool aIsFinished) nsDocAccessible::FireDocLoadingEvent(aIsFinished); + nsCOMPtr treeItem = GetDocShellTreeItemFor(mDOMNode); + if (!treeItem) { + return NS_OK; + } + nsCOMPtr sameTypeRoot; + treeItem->GetSameTypeRootTreeItem(getter_AddRefs(sameTypeRoot)); + if (sameTypeRoot != treeItem) { + return NS_OK; // We only fire MSAA doc loading events for root content frame + } + if (aIsFinished) { // Use short timer before firing state change event for finished doc, // because the window is made visible asynchronously by Microsoft Windows