WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
211957
[GTK] "ASSERTION FAILED: !m_adoptionIsRequired" when double clicking on a word
https://bugs.webkit.org/show_bug.cgi?id=211957
Summary
[GTK] "ASSERTION FAILED: !m_adoptionIsRequired" when double clicking on a word
Alicia Boya García
Reported
2020-05-15 07:51:11 PDT
How to reproduce: 1. Open a .txt file in the minibrowser. 2. Double click on a word. ASSERTION FAILED: !m_adoptionIsRequired #0 WTFCrash () at ../../Source/WTF/wtf/Assertions.cpp:303 #1 0x00007fefb67ef1b8 in CRASH_WITH_INFO(...) () at DerivedSources/ForwardingHeaders/wtf/Assertions.h:713 #2 0x00007fefb68000c7 in WTF::RefCountedBase::ref (this=0x7ffc7f2a1120) at DerivedSources/ForwardingHeaders/wtf/RefCounted.h:47 #3 0x00007fefb72ce403 in WTF::Ref<WebCore::SelectionData, WTF::DumbPtrTraits<WebCore::SelectionData> >::Ref (this=0x7ffc7f2a10e8, object=...) at DerivedSources/ForwardingHeaders/wtf/Ref.h:67 #4 0x00007fefb72cc115 in WebKit::WebSelectionData::WebSelectionData (this=0x7ffc7f2a10e8, data=...) at ../../Source/WebKit/Shared/gtk/WebSelectionData.cpp:35 #5 0x00007fefb7acae59 in WebKit::WebPlatformStrategies::writeToClipboard (this=0x7fefc1d2f3a0 <WebKit::WebPlatformStrategies::initialize()::platformStrategies>, pasteboardName="PRIMARY", selectionData=...) at ../../Source/WebKit/WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:328 #6 0x00007fefb9fdc7b7 in WebCore::Pasteboard::write (this=0x7fef9fd23888, pasteboardContent=...) at ../../Source/WebCore/platform/gtk/PasteboardGtk.cpp:190 #7 0x00007fefb7af88d4 in WebKit::WebEditorClient::updateGlobalSelection (this=0x7fef9fdf5288, frame=0x7fef9fd82000) at ../../Source/WebKit/WebProcess/WebCoreSupport/gtk/WebEditorClientGtk.cpp:148 #8 0x00007fefb7abe720 in WebKit::WebEditorClient::respondToChangedSelection (this=0x7fef9fdf5288, frame=0x7fef9fd82000) at ../../Source/WebKit/WebProcess/WebCoreSupport/WebEditorClient.cpp:245 #9 0x00007fefb9497d07 in WebCore::Editor::respondToChangedSelection (this=0x7fef9fd69580, options=...) at ../../Source/WebCore/editing/Editor.cpp:3649 #10 0x00007fefb94a3d34 in WebCore::FrameSelection::setSelectionWithoutUpdatingAppearance (this=0x7fef9fd68130, newSelectionPossiblyWithoutDirection=..., options=..., align=WebCore::FrameSelection::AlignCursorOnScrollIfNeeded, granularity=WebCore::WordGranularity) at ../../Source/WebCore/editing/FrameSelection.cpp:397 #11 0x00007fefb94a3e0d in WebCore::FrameSelection::setSelection (this=0x7fef9fd68130, selection=..., options=..., intent=..., align=WebCore::FrameSelection::AlignCursorOnScrollIfNeeded, granularity=WebCore::WordGranularity) at ../../Source/WebCore/editing/FrameSelection.cpp:408 #12 0x00007fefb94a3749 in WebCore::FrameSelection::setSelectionByMouseIfDifferent (this=0x7fef9fd68130, passedNewSelection=..., granularity=WebCore::WordGranularity, endpointsAdjustmentMode=WebCore::FrameSelection::EndPointsAdjustmentMode::DoNotAdjust) at ../../Source/WebCore/editing/FrameSelection.cpp:326 #13 0x00007fefb9bf0bdd in WebCore::EventHandler::updateSelectionForMouseDownDispatchingSelectStart (this=0x7fef9fd80000, targetNode=0x7fef9feba840, selection=..., granularity=WebCore::WordGranularity) at ../../Source/WebCore/page/EventHandler.cpp:549 #14 0x00007fefb9bf0d74 in WebCore::EventHandler::selectClosestWordFromHitTestResult (this=0x7fef9fd80000, result=..., appendTrailingWhitespace=WebCore::DontAppendTrailingWhitespace) at ../../Source/WebCore/page/EventHandler.cpp:569 #15 0x00007fefb9bf0e55 in WebCore::EventHandler::selectClosestWordFromMouseEvent (this=0x7fef9fd80000, result=...) at ../../Source/WebCore/page/EventHandler.cpp:581 #16 0x00007fefb9bf13df in WebCore::EventHandler::handleMousePressEventDoubleClick (this=0x7fef9fd80000, event=...) at ../../Source/WebCore/page/EventHandler.cpp:652 #17 0x00007fefb9bf252c in WebCore::EventHandler::handleMousePressEvent (this=0x7fef9fd80000, event=...) at ../../Source/WebCore/page/EventHandler.cpp:849 #18 0x00007fefb9bf624c in WebCore::EventHandler::handleMousePressEvent (this=0x7fef9fd80000, platformMouseEvent=...) at ../../Source/WebCore/page/EventHandler.cpp:1851 #19 0x00007fefba52e190 in WebCore::UserInputBridge::handleMousePressEvent (this=0x7fef9fdff660, mouseEvent=...) at ../../Source/WebCore/replay/UserInputBridge.cpp:57 #20 0x00007fefb7b15a7b in WebKit::handleMouseEvent (mouseEvent=..., page=0x7fef50cf6000) at ../../Source/WebKit/WebProcess/WebPage/WebPage.cpp:2713 #21 0x00007fefb7b15d19 in WebKit::WebPage::mouseEvent (this=0x7fef50cf6000, mouseEvent=...) at ../../Source/WebKit/WebProcess/WebPage/WebPage.cpp:2780 #22 0x00007fefb6d9923c in IPC::callMemberFunctionImpl<WebKit::WebPage, void (WebKit::WebPage::*)(WebKit::WebMouseEvent const&), std::tuple<WebKit::WebMouseEvent>, 0ul> (object=0x7fef50cf6000, function= (void (WebKit::WebPage::*)(WebKit::WebPage * const, const WebKit::WebMouseEvent &)) 0x7fefb7b15b60 <WebKit::WebPage::mouseEvent(WebKit::WebMouseEvent const&)>, args=...) at ../../Source/WebKit/Platform/IPC/HandleMessage.h:41 #23 0x00007fefb6d91204 in IPC::callMemberFunction<WebKit::WebPage, void (WebKit::WebPage::*)(WebKit::WebMouseEvent const&), std::tuple<WebKit::WebMouseEvent>, std::integer_sequence<unsigned long, 0ul> > (args=..., object=0x7fef50cf6000, function=(void (WebKit::WebPage::*)(WebKit::WebPage * const, const WebKit::WebMouseEvent &)) 0x7fefb7b15b60 <WebKit::WebPage::mouseEvent(WebKit::WebMouseEvent const&)>) at ../../Source/WebKit/Platform/IPC/HandleMessage.h:47 #24 0x00007fefb6d85db4 in IPC::handleMessage<Messages::WebPage::MouseEvent, WebKit::WebPage, void (WebKit::WebPage::*)(WebKit::WebMouseEvent const&)> (decoder=..., object=0x7fef50cf6000, function= (void (WebKit::WebPage::*)(WebKit::WebPage * const, const WebKit::WebMouseEvent &)) 0x7fefb7b15b60 <WebKit::WebPage::mouseEvent(WebKit::WebMouseEvent const&)>) at ../../Source/WebKit/Platform/IPC/HandleMessage.h:114 #25 0x00007fefb6d7ec3e in WebKit::WebPage::didReceiveWebPageMessage (this=0x7fef50cf6000, connection=..., decoder=...) at DerivedSources/WebKit/WebPageMessageReceiver.cpp:1062 #26 0x00007fefb7b1bb33 in WebKit::WebPage::didReceiveMessage (this=0x7fef50cf6000, connection=..., decoder=...) at ../../Source/WebKit/WebProcess/WebPage/WebPage.cpp:4594 #27 0x00007fefb71adfe9 in IPC::MessageReceiverMap::dispatchMessage (this=0x7fef9fdf3070, connection=..., decoder=...) at ../../Source/WebKit/Platform/IPC/MessageReceiverMap.cpp:123 #28 0x00007fefb77b7167 in WebKit::WebProcess::didReceiveMessage (this=0x7fef9fdf3000, connection=..., decoder=...) at ../../Source/WebKit/WebProcess/WebProcess.cpp:757 #29 0x00007fefb719094d in IPC::Connection::dispatchMessage (this=0x7fef9fde5000, decoder=...) at ../../Source/WebKit/Platform/IPC/Connection.cpp:996 #30 0x00007fefb7190f66 in IPC::Connection::dispatchMessage (this=0x7fef9fde5000, message=std::unique_ptr<IPC::Decoder> = {...}) at ../../Source/WebKit/Platform/IPC/Connection.cpp:1065 #31 0x00007fefb7191438 in IPC::Connection::dispatchOneIncomingMessage (this=0x7fef9fde5000) at ../../Source/WebKit/Platform/IPC/Connection.cpp:1134 #32 0x00007fefb71906c0 in IPC::Connection::<lambda()>::operator()(void) (__closure=0x7fef9fd3efe8) at ../../Source/WebKit/Platform/IPC/Connection.cpp:973 #33 0x00007fefb7196954 in WTF::Detail::CallableWrapper<IPC::Connection::enqueueIncomingMessage(std::unique_ptr<IPC::Decoder>)::<lambda()>, void>::call(void) (this=0x7fef9fd3efe0) at DerivedSources/ForwardingHeaders/wtf/Function.h:52 #34 0x00007fefb67f2557 in WTF::Function<void ()>::operator()() const (this=0x7ffc7f2a2db8) at DerivedSources/ForwardingHeaders/wtf/Function.h:84 #35 0x00007fefa8d7be8d in WTF::RunLoop::performWork (this=0x7fef9fdf8000) at ../../Source/WTF/wtf/RunLoop.cpp:119 #36 0x00007fefa8df8456 in WTF::RunLoop::<lambda(gpointer)>::operator()(gpointer) const (__closure=0x0, userData=0x7fef9fdf8000) at ../../Source/WTF/wtf/glib/RunLoopGLib.cpp:68 #37 0x00007fefa8df847a in WTF::RunLoop::<lambda(gpointer)>::_FUN(gpointer) () at ../../Source/WTF/wtf/glib/RunLoopGLib.cpp:70 #38 0x00007fefa8df8408 in WTF::<lambda(GSource*, GSourceFunc, gpointer)>::operator()(GSource *, GSourceFunc, gpointer) const (__closure=0x0, source=0x24c4640, callback=0x7fefa8df845d <WTF::RunLoop::<lambda(gpointer)>::_FUN(gpointer)>, userData=0x7fef9fdf8000) at ../../Source/WTF/wtf/glib/RunLoopGLib.cpp:45 #39 0x00007fefa8df8438 in WTF::<lambda(GSource*, GSourceFunc, gpointer)>::_FUN(GSource *, GSourceFunc, gpointer) () at ../../Source/WTF/wtf/glib/RunLoopGLib.cpp:46 #40 0x00007fefa25b692f in g_main_dispatch () at ../../Source/glib-2.58.1/glib/gmain.c:3182 #41 g_main_context_dispatch () at ../../Source/glib-2.58.1/glib/gmain.c:3847 #42 0x00007fefa25b6cc0 in g_main_context_iterate () at ../../Source/glib-2.58.1/glib/gmain.c:3920 #43 0x00007fefa25b6fd3 in g_main_loop_run () at ../../Source/glib-2.58.1/glib/gmain.c:4116 #44 0x00007fefa8df8953 in WTF::RunLoop::run () at ../../Source/WTF/wtf/glib/RunLoopGLib.cpp:96 #45 0x00007fefb7b9f624 in WebKit::AuxiliaryProcessMain<WebKit::WebProcess, WebKit::WebProcessMainGtk> (argc=3, argv=0x7ffc7f2a3188) at ../../Source/WebKit/Shared/AuxiliaryProcessMain.h:68 #46 0x00007fefb7b9bdcb in WebKit::WebProcessMain (argc=3, argv=0x7ffc7f2a3188) at ../../Source/WebKit/WebProcess/gtk/WebProcessMainGtk.cpp:66 #47 0x0000000000400c55 in main (argc=3, argv=0x7ffc7f2a3188) at ../../Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp:45
Attachments
Patch
(48.99 KB, patch)
2020-05-17 05:14 PDT
,
Carlos Garcia Campos
aperez
: review+
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Carlos Garcia Campos
Comment 1
2020-05-15 08:07:47 PDT
hmm, I guess we can't stack allocate SelectionData because it's ref counted. I'll fix it.
Carlos Garcia Campos
Comment 2
2020-05-17 05:14:19 PDT
Created
attachment 399587
[details]
Patch
EWS Watchlist
Comment 3
2020-05-17 05:15:17 PDT
Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See
http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API
Carlos Garcia Campos
Comment 4
2020-05-18 01:37:46 PDT
Committed
r261802
: <
https://trac.webkit.org/changeset/261802
>
Adrian Perez
Comment 5
2020-05-19 12:36:25 PDT
***
Bug 212070
has been marked as a duplicate of this bug. ***
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug