Bug 200343
| Summary: | WebKit::ChildProcessProxy::sendMessage crash | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | wyt <vaintwyt> |
| Component: | New Bugs | Assignee: | Nobody <webkit-unassigned> |
| Status: | RESOLVED WONTFIX | ||
| Severity: | Normal | CC: | achristensen, beidson, cdumez |
| Priority: | P2 | ||
| Version: | WebKit Local Build | ||
| Hardware: | iPhone / iPad | ||
| OS: | All | ||
wyt
My App met a crash when it in the background, or active from background.
mabey connection() is BAD_ACCESS?
==== code ====
bool ChildProcessProxy::sendMessage(std::unique_ptr<IPC::Encoder> encoder, OptionSet<IPC::SendOption> sendOptions)
{
switch (state()) {
case State::Launching:
// If we're waiting for the child process to launch, we need to stash away the messages so we can send them once we have a connection.
m_pendingMessages.append(std::make_pair(WTFMove(encoder), sendOptions));
return true;
case State::Running:
return connection()->sendMessage(WTFMove(encoder), sendOptions); // look here
case State::Terminated:
return false;
}
return false;
}
==== crash ====
0WebKit
WebKit::ChildProcessProxy::sendMessage(std::__1::unique_ptr<IPC::Encoder, std::__1::default_delete<IPC::Encoder> >, WTF::OptionSet<IPC::SendOption>) (in WebKit)
1WebKit
bool WebKit::ChildProcessProxy::send<Messages::LegacyCustomProtocolManager::DidLoadData>(Messages::LegacyCustomProtocolManager::DidLoadData&&, unsigned long long, WTF::OptionSet<IPC::SendOption>) (in WebKit)
2WebKit
WebKit::LegacyCustomProtocolManagerProxy::didLoadData(unsigned long long, IPC::DataReference const&) (in WebKit)
3WebKit
-[WKCustomProtocolLoader connection:didReceiveData:] (in WebKit)
4CFNetwork
___65-[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:]_block_invoke (in CFNetwork)
5CFNetwork
-[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:] (in CFNetwork)
6CFNetwork
-[NSURLConnectionInternal _withActiveConnectionAndDelegate:] (in CFNetwork)
7CFNetwork
_NSURLConnectionDidReceiveData(_CFURLConnection*, __CFData const*, long, void const*) (in CFNetwork)
8CFNetwork
____ZN27URLConnectionClient_Classic29_delegate_didReceiveDataArrayEv_block_invoke (in CFNetwork)
9CFNetwork
____ZN27URLConnectionClient_Classic18_withDelegateAsyncEPKcU13block_pointerFvP16_CFURLConnectionPK33CFURLConnectionClientCurrent_VMaxE_block_invoke_2 (in CFNetwork)
10libdispatch
__dispatch_client_callout (in libdispatch.dylib)
11libdispatch
__dispatch_block_invoke_direct$VARIANT$mp (in libdispatch.dylib)
12CFNetwork
RunloopBlockContext::_invoke_block(void const*, void*) (in CFNetwork)
13CoreFoundation
_CFArrayApplyFunction (in CoreFoundation)
14CFNetwork
RunloopBlockContext::perform() (in CFNetwork)
15CFNetwork
MultiplexerSource::perform() (in CFNetwork)
16CFNetwork
MultiplexerSource::_perform(void*) (in CFNetwork)
17CoreFoundation
___CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ (in CoreFoundation)
18CoreFoundation
___CFRunLoopDoSource0 (in CoreFoundation)
19CoreFoundation
___CFRunLoopDoSources0 (in CoreFoundation)
20CoreFoundation
___CFRunLoopRun (in CoreFoundation)
21CoreFoundation
_CFRunLoopRunSpecific (in CoreFoundation)
22GraphicsServices
_GSEventRunModal (in GraphicsServices)
23UIKitCore
_UIApplicationMain (in UIKitCore)
24News
main (in News) main.m lineļ¼19
25libdyld
_start (in libdyld.dylib)
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Alex Christensen
1. Could you attach the entire crash log so we can see what type of crash it is?
2. Your app uses LegacyCustomProtocolManager which is not public API and we intend to remove.
Alex Christensen
The solution to this problem is to stop using WKBrowsingContextController's registerSchemeForCustomProtocol.