Closed Bug 1471999 Opened 2 years ago Closed 6 months ago

Assertion failure: false (MOZ_ASSERT_UNREACHABLE: Text leaf parent is not hypertext!), at src/accessible/base/TextUpdater.cpp:49

Categories

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

defect

Tracking

()

RESOLVED DUPLICATE of bug 822988
Tracking Status
firefox-esr68 --- wontfix
firefox63 --- wontfix
firefox68 --- wontfix
firefox69 --- wontfix
firefox70 --- wontfix
firefox71 --- fixed

People

(Reporter: tsmith, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: assertion, testcase)

Attachments

(1 file, 1 obsolete file)

Attached file testcase.html (obsolete) —
Reduced with m-c:
BuildID=20180628100518
SourceStamp=b429b9fb68f1a954c4a9f8dba8e845cf7f569a56

Assertion failure: false (MOZ_ASSERT_UNREACHABLE: Text leaf parent is not hypertext!), at src/accessible/base/TextUpdater.cpp:49

#0 mozilla::a11y::TextUpdater::DoUpdate(nsTSubstring<char16_t> const&, nsTSubstring<char16_t> const&, unsigned int) src/accessible/base/TextUpdater.cpp:54:44
#1 mozilla::a11y::TextUpdater::Run(mozilla::a11y::DocAccessible*, mozilla::a11y::TextLeafAccessible*, nsTSubstring<char16_t> const&) src/accessible/base/TextUpdater.cpp:35:13
#2 mozilla::a11y::NotificationController::WillRefresh(mozilla::TimeStamp) src/accessible/base/NotificationController.cpp:738:7
#3 nsRefreshDriver::Tick(long, mozilla::TimeStamp) src/layout/base/nsRefreshDriver.cpp:1868:12
#4 mozilla::RefreshDriverTimer::TickRefreshDrivers(long, mozilla::TimeStamp, nsTArray<RefPtr<nsRefreshDriver> >&) src/layout/base/nsRefreshDriver.cpp:301:7
#5 mozilla::RefreshDriverTimer::Tick(long, mozilla::TimeStamp) src/layout/base/nsRefreshDriver.cpp:320:5
#6 mozilla::VsyncRefreshDriverTimer::RunRefreshDrivers(mozilla::TimeStamp) src/layout/base/nsRefreshDriver.cpp:760:5
#7 mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::TickRefreshDriver(mozilla::TimeStamp) src/layout/base/nsRefreshDriver.cpp:673:35
#8 mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::NotifyVsync(mozilla::TimeStamp) src/layout/base/nsRefreshDriver.cpp:574:9
#9 mozilla::layout::VsyncChild::RecvNotify(mozilla::TimeStamp const&) src/layout/ipc/VsyncChild.cpp:68:16
#10 mozilla::layout::PVsyncChild::OnMessageReceived(IPC::Message const&) src/obj-firefox/ipc/ipdl/PVsyncChild.cpp:167:20
#11 mozilla::ipc::PBackgroundChild::OnMessageReceived(IPC::Message const&) src/obj-firefox/ipc/ipdl/PBackgroundChild.cpp:1988:28
#12 mozilla::ipc::MessageChannel::DispatchAsyncMessage(IPC::Message const&) src/ipc/glue/MessageChannel.cpp:2134:25
#13 mozilla::ipc::MessageChannel::DispatchMessage(IPC::Message&&) src/ipc/glue/MessageChannel.cpp:2064:17
#14 mozilla::ipc::MessageChannel::RunMessage(mozilla::ipc::MessageChannel::MessageTask&) src/ipc/glue/MessageChannel.cpp:1910:5
#15 mozilla::ipc::MessageChannel::MessageTask::Run() src/ipc/glue/MessageChannel.cpp:1943:15
#16 nsThread::ProcessNextEvent(bool, bool*) src/xpcom/threads/nsThread.cpp:1051:14
#17 NS_ProcessNextEvent(nsIThread*, bool) src/xpcom/threads/nsThreadUtils.cpp:519:10
#18 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) src/ipc/glue/MessagePump.cpp:125:5
#19 MessageLoop::RunInternal() src/ipc/chromium/src/base/message_loop.cc:325:10
#20 MessageLoop::Run() src/ipc/chromium/src/base/message_loop.cc:298:3
#21 nsBaseAppShell::Run() src/widget/nsBaseAppShell.cpp:158:27
#22 XRE_RunAppShell() src/toolkit/xre/nsEmbedFunctions.cpp:896:22
#23 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) src/ipc/glue/MessagePump.cpp:269:9
#24 MessageLoop::RunInternal() src/ipc/chromium/src/base/message_loop.cc:325:10
#25 MessageLoop::Run() src/ipc/chromium/src/base/message_loop.cc:298:3
#26 XRE_InitChildProcess(int, char**, XREChildData const*) src/toolkit/xre/nsEmbedFunctions.cpp:722:34
#27 content_process_main(mozilla::Bootstrap*, int, char**) src/browser/app/../../ipc/contentproc/plugin-container.cpp:50:30
#28 main src/browser/app/nsBrowserApp.cpp:287:18
#29 __libc_start_main /build/glibc-Cl5G7W/glibc-2.23/csu/../csu/libc-start.c:291
#30 _start (firefox+0x4236e4)
Flags: in-testsuite?
Attached file testcase.html

Update test case

Attachment #8988590 - Attachment is obsolete: true

This is another long standing issue that is frequently hit by fuzzers.

Jamie, would a Pernosco session help get this issue resolved? If so let me know and I will create one.

Flags: needinfo?(jteh)

If Eitan were around (he's on leave for three months), I'd say a Pernosco session would definitely help. I have no experience with using Pernosco myself (I'm not even sure if it's accessible to screen reader users), so it's probably not worth your time to create one right now. I appreciate the offer, though, and I may take you up on it at some stage.

Flags: needinfo?(jteh)
Priority: -- → P1

I looked into this briefly. It seems we don't create a HyperTextAccessible for the SVG text element, so we end up adding the text leaf nodes as children of the svg (diagram) Accessible. That isn't HyperTextAccessible, hence the assertion. We should create a HyperTextAccessible for the SVG text element (bug 822988).

Depends on: 822988

Morgan, would you mind verifying (with the test case attached here) that we no longer hit this assertion with your fix for bug 822988? If not, we can close this. Thanks.

Flags: needinfo?(mreschenberg)

Verified! It doesn't trigger this assert anymore :)

Flags: needinfo?(mreschenberg)

Thanks!

Status: NEW → RESOLVED
Closed: 6 months ago
Resolution: --- → DUPLICATE
Duplicate of bug: 822988
You need to log in before you can comment on or make changes to this bug.