[WK2] Add UNIX_DOMAIN_SOCKETS specific bits for supporting NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=110093

Patch by Sergio Villar Senin <svillar@igalia.com> on 2013-12-08
Reviewed by NOBODY (OOPS!).

Original patch by Balazs Kelemen <kbalazs@webkit.org>.

Adds the UNIX specific bits to support connections to the
NetworkProcess. Since the process of creating the pair of sockets
is exactly the same as in the PluginProcess, I've decided to
refactor it in ConnectionUnix::createPlatformConnection(). This
can be reused later to create a cross-platform solution and remove
all the ifdefs (see bug 110978).

* NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::createNetworkConnectionToWebProcess):
* Platform/CoreIPC/Connection.h: New ConnectionDescriptor helper class.
(CoreIPC::Connection::ConnectionDescriptor::clientIdentifier):
(CoreIPC::Connection::ConnectionDescriptor::serverIdentifier):
(CoreIPC::Connection::ConnectionDescriptor::ConnectionDescriptor):
* Platform/CoreIPC/unix/ConnectionUnix.cpp:
(CoreIPC::Connection::createPlatformConnection):
* PluginProcess/PluginProcess.cpp:
(WebKit::PluginProcess::createWebProcessConnection):
* UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::networkProcessCrashedOrFailedToLaunch):
(WebKit::NetworkProcessProxy::didCreateNetworkConnectionToWebProcess):
* WebProcess/WebProcess.cpp:
(WebKit::WebProcess::ensureNetworkProcessConnection):
Move CertificateInfo to WebCore https://bugs.webkit.org/show_bug.cgi?id=124720

Patch by Csaba Osztrogonác <ossy@webkit.org> on 2013-12-08
Reviewed by NOBODY (OOPS!).

Based on the patch by Kwang Yul Seo <skyul@company100.net>

Source/WebCore:

* GNUmakefile.list.am:
* PlatformEfl.cmake:
* PlatformGTK.cmake:
* WebCore.exp.in:
* WebCore.xcodeproj/project.pbxproj:
* platform/network/mac/CertificateInfo.h: Renamed from Source/WebKit2/Shared/mac/CertificateInfo.h.
(WebCore::CertificateInfo::setCertificateChain): Added, because WebCoreArgumentCoders needs it.
* platform/network/mac/CertificateInfoMac.mm: Renamed from Source/WebKit2/Shared/mac/CertificateInfo.mm.
(WebCore::CertificateInfo::CertificateInfo): Moved encode() and decode() to WebCoreArgumentCodersMac.mm.
* platform/network/soup/CertificateInfo.cpp: Copied from Source/WebKit2/Shared/WebCertificateInfo.h.
(WebCore::CertificateInfo::CertificateInfo): Moved encode() and decode() to WebCoreArgumentCodersSoup.cpp.
* platform/network/soup/CertificateInfo.h: Renamed from Source/WebKit2/Shared/soup/CertificateInfo.h.
(WebCore::CertificateInfo::setCertificate): Added, because WebCoreArgumentCoders needs it.
(WebCore::CertificateInfo::setTLSErrors): Added, because WebCoreArgumentCoders needs it.

Source/WebKit2:

* GNUmakefile.list.am:
* NetworkProcess/AsynchronousNetworkLoaderClient.cpp:
* NetworkProcess/NetworkProcess.h:
* NetworkProcess/NetworkProcess.messages.in:
* NetworkProcess/NetworkResourceLoader.cpp:
* NetworkProcess/mac/NetworkProcessMac.mm:
* PlatformEfl.cmake:
* PlatformGTK.cmake:
* Shared/API/c/mac/WKCertificateInfoMac.mm:
* Shared/Authentication/AuthenticationManager.h:
* Shared/Authentication/AuthenticationManager.messages.in:
* Shared/Authentication/mac/AuthenticationManager.mac.mm:
* Shared/UserMessageCoders.h:
(WebKit::UserMessageDecoder::baseDecode):
* Shared/WebCertificateInfo.h:
(WebKit::WebCertificateInfo::create):
(WebKit::WebCertificateInfo::certificateInfo):
(WebKit::WebCertificateInfo::WebCertificateInfo):
* Shared/WebCoreArgumentCoders.cpp:
(CoreIPC::::encode):
(CoreIPC::::decode):
* Shared/WebCoreArgumentCoders.h:
* Shared/mac/WebCoreArgumentCodersMac.mm:
(CoreIPC::::encodePlatformData):
(CoreIPC::::decodePlatformData):
* Shared/soup/CertificateInfo.cpp:
* Shared/soup/WebCoreArgumentCodersSoup.cpp:
(CoreIPC::::encodePlatformData):
(CoreIPC::::decodePlatformData):
* UIProcess/API/gtk/WebKitCertificateInfoPrivate.h:
* UIProcess/API/gtk/WebKitWebView.cpp:
(webkit_web_view_get_tls_info):
* UIProcess/Authentication/AuthenticationChallengeProxy.cpp:
(WebKit::AuthenticationChallengeProxy::useCredential):
* UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::didCommitLoad):
* UIProcess/WebFrameProxy.h:
* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didCommitLoadForFrame):
* UIProcess/WebPageProxy.h:
* UIProcess/WebPageProxy.messages.in:
* WebKit2.xcodeproj/project.pbxproj:
* WebProcess/Network/WebResourceLoader.cpp:
* WebProcess/Network/WebResourceLoader.h:
* WebProcess/Network/WebResourceLoader.messages.in:
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
* WebProcess/WebProcess.h:
* WebProcess/WebProcess.messages.in:
* WebProcess/soup/WebProcessSoup.cpp:
(WebKit::WebProcess::allowSpecificHTTPSCertificateForHost):
Make the ResourceRequest/Response primitives work in terms of platform agnostic CertificateInfo object
https://bugs.webkit.org/show_bug.cgi?id=124724

