Closed Bug 1622900 Opened 5 years ago Closed 5 years ago

Assertion failure: !mInStyleRefresh, at src/layout/base/RestyleManager.cpp:3173

Categories

(Core :: Layout, defect, P2)

defect

Tracking

()

RESOLVED FIXED
mozilla76
Tracking Status
firefox-esr68 --- unaffected
firefox74 --- unaffected
firefox75 --- unaffected
firefox76 --- fixed

People

(Reporter: tsmith, Assigned: emilio)

References

(Blocks 1 open bug, Regression)

Details

(4 keywords)

Attachments

(2 files)

Attached file testcase.html β€”

Reduced with m-c 20200316-62ab2cd02833

Assertion failure: !mInStyleRefresh, at src/layout/base/RestyleManager.cpp:3173

#0 mozilla::RestyleManager::ContentStateChanged(nsIContent*, mozilla::EventStates) src/layout/base/RestyleManager.cpp:3173:3
#1 mozilla::PresShell::ContentStateChanged(mozilla::dom::Document*, nsIContent*, mozilla::EventStates) src/layout/base/PresShell.cpp:4197:37
#2 mozilla::dom::Document::ContentStateChanged(nsIContent*, mozilla::EventStates) src/dom/base/Document.cpp:7420:3
#3 mozilla::dom::Element::UpdateState(bool) src/dom/base/Element.cpp:290:14
#4 mozilla::dom::HTMLInputElement::SetDirectionFromValue(bool) src/dom/html/HTMLInputElement.cpp:5540:5
#5 mozilla::dom::HTMLInputElement::OnValueChanged(mozilla::TextControlElement::ValueChangeKind) src/dom/html/HTMLInputElement.cpp:6622:5
#6 mozilla::TextControlState::SetValue(nsTSubstring<char16_t> const&, nsTSubstring<char16_t> const*, unsigned int) src/dom/html/TextControlState.cpp:2689:45
#7 mozilla::TextControlState::SetValue(nsTSubstring<char16_t> const&, unsigned int) src/dom/html/TextControlState.h:225:12
#8 mozilla::TextControlState::UnbindFromFrame(nsTextControlFrame*) src/dom/html/TextControlState.cpp:2480:26
#9 nsTextControlFrame::DestroyFrom(nsIFrame*, mozilla::layout::PostFrameDestroyData&) src/layout/forms/nsTextControlFrame.cpp:145:23
#10 nsBlockFrame::DoRemoveFrameInternal(nsIFrame*, unsigned int, mozilla::layout::PostFrameDestroyData&) src/layout/generic/nsBlockFrame.cpp:6256:20
#11 nsBlockFrame::DoRemoveFrame(nsIFrame*, unsigned int) src/layout/generic/nsBlockFrame.h:528:5
#12 nsBlockFrame::RemoveFrame(mozilla::layout::FrameChildListID, nsIFrame*) src/layout/generic/nsBlockFrame.cpp:5572:5
#13 nsCSSFrameConstructor::ContentRemoved(nsIContent*, nsIContent*, nsCSSFrameConstructor::RemoveFlags) src/layout/base/nsCSSFrameConstructor.cpp:7576:5
#14 nsCSSFrameConstructor::RecreateFramesForContent(nsIContent*, nsCSSFrameConstructor::InsertionKind) src/layout/base/nsCSSFrameConstructor.cpp:8586:7
#15 mozilla::RestyleManager::ProcessRestyledFrames(nsStyleChangeList&) src/layout/base/RestyleManager.cpp:1518:25
#16 mozilla::RestyleManager::DoProcessPendingRestyles(mozilla::ServoTraversalFlags) src/layout/base/RestyleManager.cpp:3066:9
#17 mozilla::RestyleManager::ProcessPendingRestyles() src/layout/base/RestyleManager.cpp:3145:3
#18 mozilla::PresShell::DoFlushPendingNotifications(mozilla::ChangesToFlush) src/layout/base/PresShell.cpp:4076:39
#19 mozilla::PresShell::FlushPendingNotifications(mozilla::FlushType) /builds/worker/workspace/obj-build/dist/include/mozilla/PresShell.h:1449:5
#20 mozilla::EventStateManager::FlushLayout(nsPresContext*) src/dom/events/EventStateManager.cpp:5648:16
#21 mozilla::EventStateManager::PreHandleEvent(nsPresContext*, mozilla::WidgetEvent*, nsIFrame*, nsIContent*, nsEventStatus*, nsIContent*) src/dom/events/EventStateManager.cpp:688:7
#22 mozilla::PresShell::EventHandler::DispatchEvent(mozilla::EventStateManager*, mozilla::WidgetEvent*, bool, nsEventStatus*, nsIContent*) src/layout/base/PresShell.cpp:7825:39
#23 mozilla::PresShell::EventHandler::HandleEventWithCurrentEventInfo(mozilla::WidgetEvent*, nsEventStatus*, bool, nsIContent*) src/layout/base/PresShell.cpp:7794:17
#24 mozilla::PresShell::EventHandler::HandleEventUsingCoordinates(nsIFrame*, mozilla::WidgetGUIEvent*, nsEventStatus*, bool) src/layout/base/PresShell.cpp:6737:30
#25 mozilla::PresShell::EventHandler::HandleEvent(nsIFrame*, mozilla::WidgetGUIEvent*, bool, nsEventStatus*) src/layout/base/PresShell.cpp:6542:12
#26 mozilla::PresShell::HandleEvent(nsIFrame*, mozilla::WidgetGUIEvent*, bool, nsEventStatus*) src/layout/base/PresShell.cpp:6467:23
#27 nsViewManager::DispatchEvent(mozilla::WidgetGUIEvent*, nsView*, nsEventStatus*) src/view/nsViewManager.cpp:751:18
#28 nsView::HandleEvent(mozilla::WidgetGUIEvent*, bool) src/view/nsView.cpp:1135:9
#29 mozilla::widget::PuppetWidget::DispatchEvent(mozilla::WidgetGUIEvent*, nsEventStatus&) src/widget/PuppetWidget.cpp:381:37
#30 mozilla::layers::APZCCallbackHelper::DispatchWidgetEvent(mozilla::WidgetGUIEvent&) src/gfx/layers/apz/util/APZCCallbackHelper.cpp:540:21
#31 mozilla::dom::BrowserChild::DispatchWidgetEventViaAPZ(mozilla::WidgetGUIEvent&) src/dom/ipc/BrowserChild.cpp:1786:10
#32 mozilla::dom::BrowserChild::HandleRealMouseButtonEvent(mozilla::WidgetMouseEvent const&, mozilla::layers::ScrollableLayerGuid const&, unsigned long const&) src/dom/ipc/BrowserChild.cpp:1725:3
#33 mozilla::dom::BrowserChild::RecvRealMouseButtonEvent(mozilla::WidgetMouseEvent const&, mozilla::layers::ScrollableLayerGuid const&, unsigned long const&) src/dom/ipc/BrowserChild.cpp:1698:3
#34 mozilla::dom::BrowserChild::RecvSynthMouseMoveEvent(mozilla::WidgetMouseEvent const&, mozilla::layers::ScrollableLayerGuid const&, unsigned long const&) src/dom/ipc/BrowserChild.cpp:1663:8
#35 mozilla::dom::PBrowserChild::OnMessageReceived(IPC::Message const&) /builds/worker/workspace/obj-build/ipc/ipdl/PBrowserChild.cpp:5135:56
#36 mozilla::dom::PContentChild::OnMessageReceived(IPC::Message const&) /builds/worker/workspace/obj-build/ipc/ipdl/PContentChild.cpp:8424:32
#37 mozilla::ipc::MessageChannel::DispatchAsyncMessage(mozilla::ipc::ActorLifecycleProxy*, IPC::Message const&) src/ipc/glue/MessageChannel.cpp:2187:25
#38 mozilla::ipc::MessageChannel::DispatchMessage(IPC::Message&&) src/ipc/glue/MessageChannel.cpp:2111:9
#39 mozilla::ipc::MessageChannel::RunMessage(mozilla::ipc::MessageChannel::MessageTask&) src/ipc/glue/MessageChannel.cpp:1959:3
#40 mozilla::ipc::MessageChannel::MessageTask::Run() src/ipc/glue/MessageChannel.cpp:1990:13
#41 mozilla::SchedulerGroup::Runnable::Run() src/xpcom/threads/SchedulerGroup.cpp:282:20
#42 nsThread::ProcessNextEvent(bool, bool*) src/xpcom/threads/nsThread.cpp:1220:14
#43 NS_ProcessNextEvent(nsIThread*, bool) src/xpcom/threads/nsThreadUtils.cpp:481:10
#44 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) src/ipc/glue/MessagePump.cpp:109:5
#45 MessageLoop::RunInternal() src/ipc/chromium/src/base/message_loop.cc:315:10
#46 MessageLoop::RunHandler() src/ipc/chromium/src/base/message_loop.cc:308:3
#47 MessageLoop::Run() src/ipc/chromium/src/base/message_loop.cc:290:3
#48 nsBaseAppShell::Run() src/widget/nsBaseAppShell.cpp:137:27
#49 XRE_RunAppShell() src/toolkit/xre/nsEmbedFunctions.cpp:926:20
#50 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) src/ipc/glue/MessagePump.cpp:237:9
#51 MessageLoop::RunInternal() src/ipc/chromium/src/base/message_loop.cc:315:10
#52 MessageLoop::RunHandler() src/ipc/chromium/src/base/message_loop.cc:308:3
#53 MessageLoop::Run() src/ipc/chromium/src/base/message_loop.cc:290:3
#54 XRE_InitChildProcess(int, char**, XREChildData const*) src/toolkit/xre/nsEmbedFunctions.cpp:761:34
#55 content_process_main(mozilla::Bootstrap*, int, char**) src/browser/app/../../ipc/contentproc/plugin-container.cpp:56:28
#56 main src/browser/app/nsBrowserApp.cpp:303:18
Flags: in-testsuite?

A Pernosco session is available here: https://pernos.co/debug/o_yvIpgffvRFirnw2RlTXQ/index.html

Assignee: nobody → emilio
Priority: -- → P2
Regressed by: 1401657
Has Regression Range: --- → yes

(In reply to Tyson Smith [:tsmith] from comment #1)

A Pernosco session is available here: https://pernos.co/debug/o_yvIpgffvRFirnw2RlTXQ/index.html

That pernosco session seems to be missing the source from mozilla-central. How are you uploading them? You may need to provide a path to mozilla-central or something like that to pernosco-submit.

Flags: needinfo?(twsmith)

(In reply to Emilio Cobos Álvarez (:emilio) from comment #2)

That pernosco session seems to be missing the source from mozilla-central. How are you uploading them? You may need to provide a path to mozilla-central or something like that to pernosco-submit.

I am using a TC build and I am specifically not providing a path because Pernosco pulls the syms and source from TC when the path is not provided.

Flags: needinfo?(twsmith)

This was causing inconsistent directionality depending on the order of changes
between text content and input value.

Pushed by ealvarez@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/424d39351adf
<input> text node children don't affect the directionality of the input. r=smaug
Created web-platform-tests PR https://github.com/web-platform-tests/wpt/pull/22286 for changes under testing/web-platform/tests
Upstream web-platform-tests status checks passed, PR will merge once commit reaches central.
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla76
Upstream PR merged by moz-wptsync-bot
Flags: in-testsuite? → in-testsuite+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: