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

Reviewed by Martin Robinson.

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:
* 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):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160308 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore: DataCloneError exception is not thrown when postMessage's second parameter is the source
port or the target port.

https://bugs.webkit.org/show_bug.cgi?id=124708

Patch by Michal Poteralski <m.poteralski@samsung.com> on 2013-12-09
Reviewed by Alexey Proskuryakov.

According to specification:
http://www.whatwg.org/specs/web-apps/current-work/multipage/web-messaging.html#dom-window-postmessage

If the method was invoked with a second argument transfer then if any of the objects in the
transfer are either the source port or the target port (if any), then a DataCloneError
exception should be thrown. Currently an InvalidStateError exception is thrown what is an
incorrect behaviour.

The proposed solution is change to the correct the exception value.

Tests: fast/dom/Window/postMessage-clone-port-error.html

* dom/MessagePort.cpp:
(WebCore::MessagePort::postMessage): Improve exception value

LayoutTests: DataCloneError exception is not thrown when postMessage's second parameter
is the source port or the target port.

https://bugs.webkit.org/show_bug.cgi?id=124708

Patch by Michal Poteralski <m.poteralski@samsung.com> on 2013-12-09
Reviewed by Alexey Proskuryakov.

Added layout test to check correctness of value thrown by postMessage:

* fast/dom/Window/postMessage-clone-port-error-expected.txt: Added.
* fast/dom/Window/postMessage-clone-port-error.html: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160309 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[WK2][Soup] Use didReceiveBuffer instead of didReceiveData
https://bugs.webkit.org/show_bug.cgi?id=118598

Reviewed by Gustavo Noronha Silva.

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

Switch from using didReceiveData to didReceiveBuffer for the Soup backend and
let SharedBuffer wrap a SoupBuffer. This is necessary because the NetworkProcess
only supports getting data via SharedBuffer.

Source/WebCore:

* GNUmakefile.list.am: Add the new SharedBufferSoup.cpp file to the list.
* PlatformEfl.cmake:
* PlatformGTK.cmake:
* PlatformNix.cmake:
* platform/SharedBuffer.cpp: We no longer used the no-op version of the platformFoo methods.
* platform/SharedBuffer.h: Ditto.
* platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:  Use didReceiveBuffer instead of didReceiveData.
* platform/network/ResourceHandleInternal.h: Have only a m_soupBuffer member instead of three to manage the buffer.
* platform/network/soup/GOwnPtrSoup.cpp: Add support for SoupBuffer.
* platform/network/soup/GOwnPtrSoup.h: Ditto.
* platform/network/soup/ResourceHandleSoup.cpp:
(WebCore::WebCoreSynchronousLoader::didReceiveData): ASSERT_NOT_REACHED here, since it should never be
called now.
(WebCore::WebCoreSynchronousLoader::didReceiveBuffer): Handle this call properly.
(WebCore::ResourceHandle::ensureReadBuffer): Now we package up our buffer into a SoupBuffer.
(WebCore::redirectSkipCallback): Use the new m_soupBuffer member.
(WebCore::cleanupSoupRequestOperation): Ditto.
(WebCore::nextMultipartResponsePartCallback): Ditto.
(WebCore::sendRequestCallback): Ditto.
(WebCore::readCallback):
* platform/soup/SharedBufferSoup.cpp: Added.

Source/WebKit/gtk:

* webkit/webkitdownload.cpp:
(DownloadClient::didReceiveData): Replace with ASSERT_NOT_REACHED.
(DownloadClient::didReceiveBuffer): Use this to process incoming data.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@160310 268f45cc-cd09-0410-ab3c-d52691b4dbfc
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):
[WK2] Guard Mac specific network process code with PLATFORM(MAC)
https://bugs.webkit.org/show_bug.cgi?id=125422

Mac specific code should be guarded to prevent compile failures on other platforms.

Patch by Brian Holt <brian.holt@samsung.com> on 2013-12-08
Reviewed by NOBODY (OOPS!).

* NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::continueWillSendRequest):
* WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::didReceiveResponseWithCertificateInfo):