Reviewed by NOBODY (OOPS!).

Original patch by Kwang Yul Seo <skyul@company100.net> and Csaba Osztrogonác <ossy@webkit.org>.

Source/WebCore:

* GNUmakefile.list.am:
* PlatformEfl.cmake:
* WebCore.exp.in:
* WebCore.vcxproj/WebCore.vcxproj:
* WebCore.vcxproj/WebCore.vcxproj.filters:
* WebCore.xcodeproj/project.pbxproj:
* platform/network/CertificateInfo.h: Renamed from Source/WebCore/platform/network/soup/CertificateInfo.h.
(WebCore::CertificateInfo::certificate):
(WebCore::CertificateInfo::setCertificate):
(WebCore::CertificateInfo::tlsErrors):
(WebCore::CertificateInfo::setTLSErrors):
* platform/network/ResourceErrorBase.h:
(WebCore::ResourceErrorBase::certificateInfo):
(WebCore::ResourceErrorBase::setCertificateInfo):
* platform/network/ResourceResponseBase.h:
(WebCore::ResourceResponseBase::certificateInfo):
(WebCore::ResourceResponseBase::setCertificateInfo):
* platform/network/cf/CertificateInfoCFNet.cpp: Renamed from Source/WebCore/platform/network/mac/CertificateInfo.h.
(WebCore::CertificateInfo::CertificateInfo):
(WebCore::CertificateInfo::~CertificateInfo):
* platform/network/cf/ResourceResponse.h:
* platform/network/mac/ResourceResponseMac.mm:
(WebCore::ResourceResponse::setCertificateChain):
(WebCore::ResourceResponse::certificateChain):
* platform/network/soup/CertificateInfoSoup.cpp: Renamed from Source/WebCore/platform/network/soup/CertificateInfo.cpp.
(WebCore::CertificateInfo::CertificateInfo):
(WebCore::CertificateInfo::~CertificateInfo):
* platform/network/soup/ResourceError.h:
(WebCore::ResourceError::ResourceError):
(WebCore::ResourceError::tlsErrors):
(WebCore::ResourceError::setTLSErrors):
(WebCore::ResourceError::certificate):
(WebCore::ResourceError::setCertificate):
* platform/network/soup/ResourceErrorSoup.cpp:
(WebCore::ResourceError::platformCopy):
* platform/network/soup/ResourceResponse.h:
(WebCore::ResourceResponse::ResourceResponse):
(WebCore::ResourceResponse::soupMessageCertificate):
(WebCore::ResourceResponse::setSoupMessageCertificate):
(WebCore::ResourceResponse::soupMessageTLSErrors):
(WebCore::ResourceResponse::setSoupMessageTLSErrors):
* platform/network/soup/ResourceResponseSoup.cpp:
(WebCore::ResourceResponse::toSoupMessage):
(WebCore::ResourceResponse::updateFromSoupMessage):

Source/WebKit2:

* NetworkProcess/AsynchronousNetworkLoaderClient.cpp:
(WebKit::AsynchronousNetworkLoaderClient::didReceiveResponse):
* Shared/mac/WebCoreArgumentCodersMac.mm:
* Shared/soup/WebCoreArgumentCodersSoup.cpp:
(CoreIPC::::encodePlatformData):
(CoreIPC::::decodePlatformData):
* UIProcess/API/gtk/WebKitCertificateInfoPrivate.h:
(_WebKitCertificateInfo::_WebKitCertificateInfo):
* UIProcess/WebPageProxy.h:
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::didReceiveResponseWithCertificateInfo):
* WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):