Closed Bug 1966887 Opened 2 months ago Closed 2 months ago

Crash in [@ mozilla::PresShell::EnsurePrecedingPointerRawUpdate]

Categories

(Core :: DOM: Events, defect)

defect

Tracking

()

RESOLVED FIXED
140 Branch
Tracking Status
firefox-esr115 --- unaffected
firefox-esr128 --- unaffected
firefox138 --- unaffected
firefox139 --- unaffected
firefox140 + fixed

People

(Reporter: aryx, Assigned: masayuki)

References

(Regression)

Details

(Keywords: crash, regression)

Crash Data

Attachments

(1 file)

4 crashes from 3 installs of Firefox 140.0a1 on Windows 11

Crash report: https://crash-stats.mozilla.org/report/index/d8787e03-9d2f-483d-a9a0-f0b2c0250516

MOZ_CRASH Reason:

MOZ_DIAGNOSTIC_ASSERT(!sDispatchingRawUpdateEventFromHere) (Dispatching ePointerRawUpdate should not be done recursively)

Top 10 frames:

0  xul.dll  mozilla::PresShell::EnsurePrecedingPointerRawUpdate(AutoWeakFrame&, mozilla::...  layout/base/PresShell.cpp:7412
0  xul.dll  mozilla::PresShell::HandleEvent(nsIFrame*, mozilla::WidgetGUIEvent*, bool, ns...  layout/base/PresShell.cpp:7366
1  xul.dll  nsViewManager::DispatchEvent(mozilla::WidgetGUIEvent*, nsView*, nsEventStatus*)  view/nsViewManager.cpp:611
2  xul.dll  mozilla::PresShell::DispatchSynthMouseMove(mozilla::WidgetGUIEvent*)  layout/base/PresShell.cpp:4148
2  xul.dll  mozilla::PresShell::ProcessSynthMouseMoveEvent(bool)  layout/base/PresShell.cpp:6112
3  xul.dll  mozilla::PresShell::nsSynthMouseMoveEvent::Run()  layout/base/PresShell.h:2076
4  xul.dll  mozilla::PresShell::HandleEvent(nsIFrame*, mozilla::WidgetGUIEvent*, bool, ns...  layout/base/PresShell.cpp:7336
5  xul.dll  mozilla::PresShell::EventHandler::MaybeHandleEventWithAnotherPresShell(AutoWe...  layout/base/PresShell.cpp:8488
5  xul.dll  mozilla::PresShell::EventHandler::HandleEvent(AutoWeakFrame&, mozilla::Widget...  layout/base/PresShell.cpp:7541
6  xul.dll  mozilla::PresShell::EnsurePrecedingPointerRawUpdate(AutoWeakFrame&, mozilla::...  layout/base/PresShell.cpp:7435
Flags: needinfo?(masayuki)

Ah, I forgot to remove the assertion because it's possible case. On the other hand, the crash report's stack trace is what I didn't expect. So, it detects a bug 😛

Assignee: nobody → masayuki
Severity: -- → S2
Status: NEW → ASSIGNED
Flags: needinfo?(masayuki)
OS: Unspecified → All
Hardware: Unspecified → All

The assertion was intended to detect unexpected recursive event dispatching of
ePointerRawUpdate. However, if may occur if spinning the event loop with
opening a modal dialog or synchronous XHR. Therefore, the assertion may fail
even in the valid situations.

The crash reports are caused by synthesized eMouseMove. However, it'll be
checked after getting WidgetMousePointer* after the removing assertion.
So, the case is correctly handled anyway.

Pushed by masayuki@d-toybox.com: https://hg.mozilla.org/integration/autoland/rev/898231085cb2 Remove the assertion in `EnsurePrecedingPointerRawUpdate()` which checks recursive calls r=smaug
Status: ASSIGNED → RESOLVED
Closed: 2 months ago
Resolution: --- → FIXED
Target Milestone: --- → 140 Branch
QA Whiteboard: [qa-triage-done-c141/b140]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: