Closed Bug 1667209 Opened 6 years ago Closed 6 years ago

Crash in [@ mozilla::PresShell::DoFlushPendingNotifications] with MOZ_DIAGNOSTIC_ASSERT(!mDocument->GetPresShell())

Categories

(Core :: Layout, defect)

Unspecified
macOS
defect

Tracking

()

RESOLVED FIXED
83 Branch
Tracking Status
firefox-esr78 --- wontfix
firefox82 --- wontfix
firefox83 --- fixed

People

(Reporter: sefeng211, Assigned: emilio)

References

Details

(Keywords: crash)

Crash Data

Attachments

(1 file)

Crash report: https://crash-stats.mozilla.org/report/index/5fe7bc03-3ed9-42bc-871a-ca01d0200924

Top 10 frames of crashing thread:

0 XUL mozilla::PresShell::DoFlushPendingNotifications layout/base/PresShell.cpp:4114
1 XUL nsTypeAheadFind::FindItNow toolkit/components/typeaheadfind/nsTypeAheadFind.cpp:359
2 XUL nsTypeAheadFind::FindInternal toolkit/components/typeaheadfind/nsTypeAheadFind.cpp:1050
3 XUL nsTypeAheadFind::Find toolkit/components/typeaheadfind/nsTypeAheadFind.cpp:933
4 XUL NS_InvokeByIndex 
5 XUL XPCWrappedNative::CallMethod js/xpconnect/src/XPCWrappedNative.cpp:1142
6 XUL XPC_WN_CallMethod js/xpconnect/src/XPCWrappedNativeJSOps.cpp:947
7 XUL js::InternalCallOrConstruct js/src/vm/Interpreter.cpp:600
8 XUL js::jit::DoCallFallback js/src/jit/BaselineIC.cpp:3027
9  @0x7f5145a9da7 

Crash reason is MOZ_DIAGNOSTIC_ASSERT(!mDocument->GetPresShell()) (Where did this shell come from?).

Summary: Crash in [@ mozilla::PresShell::DoFlushPendingNotifications] → Crash in [@ mozilla::PresShell::DoFlushPendingNotifications] with MOZ_DIAGNOSTIC_ASSERT(!mDocument->GetPresShell())

Emilio, do you know what is happening here?

Flags: needinfo?(emilio)

We don't have a repro for this.

Keeping a reference to a PresShell for an arbitrary amount of time is
error prone, because the pres shell could've been detached and even
though the code tried to handle it didn't seem to do it a 100% of the
time.

Also, calling PresShell::FlushPendingNotifications directly is not the
right thing to do anyways because it won't flush ancestor documents as
needed.

This patch fixes both issues by keeping a reference to the subdocument
we're searching rather than to the shell.

Assignee: nobody → emilio
Status: NEW → ASSIGNED
Flags: needinfo?(emilio)
Pushed by ealvarez@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/82f55ce06659 Make find code keep references to subdocuments, not pres shells. r=smaug
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → 83 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: