diff --git a/accessible/base/DocManager.cpp b/accessible/base/DocManager.cpp index 477ef45ca008..874e030a4f67 100644 --- a/accessible/base/DocManager.cpp +++ b/accessible/base/DocManager.cpp @@ -554,6 +554,7 @@ void DocManager::ClearDocCache() { } void DocManager::RemoteDocAdded(DocAccessibleParent* aDoc) { + MOZ_ASSERT(aDoc->IsTopLevel()); if (!sRemoteDocuments) { sRemoteDocuments = new nsTArray; ClearOnShutdown(&sRemoteDocuments); @@ -563,6 +564,12 @@ void DocManager::RemoteDocAdded(DocAccessibleParent* aDoc) { "How did we already have the doc!"); sRemoteDocuments->AppendElement(aDoc); ProxyCreated(aDoc); + // Fire a reorder event on the OuterDocAccessible. + if (LocalAccessible* outerDoc = aDoc->OuterDocOfRemoteBrowser()) { + MOZ_ASSERT(outerDoc->Document()); + RefPtr reorder = new AccReorderEvent(outerDoc); + outerDoc->Document()->FireDelayedEvent(reorder); + } } DocAccessible* mozilla::a11y::GetExistingDocAccessible( diff --git a/accessible/tests/browser/events/browser.toml b/accessible/tests/browser/events/browser.toml index e9806dc477a4..098af8ebfe8f 100644 --- a/accessible/tests/browser/events/browser.toml +++ b/accessible/tests/browser/events/browser.toml @@ -19,7 +19,6 @@ support-files = [ ["browser_test_caret_move_granularity.js"] ["browser_test_docload.js"] -skip-if = ["true"] ["browser_test_focus_browserui.js"] diff --git a/accessible/tests/browser/events/browser_test_docload.js b/accessible/tests/browser/events/browser_test_docload.js index 12076b3002d7..314b5177630d 100644 --- a/accessible/tests/browser/events/browser_test_docload.js +++ b/accessible/tests/browser/events/browser_test_docload.js @@ -31,17 +31,13 @@ function urlChecker(url) { } async function runTests(browser) { - let onLoadEvents = waitForEvents({ - expected: [ - [EVENT_REORDER, getAccessible(browser)], - [EVENT_DOCUMENT_LOAD_COMPLETE, "body2"], - [EVENT_STATE_CHANGE, busyChecker(false)], - ], - unexpected: [ - [EVENT_DOCUMENT_LOAD_COMPLETE, inIframeChecker("iframe1")], - [EVENT_STATE_CHANGE, inIframeChecker("iframe1")], - ], - }); + let onLoadEvents = waitForEvents([ + [EVENT_REORDER, getAccessible(browser)], + [EVENT_DOCUMENT_LOAD_COMPLETE, "body2"], + [EVENT_STATE_CHANGE, busyChecker(false)], + [EVENT_DOCUMENT_LOAD_COMPLETE, inIframeChecker("iframe1")], + [EVENT_STATE_CHANGE, inIframeChecker("iframe1")], + ]); BrowserTestUtils.startLoadingURIString( browser, @@ -123,6 +119,6 @@ async function runTests(browser) { } /** - * Test caching of accessible object states + * Test events when a document loads. */ addAccessibleTask("", runTests);