Closed
Bug 1057256
Opened 9 years ago
Closed 9 years ago
[Text selection] Fix Mnw failed on b2g emulator after enabling selection carets
Categories
(Core :: DOM: Selection, defect)
Tracking
()
RESOLVED
FIXED
mozilla34
People
(Reporter: TYLin, Assigned: TYLin)
References
Details
Attachments
(3 files, 2 obsolete files)
8.96 KB,
patch
|
roc
:
review+
mtseng
:
feedback+
|
Details | Diff | Splinter Review |
3.40 KB,
patch
|
roc
:
review+
mtseng
:
feedback+
|
Details | Diff | Splinter Review |
2.67 KB,
patch
|
roc
:
review+
mtseng
:
feedback+
|
Details | Diff | Splinter Review |
After enabling selection carets, we got an error in Mnw test_touchcaret.py on b2g emulator. https://tbpl.mozilla.org/?tree=Try&rev=5635d88cfac6 The call stack catched locally is as follows. We should add null pointer check after getting caretFocusFrame. Program received signal SIGSEGV, Segmentation fault. nsIFrame::GetConstFrameSelection (this=0x0) at /home/tlin/Projects/gecko-dev/layout/generic/nsFrame.cpp:5750 5750 return PresContext()->PresShell()->ConstFrameSelection(); (gdb) bt #0 nsIFrame::GetConstFrameSelection (this=0x0) at /home/tlin/Projects/gecko-dev/layout/generic/nsFrame.cpp:5750 #1 0x415c64d6 in nsIFrame::GetFrameSelection (this=0x0) at /home/tlin/Projects/gecko-dev/layout/generic/nsFrame.cpp:5734 #2 0x4156d664 in mozilla::SelectionCarets::SetSelectionDragState (this=<value optimized out>, aState=false) at /home/tlin/Projects/gecko-dev/layout/base/SelectionCarets.cpp:714 #3 0x4156d80a in mozilla::SelectionCarets::SelectWord (this=0x44b46500) at /home/tlin/Projects/gecko-dev/layout/base/SelectionCarets.cpp:528 #4 0x4156d848 in mozilla::SelectionCarets::FireLongTap (aTimer=<value optimized out>, aSelectionCarets=<value optimized out>) at /home/tlin/Projects/gecko-dev/layout/base/SelectionCarets.cpp:886 #5 0x40ab5294 in nsTimerImpl::Fire (this=0x45668e80) at /home/tlin/Projects/gecko-dev/xpcom/threads/nsTimerImpl.cpp:618 #6 0x40ab5342 in nsTimerEvent::Run (this=0x44dcf1b0) at /home/tlin/Projects/gecko-dev/xpcom/threads/nsTimerImpl.cpp:711 #7 0x40ab487c in nsThread::ProcessNextEvent (this=0x402025c0, aMayWait=false, aResult=0xbeca17bf) at /home/tlin/Projects/gecko-dev/xpcom/threads/nsThread.cpp:770 #8 0x40abf8e8 in NS_ProcessNextEvent (aThread=0x44b46500, aMayWait=false) at /home/tlin/Projects/gecko-dev/xpcom/glue/nsThreadUtils.cpp:265 #9 0x40c08b84 in mozilla::ipc::MessagePump::Run (this=0x40201e50, aDelegate=0x402550c0) at /home/tlin/Projects/gecko-dev/ipc/glue/MessagePump.cpp:99 #10 0x40bfbe0c in MessageLoop::RunInternal (this=0x1000000) at /home/tlin/Projects/gecko-dev/ipc/chromium/src/base/message_loop.cc:229 #11 0x40bfbe8a in MessageLoop::RunHandler (this=0x402550c0) at /home/tlin/Projects/gecko-dev/ipc/chromium/src/base/message_loop.cc:222 #12 MessageLoop::Run (this=0x402550c0) at /home/tlin/Projects/gecko-dev/ipc/chromium/src/base/message_loop.cc:196 #13 0x4132df74 in nsBaseAppShell::Run (this=0x43d47160) at /home/tlin/Projects/gecko-dev/widget/xpwidgets/nsBaseAppShell.cpp:164 #14 0x417b1668 in nsAppStartup::Run (this=0x43d56250) at /home/tlin/Projects/gecko-dev/toolkit/components/startup/nsAppStartup.cpp:278 #15 0x417c3a7c in XREMain::XRE_mainRun (this=0xbeca1a04) at /home/tlin/Projects/gecko-dev/toolkit/xre/nsAppRunner.cpp:4021 #16 0x417c61ec in XREMain::XRE_main (this=0xbeca1a04, argc=<value optimized out>, argv=<value optimized out>, aAppData=0x235fc) at /home/tlin/Projects/gecko-dev/toolkit/xre/nsAppRunner.cpp:4092 #17 0x417c635c in XRE_main (argc=1, argv=0x40238178, aAppData=0x235fc, aFlags=<value optimized out>) at /home/tlin/Projects/gecko-dev/toolkit/xre/nsAppRunner.cpp:4306 #18 0x0000a54a in do_main (argc=1, argv=<value optimized out>) at /home/tlin/Projects/gecko-dev/b2g/app/nsBrowserApp.cpp:164 #19 b2g_main (argc=1, argv=<value optimized out>) at /home/tlin/Projects/gecko-dev/b2g/app/nsBrowserApp.cpp:290 #20 0x0000a2c4 in RunProcesses (argc=1, argv=0xbeca5c14) at /home/tlin/Projects/gecko-dev/b2g/app/B2GLoader.cpp:221 #21 main (argc=1, argv=0xbeca5c14) at /home/tlin/Projects/gecko-dev/b2g/app/B2GLoader.cpp:247
Assignee | ||
Comment 1•9 years ago
|
||
We should add null check in TouchCaret.cpp as well. focusFrame is nullptr here. Program received signal SIGSEGV, Segmentation fault. mozilla::TouchCaret::GetContentBoundary (this=0x465852e0) at /home/tlin/Projects/gecko-dev/layout/base/TouchCaret.cpp:176 176 dom::Element* editingHost = focusFrame->GetContent()->GetEditingHost(); (gdb) bt #0 mozilla::TouchCaret::GetContentBoundary (this=0x465852e0) at /home/tlin/Projects/gecko-dev/layout/base/TouchCaret.cpp:176 #1 0x4156d970 in mozilla::TouchCaret::HandleTouchMoveEvent (this=0x465852e0, aEvent=<value optimized out>) at /home/tlin/Projects/gecko-dev/layout/base/TouchCaret.cpp:678 #2 0x4156dcee in mozilla::TouchCaret::HandleEvent (this=0x465852e0, aEvent=0xbead9dd8) at /home/tlin/Projects/gecko-dev/layout/base/TouchCaret.cpp:572 #3 0x415668bc in PresShell::HandleEvent (this=0x43db1bb0, aFrame=0x4580c2b8, aEvent=0xbead9dd8, aDontRetargetEvents=<value optimized out>, aEventStatus=0xbead9d8c) at /home/tlin/Projects/gecko-dev/layout/base/nsPresShell.cpp:6850 #4 0x4132b898 in nsViewManager::DispatchEvent (this=<value optimized out>, aEvent=0xbead9dd8, aView=<value optimized out>, aStatus=<value optimized out>) at /home/tlin/Projects/gecko-dev/view/nsViewManager.cpp:775 #5 0x4132a574 in nsView::HandleEvent (this=<value optimized out>, aEvent=0xbead9dd8, aUseAttachedEvents=<value optimized out>) at /home/tlin/Projects/gecko-dev/view/nsView.cpp:1097 #6 0x4134a7bc in nsWindow::DispatchEvent (this=<value optimized out>, aEvent=0x0, aStatus=@0xbead9e68) at /home/tlin/Projects/gecko-dev/widget/gonk/nsWindow.cpp:426 #7 0x40ef46d4 in nsDOMWindowUtils::SendTouchEventCommon (this=0x44a94c60, aType=<value optimized out>, aIdentifiers=<value optimized out>, aXs=0x4022f578, aYs=0x4022f5c8, aRxs=0x4022f5d8, aRys=0x4022f5dc, aRotationAngles=0x4022f600, aForces=0x4022f614, aCount=1, aModifiers=0, aIgnoreRootScrollFrame=false, aToWindow=false, aPreventDefault=0x4027f9b8) at /home/tlin/Projects/gecko-dev/dom/base/nsDOMWindowUtils.cpp:1144 #8 0x40eeea56 in nsDOMWindowUtils::SendTouchEvent (this=0x4580a130, aType=..., aIdentifiers=0x0, aXs=0x44d61690, aYs=0x4022f5c8, aRxs=0x4022f5d8, aRys=0x4022f5dc, aRotationAngles=0x4022f600, aForces=0x4022f614, aCount=1, aModifiers=0, aIgnoreRootScrollFrame=<value optimized out>, aPreventDefault=0x4027f9b8) at /home/tlin/Projects/gecko-dev/dom/base/nsDOMWindowUtils.cpp:1054 #9 0x40ab7d3c in NS_InvokeByIndex (that=0x44a94c60, methodIndex=<value optimized out>, paramCount=<value optimized out>, params=<value optimized out>) at /home/tlin/Projects/gecko-dev/xpcom/reflect/xptcall/md/unix/xptcinvoke_arm.cpp:164 #10 0x40d148e0 in CallMethodHelper::Invoke (ccx=<value optimized out>, mode=<value optimized out>) at /home/tlin/Projects/gecko-dev/js/xpconnect/src/XPCWrappedNative.cpp:2369 #11 CallMethodHelper::Call (ccx=<value optimized out>, mode=<value optimized out>) at /home/tlin/Projects/gecko-dev/js/xpconnect/src/XPCWrappedNative.cpp:1730 #12 XPCWrappedNative::CallMethod (ccx=<value optimized out>, mode=<value optimized out>) at /home/tlin/Projects/gecko-dev/js/xpconnect/src/XPCWrappedNative.cpp:1697 #13 0x40d14cc4 in XPC_WN_CallMethod (cx=0x40255440, argc=10, vp=<value optimized out>) at /home/tlin/Projects/gecko-dev/js/xpconnect/src/XPCWrappedNativeJSOps.cpp:1288 #14 0x41c49ba8 in CallJSNative (cx=0x40255440, args=..., construct=<value optimized out>) at /home/tlin/Projects/gecko-dev/js/src/jscntxtinlines.h:231 #15 js::Invoke (cx=0x40255440, args=..., construct=<value optimized out>) at /home/tlin/Projects/gecko-dev/js/src/vm/Interpreter.cpp:464 #16 0x41c4691e in Interpret (cx=0x40255440, state=...) at /home/tlin/Projects/gecko-dev/js/src/vm/Interpreter.cpp:2546 #17 0x41c48cea in js::RunScript (cx=0x40255440, state=...) at /home/tlin/Projects/gecko-dev/js/src/vm/Interpreter.cpp:411 #18 0x41c49b88 in js::Invoke (cx=0x40255440, args=..., construct=1154881168) at /home/tlin/Projects/gecko-dev/js/src/vm/Interpreter.cpp:483 #19 0x41c4a1dc in js::Invoke (cx=0x40255440, thisv=..., fval=..., argc=3199054824, argv=0xbeadb3e8, rval=...) at /home/tlin/Projects/gecko-dev/js/src/vm/Interpreter.cpp:520 #20 0x41bc20d0 in JS_CallFunctionValue (cx=0x40255440, obj=<value optimized out>, fval=..., args=<value optimized out>, rval=...) at /home/tlin/Projects/gecko-dev/js/src/jsapi.cpp:4983 #21 0x40d0c074 in nsXPCWrappedJSClass::CallMethod (this=0x43eeb5e0, wrapper=<value optimized out>, methodIndex=<value optimized out>, info_=0x43c30850, nativeParams=0xbeadb670) at /home/tlin/Projects/gecko-dev/js/xpconnect/src/XPCWrappedJSClass.cpp:1258 #22 0x40d0648a in nsXPCWrappedJS::CallMethod (this=0x43cdedc0, methodIndex=3, info=0x43c30850, params=<value optimized out>) at /home/tlin/Projects/gecko-dev/js/xpconnect/src/XPCWrappedJS.cpp:519 #23 0x40ab8624 in PrepareAndDispatch (self=0x43d5c2e0, methodIndex=<value optimized out>, args=0xbeadb72c) at /home/tlin/Projects/gecko-dev/xpcom/reflect/xptcall/md/unix/xptcstubs_arm.cpp:93 #24 0x40ab7d8c in SharedStub () from /home/tlin/Projects/b2g-emulator/objdir-gecko/dist/bin/libxul.so #25 0x40ab58d8 in nsTimerImpl::Fire (this=0x460a8f10) at /home/tlin/Projects/gecko-dev/xpcom/threads/nsTimerImpl.cpp:621 #26 0x40ab597a in nsTimerEvent::Run (this=0x44e78170) at /home/tlin/Projects/gecko-dev/xpcom/threads/nsTimerImpl.cpp:711 #27 0x40ab4eb0 in nsThread::ProcessNextEvent (this=0x402025c0, aMayWait=false, aResult=0xbeadb7bf) at /home/tlin/Projects/gecko-dev/xpcom/threads/nsThread.cpp:770 #28 0x40abff48 in NS_ProcessNextEvent (aThread=0xbeadb670, aMayWait=false) at /home/tlin/Projects/gecko-dev/xpcom/glue/nsThreadUtils.cpp:265 #29 0x40c09098 in mozilla::ipc::MessagePump::Run (this=0x40201e50, aDelegate=0x402550c0) at /home/tlin/Projects/gecko-dev/ipc/glue/MessagePump.cpp:99 #30 0x40bfc2fc in MessageLoop::RunInternal (this=0x1000000) at /home/tlin/Projects/gecko-dev/ipc/chromium/src/base/message_loop.cc:229 #31 0x40bfc37a in MessageLoop::RunHandler (this=0x402550c0) at /home/tlin/Projects/gecko-dev/ipc/chromium/src/base/message_loop.cc:222 #32 MessageLoop::Run (this=0x402550c0) at /home/tlin/Projects/gecko-dev/ipc/chromium/src/base/message_loop.cc:196 #33 0x4132ed44 in nsBaseAppShell::Run (this=0x43d47100) at /home/tlin/Projects/gecko-dev/widget/xpwidgets/nsBaseAppShell.cpp:164 #34 0x417b2588 in nsAppStartup::Run (this=0x43d4b220) at /home/tlin/Projects/gecko-dev/toolkit/components/startup/nsAppStartup.cpp:278 #35 0x417c49ac in XREMain::XRE_mainRun (this=0xbeadba04) at /home/tlin/Projects/gecko-dev/toolkit/xre/nsAppRunner.cpp:4024 #36 0x417c7134 in XREMain::XRE_main (this=0xbeadba04, argc=<value optimized out>, argv=<value optimized out>, aAppData=0x235fc) at /home/tlin/Projects/gecko-dev/toolkit/xre/nsAppRunner.cpp:4095 #37 0x417c72a4 in XRE_main (argc=1, argv=0x40238178, aAppData=0x235fc, aFlags=<value optimized out>) at /home/tlin/Projects/gecko-dev/toolkit/xre/nsAppRunner.cpp:4309 #38 0x0000a54a in do_main (argc=1, argv=<value optimized out>) at /home/tlin/Projects/gecko-dev/b2g/app/nsBrowserApp.cpp:164 #39 b2g_main (argc=1, argv=<value optimized out>) at /home/tlin/Projects/gecko-dev/b2g/app/nsBrowserApp.cpp:290 #40 0x0000a2c4 in RunProcesses (argc=1, argv=0xbeadfc14) at /home/tlin/Projects/gecko-dev/b2g/app/B2GLoader.cpp:221 #41 main (argc=1, argv=0xbeadfc14) at /home/tlin/Projects/gecko-dev/b2g/app/B2GLoader.cpp:247
Summary: [Text selection] Refine and add more null pointer check in SelectionCarets.cpp → [Text selection] Refine and add more null pointer check in SelectionCarets.cpp and TouchCaret.cpp
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Assignee | ||
Comment 6•9 years ago
|
||
Assignee | ||
Updated•9 years ago
|
Summary: [Text selection] Refine and add more null pointer check in SelectionCarets.cpp and TouchCaret.cpp → [Text selection] Fix Mnw failed on b2g emulator after enabling selection carets
Assignee | ||
Updated•9 years ago
|
Attachment #8478162 -
Flags: review?(roc)
Attachment #8478162 -
Flags: feedback?(mtseng)
Assignee | ||
Updated•9 years ago
|
Attachment #8478163 -
Flags: review?(roc)
Attachment #8478163 -
Flags: feedback?(mtseng)
Assignee | ||
Updated•9 years ago
|
Attachment #8478164 -
Flags: review?(roc)
Attachment #8478164 -
Flags: feedback?(mtseng)
Attachment #8478162 -
Flags: review?(roc) → review+
Attachment #8478163 -
Flags: review?(roc) → review+
Attachment #8478164 -
Flags: review?(roc) → review+
Assignee | ||
Comment 7•9 years ago
|
||
Try result (with selection carets enabled): https://tbpl.mozilla.org/?tree=Try&rev=c6e5db1e8bba Try result (only touch caret enabled): https://tbpl.mozilla.org/?tree=Try&rev=a2fd0024f2d9
Updated•9 years ago
|
Attachment #8478162 -
Flags: feedback?(mtseng) → feedback+
Updated•9 years ago
|
Attachment #8478163 -
Flags: feedback?(mtseng) → feedback+
Updated•9 years ago
|
Attachment #8478164 -
Flags: feedback?(mtseng) → feedback+
Comment hidden (typo) |
Assignee | ||
Comment 9•9 years ago
|
||
Those patch need to be check in after bug 1056457. Thanks.
Comment 10•9 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/53719d03f70a https://hg.mozilla.org/integration/mozilla-inbound/rev/da880002e2af https://hg.mozilla.org/integration/mozilla-inbound/rev/6d59613b92df
Keywords: checkin-needed
Comment 11•9 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/53719d03f70a https://hg.mozilla.org/mozilla-central/rev/da880002e2af https://hg.mozilla.org/mozilla-central/rev/6d59613b92df
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla34
You need to log in
before you can comment on or make changes to this bug.
Description
•