Closed Bug 1709987 Opened 3 years ago Closed 3 years ago

Assertion when shutting down ApplicationAccessible

Categories

(Core :: Disability Access APIs, defect, P1)

Desktop
Windows
defect

Tracking

()

RESOLVED FIXED
90 Branch
Tracking Status
firefox-esr78 --- unaffected
firefox88 --- unaffected
firefox89 --- unaffected
firefox90 --- fixed

People

(Reporter: Jamie, Assigned: Jamie)

References

(Regression)

Details

(Keywords: regression)

Attachments

(1 file)

After bug 1694865, I get this debug assertion when I exit Firefox with NVDA running:

Assertion failure: !mAcc (MsaaShutdown wasn't called!), at c:/Users/jamie/src/gecko2/accessible/windows/msaa/MsaaAccessible.cpp:76
#01: mozilla::a11y::MsaaAccessible::~MsaaAccessible (c:\Users\jamie\src\gecko2\accessible\windows\msaa\MsaaAccessible.cpp:76)
#02: mozilla::a11y::ia2AccessibleApplication::`vector deleting destructor'[C:\Users\jamie\src\gecko2\obj\dist\bin\xul.dll +0x5bb33a1]
#03: mozilla::a11y::ia2AccessibleApplication::Release[C:\Users\jamie\src\gecko2\obj\dist\bin\xul.dll +0x5bb334d]
#04: mozilla::a11y::ApplicationAccessibleWrap::~ApplicationAccessibleWrap (c:\Users\jamie\src\gecko2\accessible\windows\msaa\ApplicationAccessibleWrap.h:17)
#05: SnowWhiteKiller::MaybeKillObject (c:\Users\jamie\src\gecko2\xpcom\base\nsCycleCollector.cpp:2428)
#06: SnowWhiteKiller::~SnowWhiteKiller (c:\Users\jamie\src\gecko2\xpcom\base\nsCycleCollector.cpp:2411)
#07: nsCycleCollector::FreeSnowWhite (c:\Users\jamie\src\gecko2\xpcom\base\nsCycleCollector.cpp:2600)
#08: nsCycleCollector::Shutdown (c:\Users\jamie\src\gecko2\xpcom\base\nsCycleCollector.cpp:3643)
#09: nsCycleCollector_shutdown (c:\Users\jamie\src\gecko2\xpcom\base\nsCycleCollector.cpp:3960)
#10: mozilla::ShutdownXPCOM (c:\Users\jamie\src\gecko2\xpcom\build\XPCOMInit.cpp:711)
#11: ScopedXPCOMStartup::~ScopedXPCOMStartup (c:\Users\jamie\src\gecko2\toolkit\xre\nsAppRunner.cpp:1675)
#12: XREMain::XRE_main (c:\Users\jamie\src\gecko2\toolkit\xre\nsAppRunner.cpp:5582)

The reason is that ApplicationAccessible::Shutdown doesn't call AccessibleWrap::Shutdown, which means MsaaShutdown is never called.

For the record, I think the reason this doesn't show up in tests is that it can only happen if a MsaaAccessible was created for the ApplicationAccessible. If a client doesn't make a Windows COM call to fetch the ApplicationAccessible (our tests can't and don't), there won't be an MsaaAccessible for it, and thus the assertion will never be reached.

Set release status flags based on info from the regressing bug 1694865

Pushed by jteh@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/007b34eee7c9
Call MsaaShutdown() when shutting down the ApplicationAccessible. r=morgan
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 90 Branch
Has Regression Range: --- → yes
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: