Closed
Bug 1265825
Opened 9 years ago
Closed 9 years ago
Assertion failure: !mSuppressionActive (Should have un-suppress via StopDrag() first.), at layout/xul/nsSliderFrame.cpp:96 on Google Keep
Categories
(Core :: Panning and Zooming, defect)
Core
Panning and Zooming
Tracking
()
RESOLVED
FIXED
mozilla48
Tracking | Status | |
---|---|---|
firefox46 | --- | unaffected |
firefox47 | --- | fixed |
firefox48 | --- | fixed |
People
(Reporter: dbaron, Assigned: BenWa)
References
()
Details
(Keywords: regression)
Attachments
(1 file)
58 bytes,
text/x-review-board-request
|
kats
:
review+
ritu
:
approval-mozilla-beta+
|
Details |
Steps to reproduce: 1. load https://keep.google.com/ 2. create (if you don't have one already) a note that's long enough to have a scrollbar 3. open that note 4. drag the scrollbar Crash due to fatal assertion: Assertion failure: !mSuppressionActive (Should have un-suppress via StopDrag() first.), at mozilla/layout/xul/nsSliderFrame.cpp:96 This assertion was added recently in bug 1257369. This appears to be reliably reproducable (I've hit it twice). Stack is: Assertion failure: !mSuppressionActive (Should have un-suppress via StopDrag() first.), at /home/dbaron/builds/ssd/mozilla-central/mozilla/layout/xul/nsSliderFrame.cpp:96 #01: nsIPresShell::FreeByObjectID(mozilla::ArenaObjectID, void*) (/home/dbaron/builds/ssd/mozilla-central/mozilla/layout/base/nsIPresShell.h:265) #02: nsFrameList::DestroyFramesFrom(nsIFrame*) (/home/dbaron/builds/ssd/mozilla-central/mozilla/layout/generic/nsFrameList.cpp:56) #03: nsContainerFrame::DestroyFrom(nsIFrame*) (/home/dbaron/builds/ssd/mozilla-central/mozilla/layout/generic/nsContainerFrame.cpp:222) #04: nsFrameList::DestroyFramesFrom(nsIFrame*) (/home/dbaron/builds/ssd/mozilla-central/mozilla/layout/generic/nsFrameList.cpp:56) #05: nsContainerFrame::DestroyFrom(nsIFrame*) (/home/dbaron/builds/ssd/mozilla-central/mozilla/layout/generic/nsContainerFrame.cpp:222) #06: nsBlockFrame::DoRemoveFrame(nsIFrame*, unsigned int) (/home/dbaron/builds/ssd/mozilla-central/mozilla/layout/generic/nsBlockFrame.cpp:5802) #07: nsBlockFrame::RemoveFrame(mozilla::layout::FrameChildListID, nsIFrame*) (/home/dbaron/builds/ssd/mozilla-central/mozilla/layout/generic/nsBlockFrame.cpp:5166) #08: nsFrameManager::RemoveFrame(mozilla::layout::FrameChildListID, nsIFrame*) (/home/dbaron/builds/ssd/mozilla-central/mozilla/layout/base/nsFrameManager.cpp:508) #09: nsCSSFrameConstructor::ContentRemoved(nsIContent*, nsIContent*, nsIContent*, nsCSSFrameConstructor::RemoveFlags, bool*, nsIContent**) (/home/dbaron/builds/ssd/mozilla-central/mozilla/layout/base/nsCSSFrameConstructor.cpp:8393) #10: nsCSSFrameConstructor::RecreateFramesForContent(nsIContent*, bool, nsCSSFrameConstructor::RemoveFlags, nsIContent**) (/home/dbaron/builds/ssd/mozilla-central/mozilla/layout/base/nsCSSFrameConstructor.cpp:9577 (discriminator 4)) #11: mozilla::RestyleManager::ProcessRestyledFrames(nsStyleChangeList&) (/home/dbaron/builds/ssd/mozilla-central/mozilla/layout/base/RestyleManager.cpp:835) #12: mozilla::RestyleManager::ComputeAndProcessStyleChange(nsIFrame*, nsChangeHint, mozilla::RestyleTracker&, nsRestyleHint, mozilla::RestyleHintData const&) (/home/dbaron/builds/ssd/mozilla-central/mozilla/layout/base/RestyleManager.cpp: #13: mozilla::RestyleManager::RestyleElement(mozilla::dom::Element*, nsIFrame*, nsChangeHint, mozilla::RestyleTracker&, nsRestyleHint, mozilla::RestyleHintData const&) (/home/dbaron/builds/ssd/mozilla-central/mozilla/layout/base/RestyleMa #14: mozilla::RestyleTracker::ProcessOneRestyle(mozilla::dom::Element*, nsRestyleHint, nsChangeHint, mozilla::RestyleHintData const&) (/home/dbaron/builds/ssd/mozilla-central/mozilla/layout/base/RestyleTracker.cpp:95) #15: mozilla::RestyleTracker::DoProcessRestyles() (/home/dbaron/builds/ssd/mozilla-central/mozilla/layout/base/RestyleTracker.cpp:264) #16: mozilla::RestyleManager::ProcessPendingRestyles() (/home/dbaron/builds/ssd/mozilla-central/mozilla/layout/base/RestyleManager.cpp:1786) #17: PresShell::FlushPendingNotifications(mozilla::ChangesToFlush) (/home/dbaron/builds/ssd/mozilla-central/mozilla/layout/base/nsPresShell.cpp:4060) #18: PresShell::WillPaint() (/home/dbaron/builds/ssd/mozilla-central/mozilla/layout/base/nsPresShell.cpp:8854) #19: nsViewManager::CallWillPaintOnObservers() (/home/dbaron/builds/ssd/mozilla-central/mozilla/view/nsViewManager.cpp:1137) #20: nsViewManager::ProcessPendingUpdates() (/home/dbaron/builds/ssd/mozilla-central/mozilla/view/nsViewManager.cpp:1104) #21: nsRefreshDriver::Tick(long, mozilla::TimeStamp) (/home/dbaron/builds/ssd/mozilla-central/mozilla/layout/base/nsRefreshDriver.cpp:1903) #22: mozilla::RefreshDriverTimer::TickRefreshDrivers(long, mozilla::TimeStamp, nsTArray<RefPtr<nsRefreshDriver> >&) (/home/dbaron/builds/ssd/mozilla-central/mozilla/layout/base/nsRefreshDriver.cpp:246) #23: mozilla::RefreshDriverTimer::Tick(long, mozilla::TimeStamp) (/home/dbaron/builds/ssd/mozilla-central/mozilla/layout/base/nsRefreshDriver.cpp:267) #24: mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::TickRefreshDriver(mozilla::TimeStamp) (/home/dbaron/builds/ssd/mozilla-central/mozilla/layout/base/nsRefreshDriver.cpp:510) #25: mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::NotifyVsync(mozilla::TimeStamp) (/home/dbaron/builds/ssd/mozilla-central/mozilla/layout/base/nsRefreshDriver.cpp:429 (discriminator 4)) #26: mozilla::layout::VsyncChild::RecvNotify(mozilla::TimeStamp const&) (/home/dbaron/builds/ssd/mozilla-central/mozilla/layout/ipc/VsyncChild.cpp:67) #27: mozilla::layout::PVsyncChild::OnMessageReceived(IPC::Message const&) (/home/dbaron/builds/ssd/mozilla-central/obj/firefox-debugopt/ipc/ipdl/PVsyncChild.cpp:234) #28: mozilla::ipc::MessageChannel::AutoSetValue<int>::~AutoSetValue() (/home/dbaron/builds/ssd/mozilla-central/obj/firefox-debugopt/dist/include/mozilla/ipc/MessageChannel.h:542) #29: mozilla::ipc::MessageChannel::DispatchMessage(IPC::Message const&) (/home/dbaron/builds/ssd/mozilla-central/mozilla/ipc/glue/MessageChannel.cpp:1586) #30: mozilla::ipc::MessageChannel::OnMaybeDequeueOne() (/home/dbaron/builds/ssd/mozilla-central/mozilla/ipc/glue/MessageChannel.cpp:1553) #31: MessageLoop::RunTask(Task*) (/home/dbaron/builds/ssd/mozilla-central/mozilla/ipc/chromium/src/base/message_loop.cc:350) #32: MessageLoop::DeferOrRunPendingTask(MessageLoop::PendingTask const&) (/home/dbaron/builds/ssd/mozilla-central/mozilla/ipc/chromium/src/base/message_loop.cc:360) #33: MessageLoop::DoWork() (/home/dbaron/builds/ssd/mozilla-central/mozilla/ipc/chromium/src/base/message_loop.cc:444) #34: mozilla::ipc::DoWorkRunnable::Run() (/home/dbaron/builds/ssd/mozilla-central/mozilla/ipc/glue/MessagePump.cpp:228) #35: nsThread::ProcessNextEvent(bool, bool*) (/home/dbaron/builds/ssd/mozilla-central/mozilla/xpcom/threads/nsThread.cpp:994) #36: NS_ProcessNextEvent(nsIThread*, bool) (/home/dbaron/builds/ssd/mozilla-central/mozilla/xpcom/glue/nsThreadUtils.cpp:297) #37: mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) (/home/dbaron/builds/ssd/mozilla-central/mozilla/ipc/glue/MessagePump.cpp:99) #38: MessageLoop::RunInternal() (/home/dbaron/builds/ssd/mozilla-central/mozilla/ipc/chromium/src/base/message_loop.cc:231) #39: MessageLoop::AutoRunState::~AutoRunState() (/home/dbaron/builds/ssd/mozilla-central/mozilla/ipc/chromium/src/base/message_loop.cc:505) #40: nsBaseAppShell::Run() (/home/dbaron/builds/ssd/mozilla-central/mozilla/widget/nsBaseAppShell.cpp:158) #41: XRE_RunAppShell (/home/dbaron/builds/ssd/mozilla-central/mozilla/toolkit/xre/nsEmbedFunctions.cpp:759) #42: mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*) (/home/dbaron/builds/ssd/mozilla-central/mozilla/ipc/glue/MessagePump.cpp:271) #43: MessageLoop::RunInternal() (/home/dbaron/builds/ssd/mozilla-central/mozilla/ipc/chromium/src/base/message_loop.cc:231) #44: MessageLoop::AutoRunState::~AutoRunState() (/home/dbaron/builds/ssd/mozilla-central/mozilla/ipc/chromium/src/base/message_loop.cc:505) #45: XRE_InitChildProcess (/home/dbaron/builds/ssd/mozilla-central/mozilla/toolkit/xre/nsEmbedFunctions.cpp:641) #46: content_process_main(int, char**) (/home/dbaron/builds/ssd/mozilla-central/mozilla/ipc/app/../contentproc/plugin-container.cpp:240) #47: __libc_start_main (/build/glibc-ryFjv0/glibc-2.21/csu/libc-start.c:323)
Flags: needinfo?(bgirard)
Reporter | ||
Comment 1•9 years ago
|
||
(setting flags without testing in those versions, based on where the patch causing it has been landed)
status-firefox46:
--- → unaffected
status-firefox47:
--- → affected
Comment 2•9 years ago
|
||
(Note that this should only happen with the apz.drag.enabled pref set to true, which is a non-default configuration)
Blocks: async-scrollbar-drag
Reporter | ||
Comment 3•9 years ago
|
||
I do not have that pref enabled. So your assumption that this can only happen with it enabled does not hold.
Assignee | ||
Comment 4•9 years ago
|
||
Right, this comes from bug 1257369. The aim of this assert is to make sure that we don't forget to unsuppress the display-port and leave the user in a state with no displayport. Thanks for the steps :dbaron. I'll address this tomorrow.
Comment 5•9 years ago
|
||
Ah, my mistake. I got confused with the other changes we made to that file.
Keywords: regression
Assignee | ||
Comment 6•9 years ago
|
||
Review commit: https://reviewboard.mozilla.org/r/48505/diff/#index_header See other reviews: https://reviewboard.mozilla.org/r/48505/
Attachment #8744375 -
Flags: review?(bugmail.mozilla)
Assignee | ||
Comment 7•9 years ago
|
||
Alright my goal with this assert is if we started getting into a state with no displayport and reports if this assert we would know that we were too late to unsuppress the displayport. But given that this hasn't happen I think the assert is just too strict and that unsupressing from ~nsSliderFrame is ok.
Flags: needinfo?(bgirard)
Updated•9 years ago
|
Attachment #8744375 -
Flags: review?(bugmail.mozilla) → review+
Comment 8•9 years ago
|
||
Comment on attachment 8744375 [details] MozReview Request: Bug 1265825 - Remove mSuppressionActive assert. r?kats https://reviewboard.mozilla.org/r/48505/#review45199
Comment 10•9 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/5554679e1574
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla48
Comment 11•9 years ago
|
||
Please request uplift to 47 as well.
Component: XP Toolkit/Widgets: XUL → Panning and Zooming
Updated•9 years ago
|
Assignee: nobody → bgirard
Assignee | ||
Comment 12•9 years ago
|
||
Comment on attachment 8744375 [details] MozReview Request: Bug 1265825 - Remove mSuppressionActive assert. r?kats Approval Request Comment [Feature/regressing bug #]: bug 1257369 [User impact if declined]: None, this is #DEBUG only [Describe test coverage new/current, TreeHerder]: No test coverage change required. [Risks and why]: Should be none to the user, it will only remove a #DEBUG check [String/UUID change made/needed]: none
Attachment #8744375 -
Flags: approval-mozilla-beta?
Comment on attachment 8744375 [details] MozReview Request: Bug 1265825 - Remove mSuppressionActive assert. r?kats Removes an assert, Beta47+
Attachment #8744375 -
Flags: approval-mozilla-beta? → approval-mozilla-beta+
Comment 14•9 years ago
|
||
bugherder uplift |
https://hg.mozilla.org/releases/mozilla-beta/rev/bd61104c52b8
You need to log in
before you can comment on or make changes to this bug.
Description
•