NSURLProtocol-WebKitSupport
NSURLProtocol-WebKitSupport copied to clipboard
WebKit::ChildProcessProxy::sendMessage crash 崩溃
crash堆栈日志如下:
0 | WebKit | 0x00000001ea9a9230 WebKit::ChildProcessProxy::sendMessage(std::__1::unique_ptr<IPC::Encoder, std::__1::default_deleteIPC::Encoder >, WTF::OptionSetIPC::SendOption) + 24 |
---|---|---|
1 | WebKit | 0x00000001eaaee84c bool WebKit::ChildProcessProxy::sendMessages::LegacyCustomProtocolManager::DidFailWithError(Messages::LegacyCustomProtocolManager::DidFailWithError&&, unsigned long long, WTF::OptionSetIPC::SendOption) + 128 |
2 | WebKit | 0x00000001eaaee7c0 WebKit::LegacyCustomProtocolManagerProxy::didFailWithError(unsigned long long, WebCore::ResourceError const&) + 40 |
3 | WebKit | 0x00000001ea84c290 -[WKCustomProtocolLoader connection:didFailWithError:] + 72 |
4 | CFNetwork | 0x00000001db7ded04 ___65-[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:]_block_invoke + 68 |
5 | CFNetwork | 0x00000001db566760 -[NSURLConnectionInternalConnection invokeForDelegate:] + 164 |
6 | CFNetwork | 0x00000001db55db44 -[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:] + 212 |
7 | CFNetwork | 0x00000001db56281c -[NSURLConnectionInternal _withConnectionAndDelegate:] + 60 |
8 | CFNetwork | 0x00000001db79d590 _NSURLConnectionDidFail(_CFURLConnection*, __CFError*, void const*) + 96 |
9 | CFNetwork | 0x00000001db6e7a3c ____ZN27URLConnectionClient_Classic17_delegate_didFailEP9__CFErrorU13block_pointerFvvE_block_invoke + 124 |
10 | CFNetwork | 0x00000001db6e528c ____ZN27URLConnectionClient_Classic18_withDelegateAsyncEPKcU13block_pointerFvP16_CFURLConnectionPK33CFURLConnectionClientCurrent_VMaxE_block_invoke_2 + 128 |
11 | libdispatch.dylib | 0x00000001da9c1884 __dispatch_client_callout + 20 |
12 | libdispatch.dylib | 0x00000001da9c4e5c __dispatch_block_invoke_direct + 252 |
13 | CFNetwork | 0x00000001db7bc5ec RunloopBlockContext::_invoke_block(void const*, void*) + 44 |
14 | CoreFoundation | 0x00000001daee1750 _CFArrayApplyFunction + 84 |
15 | CFNetwork | 0x00000001db7bc4b0 RunloopBlockContext::perform() + 132 |
16 | CFNetwork | 0x00000001db7bd96c MultiplexerSource::perform() + 376 |
17 | CFNetwork | 0x00000001db7bd618 MultiplexerSource::_perform(void*) + 64 |
18 | CoreFoundation | 0x00000001daf42444 _CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION + 28 |
19 | CoreFoundation | 0x00000001daf423c0 ___CFRunLoopDoSource0 + 92 |
20 | CoreFoundation | 0x00000001daf41ccc ___CFRunLoopDoSources0 + 260 |
21 | CoreFoundation | 0x00000001daf3c950 ___CFRunLoopRun + 988 |
22 | CoreFoundation | 0x00000001daf3c254 _CFRunLoopRunSpecific + 452 |
23 | GraphicsServices | 0x00000001dd17bd8c _GSEventRunModal + 108 |
24 | UIKitCore | 0x00000002082844c0 _UIApplicationMain + 216 |
25 | WKMainProject | 0x0000000104913284 main (main.m:14) |
26 | libdyld.dylib | 0x00000001da9f8fd8 _start + 4 |
我们项目中也使用wk_registerScheme注册 scheme,且注册有多个,有谁遇到过吗?
看下是不是这个原因 https://github.com/Yeatse/NSURLProtocol-WebKitSupport/issues/2
恩,那个回答我之前也看过,把WKWebView 所使用的 WKProcessPool 设置成单例变量还是会有这个 crash,应该是其它原因吧
确实最终都是挂在进程通信sendMessages,之前苹果在上层修过一个bug√=https://trac.webkit.org/changeset/244246/webkit, 但是还是存在crash,有老哥知道怎么复现吗
我也遇到的相同的crash 有解决方案吗
@wangjunhua1 你能复现这个 crash 吗?