Open Bug 1419847 Opened 2 years ago Updated 11 months ago

Assertion failure: aTextRun->GetFlags2() & nsTextFrameUtils::Flags::TEXT_IS_TRANSFORMED [@ TransformChars]

Categories

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

59 Branch
defect

Tracking

()

Tracking Status
firefox-esr60 --- affected
firefox59 --- wontfix
firefox66 --- wontfix
firefox67 --- affected
firefox68 --- affected

People

(Reporter: tsmith, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: assertion, testcase)

Attachments

(1 file, 1 obsolete file)

Attached file testcase.html (obsolete) —
Assertion failure: aTextRun->GetFlags2() & nsTextFrameUtils::Flags::TEXT_IS_TRANSFORMED, at /src/layout/generic/nsTextFrame.cpp:9942

#0 TransformChars(nsTextFrame*, nsStyleText const*, gfxTextRun const*, unsigned int, nsTextFragment const*, int, int, nsTSubstring<char16_t>&) /src/layout/generic/nsTextFrame.cpp:9942:5
#1 nsTextFrame::GetRenderedText(unsigned int, unsigned int, nsIFrame::TextOffsetType, nsIFrame::TrailingWhitespace) /src/layout/generic/nsTextFrame.cpp:10119:9
#2 mozilla::a11y::NotificationController::WillRefresh(mozilla::TimeStamp) /src/accessible/base/NotificationController.cpp:670:46
#3 nsRefreshDriver::Tick(long, mozilla::TimeStamp) /src/layout/base/nsRefreshDriver.cpp:1843:12
#4 nsRefreshDriver::FinishedWaitingForTransaction() /src/layout/base/nsRefreshDriver.cpp:2135:5
#5 mozilla::layers::ClientLayerManager::DidComposite(unsigned long, mozilla::TimeStamp const&, mozilla::TimeStamp const&) /src/gfx/layers/client/ClientLayerManager.cpp:520:32
#6 mozilla::dom::TabChild::DidComposite(unsigned long, mozilla::TimeStamp const&, mozilla::TimeStamp const&) /src/dom/ipc/TabChild.cpp:3231:7
#7 mozilla::layers::CompositorBridgeChild::RecvDidComposite(unsigned long const&, unsigned long const&, mozilla::TimeStamp const&, mozilla::TimeStamp const&) /src/gfx/layers/ipc/CompositorBridgeChild.cpp:546:14
#8 mozilla::layers::PCompositorBridgeChild::OnMessageReceived(IPC::Message const&) /src/obj-firefox/ipc/ipdl/PCompositorBridgeChild.cpp:1441:20
#9 mozilla::ipc::MessageChannel::DispatchAsyncMessage(IPC::Message const&) /src/ipc/glue/MessageChannel.cpp:2114:25
#10 mozilla::ipc::MessageChannel::DispatchMessage(IPC::Message&&) /src/ipc/glue/MessageChannel.cpp:2044:17
#11 mozilla::ipc::MessageChannel::RunMessage(mozilla::ipc::MessageChannel::MessageTask&) /src/ipc/glue/MessageChannel.cpp:1890:5
#12 mozilla::ipc::MessageChannel::MessageTask::Run() /src/ipc/glue/MessageChannel.cpp:1923:15
#13 mozilla::SchedulerGroup::Runnable::Run() /src/xpcom/threads/SchedulerGroup.cpp:396:25
#14 nsThread::ProcessNextEvent(bool, bool*) /src/xpcom/threads/nsThread.cpp:1037:14
#15 NS_ProcessNextEvent(nsIThread*, bool) /src/xpcom/threads/nsThreadUtils.cpp:513:10
#16 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /src/ipc/glue/MessagePump.cpp:97:21
#17 MessageLoop::RunInternal() /src/ipc/chromium/src/base/message_loop.cc:326:10
#18 MessageLoop::Run() /src/ipc/chromium/src/base/message_loop.cc:299:3
#19 nsBaseAppShell::Run() /src/widget/nsBaseAppShell.cpp:159:27
#20 XRE_RunAppShell() /src/toolkit/xre/nsEmbedFunctions.cpp:877:22
#21 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) /src/ipc/glue/MessagePump.cpp:269:9
#22 MessageLoop::RunInternal() /src/ipc/chromium/src/base/message_loop.cc:326:10
#23 MessageLoop::Run() /src/ipc/chromium/src/base/message_loop.cc:299:3
#24 XRE_InitChildProcess(int, char**, XREChildData const*) /src/toolkit/xre/nsEmbedFunctions.cpp:703:34
#25 content_process_main(mozilla::Bootstrap*, int, char**) /src/browser/app/../../ipc/contentproc/plugin-container.cpp:63:30
#26 main /src/browser/app/nsBrowserApp.cpp:280:18
#27 __libc_start_main /build/glibc-bfm8X4/glibc-2.23/csu/../csu/libc-start.c:291
#28 _start (firefox+0x41e424)
Flags: in-testsuite?
Daniel, do you know what this assertion is about? I supposed that GetRenderedText should be a safe operation on refresh driver's WillRefresh.
Priority: -- → P3
didn't realized I forgot to put ni?
Flags: needinfo?(dholbert)
I don't really know what it's about, but we did encounter it in bug 1441254 as well. It seems to be a sanity-check for a belt-and-suspenders check that we do before typecasting. Fortunately we make the same check in an "if" statement and bypass the typecasting if it fails.
Flags: needinfo?(dholbert)
See Also: → 1441254
(To clarify: bug 1441254 isn't the same exact line of code, but rather is another copy of basically the same assertion & code-pattern, elsewhere in the file)
Attached file testcase.html
Attachment #8931042 - Attachment is obsolete: true
You need to log in before you can comment on or make changes to this bug.