RESOLVED FIXED Bug 197426
Regression(PSON) URL scheme handlers can no longer respond asynchronously
https://bugs.webkit.org/show_bug.cgi?id=197426
Summary Regression(PSON) URL scheme handlers can no longer respond asynchronously
Chris Dumez
Reported 2019-04-30 12:08:55 PDT
URL scheme handlers can no longer respond asynchronously or the task will be stopped before it gets a chance to finish.
Attachments
Patch (13.21 KB, patch)
2019-04-30 12:27 PDT, Chris Dumez
no flags
Patch (13.64 KB, patch)
2019-04-30 19:04 PDT, Chris Dumez
no flags
Chris Dumez
Comment 1 2019-04-30 12:09:11 PDT
Chris Dumez
Comment 2 2019-04-30 12:27:02 PDT
Chris Dumez
Comment 3 2019-04-30 14:11:13 PDT
Comment on attachment 368587 [details] Patch Clearing flags on attachment: 368587 Committed r244802: <https://trac.webkit.org/changeset/244802>
Chris Dumez
Comment 4 2019-04-30 14:11:15 PDT
All reviewed patches have been landed. Closing bug.
Shawn Roberts
Comment 5 2019-04-30 16:35:32 PDT
After changes in https://trac.webkit.org/changeset/244802 The following API test is crashing on Debug builds TestWebKitAPI.URLSchemeHandler.Leaks2 ASSERTION FAILED: result.isNewEntry /Volumes/Data/slave/highsierra-debug/build/Source/WebKit/UIProcess/WebURLSchemeHandler.cpp(54) : void WebKit::WebURLSchemeHandler::startTask(WebKit::WebPageProxy &, WebKit::WebProcessProxy &, uint64_t, WebCore::ResourceRequest &&, WebKit::SyncLoadCompletionHandler &&) 1 0x1034bede9 WTFCrash 2 0x10899289b WTFCrashWithInfo(int, char const*, char const*, int) 3 0x10957645a WebKit::WebURLSchemeHandler::startTask(WebKit::WebPageProxy&, WebKit::WebProcessProxy&, unsigned long long, WebCore::ResourceRequest&&, WTF::CompletionHandler<void (WebCore::ResourceResponse const&, WebCore::ResourceError const&, IPC::DataReference const&)>&&) 4 0x1094a84a6 WebKit::WebPageProxy::startURLSchemeTaskShared(WTF::Ref<WebKit::WebProcessProxy, WTF::DumbPtrTraits<WebKit::WebProcessProxy> >&&, WebKit::URLSchemeTaskParameters&&) 5 0x1094a8252 WebKit::WebPageProxy::startURLSchemeTask(WebKit::URLSchemeTaskParameters&&)
Chris Dumez
Comment 6 2019-04-30 16:37:56 PDT
(In reply to Shawn Roberts from comment #5) > After changes in https://trac.webkit.org/changeset/244802 > > The following API test is crashing on Debug builds > > TestWebKitAPI.URLSchemeHandler.Leaks2 > > ASSERTION FAILED: result.isNewEntry > > /Volumes/Data/slave/highsierra-debug/build/Source/WebKit/UIProcess/ > WebURLSchemeHandler.cpp(54) : void > WebKit::WebURLSchemeHandler::startTask(WebKit::WebPageProxy &, > WebKit::WebProcessProxy &, uint64_t, WebCore::ResourceRequest &&, > WebKit::SyncLoadCompletionHandler &&) > 1 0x1034bede9 WTFCrash > 2 0x10899289b WTFCrashWithInfo(int, char const*, char const*, int) > 3 0x10957645a > WebKit::WebURLSchemeHandler::startTask(WebKit::WebPageProxy&, > WebKit::WebProcessProxy&, unsigned long long, WebCore::ResourceRequest&&, > WTF::CompletionHandler<void (WebCore::ResourceResponse const&, > WebCore::ResourceError const&, IPC::DataReference const&)>&&) > 4 0x1094a84a6 > WebKit::WebPageProxy::startURLSchemeTaskShared(WTF::Ref<WebKit:: > WebProcessProxy, WTF::DumbPtrTraits<WebKit::WebProcessProxy> >&&, > WebKit::URLSchemeTaskParameters&&) > 5 0x1094a8252 > WebKit::WebPageProxy::startURLSchemeTask(WebKit::URLSchemeTaskParameters&&) Looking now.
Chris Dumez
Comment 8 2019-04-30 16:42:31 PDT
ASSERTION FAILED: result.isNewEntry /Volumes/Data/slave/highsierra-debug/build/Source/WebKit/UIProcess/WebURLSchemeHandler.cpp(54) : void WebKit::WebURLSchemeHandler::startTask(WebKit::WebPageProxy &, WebKit::WebProcessProxy &, uint64_t, WebCore::ResourceRequest &&, WebKit::SyncLoadCompletionHandler &&) 1 0x1034bede9 WTFCrash 2 0x10899289b WTFCrashWithInfo(int, char const*, char const*, int) 3 0x10957645a WebKit::WebURLSchemeHandler::startTask(WebKit::WebPageProxy&, WebKit::WebProcessProxy&, unsigned long long, WebCore::ResourceRequest&&, WTF::CompletionHandler<void (WebCore::ResourceResponse const&, WebCore::ResourceError const&, IPC::DataReference const&)>&&) 4 0x1094a84a6 WebKit::WebPageProxy::startURLSchemeTaskShared(WTF::Ref<WebKit::WebProcessProxy, WTF::DumbPtrTraits<WebKit::WebProcessProxy> >&&, WebKit::URLSchemeTaskParameters&&) 5 0x1094a8252 WebKit::WebPageProxy::startURLSchemeTask(WebKit::URLSchemeTaskParameters&&) 6 0x109f7d0aa void IPC::callMemberFunctionImpl<WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(WebKit::URLSchemeTaskParameters&&), std::__1::tuple<WebKit::URLSchemeTaskParameters>, 0ul>(WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(WebKit::URLSchemeTaskParameters&&), std::__1::tuple<WebKit::URLSchemeTaskParameters>&&, std::__1::integer_sequence<unsigned long, 0ul>) 7 0x109f7d000 void IPC::callMemberFunction<WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(WebKit::URLSchemeTaskParameters&&), std::__1::tuple<WebKit::URLSchemeTaskParameters>, std::__1::integer_sequence<unsigned long, 0ul> >(std::__1::tuple<WebKit::URLSchemeTaskParameters>&&, WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(WebKit::URLSchemeTaskParameters&&)) 8 0x109ee9ebe void IPC::handleMessage<Messages::WebPageProxy::StartURLSchemeTask, WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(WebKit::URLSchemeTaskParameters&&)>(IPC::Decoder&, WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(WebKit::URLSchemeTaskParameters&&)) 9 0x109eda7ba WebKit::WebPageProxy::didReceiveMessage(IPC::Connection&, IPC::Decoder&) 10 0x108a69aca IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&, IPC::Decoder&) 11 0x109241954 WebKit::AuxiliaryProcessProxy::dispatchMessage(IPC::Connection&, IPC::Decoder&) 12 0x10956c0da WebKit::WebProcessProxy::didReceiveMessage(IPC::Connection&, IPC::Decoder&) 13 0x1089f277c IPC::Connection::dispatchMessage(IPC::Decoder&) 14 0x1089e48a1 IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >) 15 0x1089efbd1 IPC::Connection::dispatchIncomingMessages() 16 0x108a146a2 IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)::$_14::operator()() 17 0x108a145c9 WTF::Function<void ()>::CallableWrapper<IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)::$_14>::call() 18 0x1034e95cd WTF::Function<void ()>::operator()() const 19 0x10354bdb3 WTF::RunLoop::performWork() 20 0x10354c744 WTF::RunLoop::performWork(void*) 21 0x7fff514c7011 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ 22 0x7fff5157e8ec __CFRunLoopDoSource0 23 0x7fff514a9fc0 __CFRunLoopDoSources0 24 0x7fff514a943d __CFRunLoopRun 25 0x7fff514a8c97 CFRunLoopRunSpecific 26 0x7fff535c0e76 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] 27 0x102333b62 TestWebKitAPI::Util::spinRunLoop(unsigned long long) 28 0x10243adfa runUntilTasksInFlight(unsigned long) 29 0x10243b39c URLSchemeHandler_Leaks2_Test::TestBody() 30 0x1025158be void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) 31 0x1024bc7eb void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) TestWebKitAPI.URLSchemeHandler.Leaks2 Crashed
Chris Dumez
Comment 9 2019-04-30 16:50:43 PDT
Reopening due to API test failure.
Chris Dumez
Comment 10 2019-04-30 16:56:16 PDT
Reverted r244802 for reason: Caused an API test failure Committed r244812: <https://trac.webkit.org/changeset/244812>
Chris Dumez
Comment 11 2019-04-30 19:04:40 PDT
WebKit Commit Bot
Comment 12 2019-04-30 19:45:16 PDT
Comment on attachment 368646 [details] Patch Clearing flags on attachment: 368646 Committed r244819: <https://trac.webkit.org/changeset/244819>
WebKit Commit Bot
Comment 13 2019-04-30 19:45:18 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.