Cannot log into gmail/facebook with private browsing enabled. A wrong storage session is used after a redirect. This is because ResourceHandle::willSendRequest() first sets storage session, and then calls the client. NetworkProcess client in particular doesn't preserve the storage session, because it cannot be serialized for IPC. I don't think that the client should be able to change storage session, even for WebKit1, where NSURLRequest is part of API. <rdar://problem/12896478>
Created attachment 180209 [details] proposed fix
Comment on attachment 180209 [details] proposed fix View in context: https://bugs.webkit.org/attachment.cgi?id=180209&action=review > Source/WebCore/platform/network/cf/ResourceHandleCFNet.cpp:565 > + // Client call may not preserve the session, especially it the request is sent over IPC. > + request.setStorageSession(d->m_storageSession.get()); s/especially it/especially if/ > Source/WebCore/platform/network/mac/ResourceHandleMac.mm:478 > + // Client call may not preserve the session, especially it the request is sent over IPC. > + request.setStorageSession(d->m_storageSession.get()); s/especially it/especially if/
Committed <http://trac.webkit.org/changeset/138191>.
It looks like this causes 12 test cases on Win7 to crash: http://build.webkit.org/results/Apple%20Win%207%20Release%20(Tests)/r138191%20(31080)/results.html
Filed bug 105563.