Bug 178751

Summary: Merge NetworkProcess::EnsurePrivateBrowsingSession and NetworkProcess::AddWebsiteDataStore into one message type
Product: WebKit Reporter: Alex Christensen <achristensen>
Component: New BugsAssignee: Alex Christensen <achristensen>
Status: RESOLVED FIXED    
Severity: Normal CC: beidson, berto, buildbot, cgarcia, danw, gustavo, mcatanzaro, ryanhaddad, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch
none
Patch none

Description Alex Christensen 2017-10-24 14:25:34 PDT
Merge NetworkProcess::EnsurePrivateBrowsingSession and NetworkProcess::AddWebsiteDataStore into one message type
Comment 1 Alex Christensen 2017-10-24 14:28:28 PDT
Created attachment 324724 [details]
Patch
Comment 2 Alex Christensen 2017-10-24 15:11:01 PDT
Created attachment 324734 [details]
Patch
Comment 3 Alex Christensen 2017-10-24 15:49:51 PDT
Created attachment 324741 [details]
Patch
Comment 4 Alex Christensen 2017-10-24 16:45:18 PDT
Created attachment 324753 [details]
Patch
Comment 5 Alex Christensen 2017-10-24 16:46:30 PDT
Created attachment 324755 [details]
Patch
Comment 6 Alex Christensen 2017-10-25 10:43:13 PDT
Created attachment 324848 [details]
Patch
Comment 7 Alex Christensen 2017-11-13 15:47:10 PST
Created attachment 326818 [details]
Patch
Comment 8 Alex Christensen 2017-11-13 15:48:28 PST
Comment on attachment 326818 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=326818&action=review

> Source/WebKit/NetworkProcess/mac/RemoteNetworkingContext.mm:99
> +    if (!sessionID.isEphemeral()) {
> +        bool result = SandboxExtension::consumePermanently(parameters.cookieStoragePathExtensionHandle);
> +        ASSERT_UNUSED(result, result);
> +    }

I reworked this part to only consume sandbox extensions if it's a persistent session because consuming empty sandbox extensions was succeeding and asserting.

> Source/WebKit/WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:62
> +        bool result = SandboxExtension::consumePermanently(parameters.cookieStoragePathExtensionHandle);

ditto
Comment 9 Alex Christensen 2017-11-13 15:51:04 PST
http://trac.webkit.org/r224791
Comment 10 Ryan Haddad 2017-11-14 09:35:14 PST
API test IndexedDB.StructuredCloneBackwardCompatibility is failing an assertion added with this change:

ASSERTION FAILED: result
/Volumes/Data/slave/highsierra-debug/build/Source/WebKit/NetworkProcess/mac/RemoteNetworkingContext.mm(98) : static void WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession(WebKit::WebsiteDataStoreParameters &&)
1   0x10e680b9d WTFCrash
2   0x10783ce78 WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession(WebKit::WebsiteDataStoreParameters&&)
3   0x1075d9ad1 WebKit::NetworkProcess::addWebsiteDataStore(WebKit::WebsiteDataStoreParameters&&)
4   0x10760dcba void IPC::callMemberFunctionImpl<WebKit::NetworkProcess, void (WebKit::NetworkProcess::*)(WebKit::WebsiteDataStoreParameters&&), std::__1::tuple<WebKit::WebsiteDataStoreParameters>, 0ul>(WebKit::NetworkProcess*, void (WebKit::NetworkProcess::*)(WebKit::WebsiteDataStoreParameters&&), std::__1::tuple<WebKit::WebsiteDataStoreParameters>&&, std::__1::integer_sequence<unsigned long, 0ul>)
5   0x10760da30 void IPC::callMemberFunction<WebKit::NetworkProcess, void (WebKit::NetworkProcess::*)(WebKit::WebsiteDataStoreParameters&&), std::__1::tuple<WebKit::WebsiteDataStoreParameters>, std::__1::integer_sequence<unsigned long, 0ul> >(std::__1::tuple<WebKit::WebsiteDataStoreParameters>&&, WebKit::NetworkProcess*, void (WebKit::NetworkProcess::*)(WebKit::WebsiteDataStoreParameters&&))
6   0x10760a9ef void IPC::handleMessage<Messages::NetworkProcess::AddWebsiteDataStore, WebKit::NetworkProcess, void (WebKit::NetworkProcess::*)(WebKit::WebsiteDataStoreParameters&&)>(IPC::Decoder&, WebKit::NetworkProcess*, void (WebKit::NetworkProcess::*)(WebKit::WebsiteDataStoreParameters&&))
7   0x1076097d6 WebKit::NetworkProcess::didReceiveNetworkProcessMessage(IPC::Connection&, IPC::Decoder&)
8   0x1075d86cb WebKit::NetworkProcess::didReceiveMessage(IPC::Connection&, IPC::Decoder&)
9   0x10738e2f3 IPC::Connection::dispatchMessage(IPC::Decoder&)
10  0x1073838d8 IPC::Connection::dispatchMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)
11  0x10738e8fa IPC::Connection::dispatchOneMessage()
12  0x1073a6bdd IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)::$_14::operator()()
13  0x1073a6b39 WTF::Function<void ()>::CallableWrapper<IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr<IPC::Decoder, std::__1::default_delete<IPC::Decoder> >)::$_14>::call()
14  0x10e6b61fb WTF::Function<void ()>::operator()() const
15  0x10e6d824d WTF::RunLoop::performWork()
16  0x10e6d89e4 WTF::RunLoop::performWork(void*)
17  0x7fff41f6b941 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
18  0x7fff4202333c __CFRunLoopDoSource0
19  0x7fff41f4e930 __CFRunLoopDoSources0
20  0x7fff41f4ddad __CFRunLoopRun
21  0x7fff41f4d607 CFRunLoopRunSpecific
22  0x7fff440143f6 -[NSRunLoop(NSRunLoop) runMode:beforeDate:]
23  0x7fff440142ce -[NSRunLoop(NSRunLoop) run]
24  0x7fff69821f07 _xpc_objc_main
25  0x7fff69820b86 xpc_main
26  0x10724712b main
27  0x7fff69556145 start

https://build.webkit.org/builders/Apple%20High%20Sierra%20Debug%20WK2%20%28Tests%29/builds/809
Comment 11 Alex Christensen 2017-11-14 11:50:43 PST
http://trac.webkit.org/r224827
Comment 12 Radar WebKit Bug Importer 2017-11-15 09:42:48 PST
<rdar://problem/35562290>
Comment 13 Alex Christensen 2017-11-30 21:32:44 PST
Regression fixed in https://bugs.webkit.org/show_bug.cgi?id=180235