diff options
Diffstat (limited to 'Source/WebKit2/WebProcess/soup')
6 files changed, 57 insertions, 392 deletions
diff --git a/Source/WebKit2/WebProcess/soup/WebKitSoupRequestGeneric.cpp b/Source/WebKit2/WebProcess/soup/WebKitSoupRequestGeneric.cpp deleted file mode 100644 index 55c50375a..000000000 --- a/Source/WebKit2/WebProcess/soup/WebKitSoupRequestGeneric.cpp +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright (C) 2012 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#include "config.h" -#include "WebKitSoupRequestGeneric.h" - -#include <wtf/text/CString.h> - -#if !ENABLE(CUSTOM_PROTOCOLS) -#include "WebProcess.h" -#include "WebSoupRequestManager.h" -#endif - -using namespace WebKit; - -G_DEFINE_TYPE(WebKitSoupRequestGeneric, webkit_soup_request_generic, SOUP_TYPE_REQUEST) - -struct _WebKitSoupRequestGenericPrivate { - CString mimeType; - goffset contentLength; -}; - -static void webkitSoupRequestGenericFinalize(GObject* object) -{ - WEBKIT_SOUP_REQUEST_GENERIC(object)->priv->~WebKitSoupRequestGenericPrivate(); - G_OBJECT_CLASS(webkit_soup_request_generic_parent_class)->finalize(object); -} - -static void webkit_soup_request_generic_init(WebKitSoupRequestGeneric* request) -{ - WebKitSoupRequestGenericPrivate* priv = G_TYPE_INSTANCE_GET_PRIVATE(request, WEBKIT_TYPE_SOUP_REQUEST_GENERIC, WebKitSoupRequestGenericPrivate); - request->priv = priv; - new (priv) WebKitSoupRequestGenericPrivate(); -} - -static void webkitSoupRequestGenericSendAsync(SoupRequest* request, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer userData) -{ -#if ENABLE(CUSTOM_PROTOCOLS) - CustomProtocolManagerImpl* customProtocolManager = WEBKIT_SOUP_REQUEST_GENERIC_GET_CLASS(request)->customProtocolManager; - ASSERT(customProtocolManager); - customProtocolManager->send(g_task_new(request, cancellable, callback, userData)); -#else - WebProcess::shared().supplement<WebSoupRequestManager>()->send(g_task_new(request, cancellable, callback, userData)); -#endif -} - -static GInputStream* webkitSoupRequestGenericSendFinish(SoupRequest* request, GAsyncResult* result, GError** error) -{ - g_return_val_if_fail(g_task_is_valid(result, request), 0); -#if ENABLE(CUSTOM_PROTOCOLS) - CustomProtocolManagerImpl* customProtocolManager = WEBKIT_SOUP_REQUEST_GENERIC_GET_CLASS(request)->customProtocolManager; - ASSERT(customProtocolManager); - return customProtocolManager->finish(G_TASK(result), error); -#else - return WebProcess::shared().supplement<WebSoupRequestManager>()->finish(G_TASK(result), error); -#endif -} - -static goffset webkitSoupRequestGenericGetContentLength(SoupRequest* request) -{ - return WEBKIT_SOUP_REQUEST_GENERIC(request)->priv->contentLength; -} - -static const char* webkitSoupRequestGenericGetContentType(SoupRequest* request) -{ - return WEBKIT_SOUP_REQUEST_GENERIC(request)->priv->mimeType.data(); -} - -static void webkit_soup_request_generic_class_init(WebKitSoupRequestGenericClass* requestGenericClass) -{ - GObjectClass* gObjectClass = G_OBJECT_CLASS(requestGenericClass); - gObjectClass->finalize = webkitSoupRequestGenericFinalize; - - SoupRequestClass* requestClass = SOUP_REQUEST_CLASS(requestGenericClass); - requestClass->send_async = webkitSoupRequestGenericSendAsync; - requestClass->send_finish = webkitSoupRequestGenericSendFinish; - requestClass->get_content_length = webkitSoupRequestGenericGetContentLength; - requestClass->get_content_type = webkitSoupRequestGenericGetContentType; - - g_type_class_add_private(requestGenericClass, sizeof(WebKitSoupRequestGenericPrivate)); -} - -void webkitSoupRequestGenericSetContentLength(WebKitSoupRequestGeneric* request, goffset contentLength) -{ - request->priv->contentLength = contentLength; -} - -void webkitSoupRequestGenericSetContentType(WebKitSoupRequestGeneric* request, const char* mimeType) -{ - request->priv->mimeType = mimeType; -} diff --git a/Source/WebKit2/WebProcess/soup/WebKitSoupRequestGeneric.h b/Source/WebKit2/WebProcess/soup/WebKitSoupRequestGeneric.h deleted file mode 100644 index 5c5d3ad2d..000000000 --- a/Source/WebKit2/WebProcess/soup/WebKitSoupRequestGeneric.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (C) 2012 Igalia S.L. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public License - * along with this library; see the file COPYING.LIB. If not, write to - * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, - * Boston, MA 02110-1301, USA. - */ - -#ifndef WebKitSoupRequestGeneric_h -#define WebKitSoupRequestGeneric_h - -#include <glib-object.h> -#include <libsoup/soup.h> - -#if ENABLE(CUSTOM_PROTOCOLS) -#include "CustomProtocolManagerImpl.h" -#endif - -G_BEGIN_DECLS - -#define WEBKIT_TYPE_SOUP_REQUEST_GENERIC (webkit_soup_request_generic_get_type()) -#define WEBKIT_SOUP_REQUEST_GENERIC(object) (G_TYPE_CHECK_INSTANCE_CAST((object), WEBKIT_TYPE_SOUP_REQUEST_GENERIC, WebKitSoupRequestGeneric)) -#define WEBKIT_IS_SOUP_REQUEST_GENERIC(object) (G_TYPE_CHECK_INSTANCE_TYPE((object), WEBKIT_TYPE_SOUP_REQUEST_GENERIC)) -#define WEBKIT_SOUP_REQUEST_GENERIC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_SOUP_REQUEST_GENERIC, WebKitSoupRequestGenericClass)) -#define WEBKIT_IS_SOUP_REQUEST_GENERIC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_SOUP_REQUEST_GENERIC)) -#define WEBKIT_SOUP_REQUEST_GENERIC_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_SOUP_REQUEST_GENERIC, WebKitSoupRequestGenericClass)) - -typedef struct _WebKitSoupRequestGeneric WebKitSoupRequestGeneric; -typedef struct _WebKitSoupRequestGenericClass WebKitSoupRequestGenericClass; -typedef struct _WebKitSoupRequestGenericPrivate WebKitSoupRequestGenericPrivate; - -struct _WebKitSoupRequestGeneric { - SoupRequest parent; - - WebKitSoupRequestGenericPrivate *priv; -}; - -struct _WebKitSoupRequestGenericClass { - SoupRequestClass parent; - -#if ENABLE(CUSTOM_PROTOCOLS) - WebKit::CustomProtocolManagerImpl* customProtocolManager; -#endif -}; - -GType webkit_soup_request_generic_get_type(); - -void webkitSoupRequestGenericSetContentLength(WebKitSoupRequestGeneric*, goffset contentLength); -void webkitSoupRequestGenericSetContentType(WebKitSoupRequestGeneric*, const char* mimeType); - -G_END_DECLS - -#endif // WebKitSoupRequestGeneric_h diff --git a/Source/WebKit2/WebProcess/soup/WebKitSoupRequestInputStream.cpp b/Source/WebKit2/WebProcess/soup/WebKitSoupRequestInputStream.cpp index 852a585d6..cfb5b10cc 100644 --- a/Source/WebKit2/WebProcess/soup/WebKitSoupRequestInputStream.cpp +++ b/Source/WebKit2/WebProcess/soup/WebKitSoupRequestInputStream.cpp @@ -20,24 +20,21 @@ #include "config.h" #include "WebKitSoupRequestInputStream.h" -#include <wtf/OwnPtr.h> -#include <wtf/PassOwnPtr.h> -#include <wtf/Threading.h> -#include <wtf/gobject/GRefPtr.h> +#include <wtf/MainThread.h> +#include <wtf/glib/GRefPtr.h> +#include <wtf/glib/GUniquePtr.h> struct AsyncReadData { - AsyncReadData(GSimpleAsyncResult* result, void* buffer, gsize count, GCancellable* cancellable) - : result(result) + AsyncReadData(GRefPtr<GTask>&& task, void* buffer, gsize count) + : task(WTFMove(task)) , buffer(buffer) , count(count) - , cancellable(cancellable) { } - GRefPtr<GSimpleAsyncResult> result; + GRefPtr<GTask> task; void* buffer; size_t count; - GRefPtr<GCancellable> cancellable; }; struct _WebKitSoupRequestInputStreamPrivate { @@ -45,32 +42,29 @@ struct _WebKitSoupRequestInputStreamPrivate { uint64_t bytesReceived; uint64_t bytesRead; - Mutex readLock; - OwnPtr<AsyncReadData> pendingAsyncRead; + GUniquePtr<GError> error; + + std::unique_ptr<AsyncReadData> pendingAsyncRead; }; G_DEFINE_TYPE(WebKitSoupRequestInputStream, webkit_soup_request_input_stream, G_TYPE_MEMORY_INPUT_STREAM) -static void webkitSoupRequestInputStreamReadAsyncResultComplete(WebKitSoupRequestInputStream* stream, GSimpleAsyncResult* result, void* buffer, gsize count, GCancellable* cancellable) +static void webkitSoupRequestInputStreamReadAsyncResultComplete(GTask* task, void* buffer, gsize count) { - GError* error = 0; - gssize bytesRead = G_INPUT_STREAM_GET_CLASS(stream)->read_fn(G_INPUT_STREAM(stream), buffer, count, cancellable, &error); + WebKitSoupRequestInputStream* stream = WEBKIT_SOUP_REQUEST_INPUT_STREAM(g_task_get_source_object(task)); + GError* error = nullptr; + gssize bytesRead = G_INPUT_STREAM_GET_CLASS(stream)->read_fn(G_INPUT_STREAM(stream), buffer, count, g_task_get_cancellable(task), &error); if (!error) { - g_simple_async_result_set_op_res_gssize(result, bytesRead); stream->priv->bytesRead += bytesRead; + g_task_return_int(task, bytesRead); } else - g_simple_async_result_take_error(result, error); - g_simple_async_result_complete_in_idle(result); + g_task_return_error(task, error); } static void webkitSoupRequestInputStreamPendingReadAsyncComplete(WebKitSoupRequestInputStream* stream) { - if (!stream->priv->pendingAsyncRead) - return; - - AsyncReadData* data = stream->priv->pendingAsyncRead.get(); - webkitSoupRequestInputStreamReadAsyncResultComplete(stream, data->result.get(), data->buffer, data->count, data->cancellable.get()); - stream->priv->pendingAsyncRead.clear(); + if (auto data = WTFMove(stream->priv->pendingAsyncRead)) + webkitSoupRequestInputStreamReadAsyncResultComplete(data->task.get(), data->buffer, data->count); } static bool webkitSoupRequestInputStreamHasDataToRead(WebKitSoupRequestInputStream* stream) @@ -85,31 +79,33 @@ static bool webkitSoupRequestInputStreamIsWaitingForData(WebKitSoupRequestInputS static void webkitSoupRequestInputStreamReadAsync(GInputStream* inputStream, void* buffer, gsize count, int /*priority*/, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer userData) { + ASSERT(isMainThread()); WebKitSoupRequestInputStream* stream = WEBKIT_SOUP_REQUEST_INPUT_STREAM(inputStream); - GRefPtr<GSimpleAsyncResult> result = adoptGRef(g_simple_async_result_new(G_OBJECT(stream), callback, userData, reinterpret_cast<void*>(webkitSoupRequestInputStreamReadAsync))); - - MutexLocker locker(stream->priv->readLock); + GRefPtr<GTask> task = adoptGRef(g_task_new(stream, cancellable, callback, userData)); if (!webkitSoupRequestInputStreamHasDataToRead(stream) && !webkitSoupRequestInputStreamIsWaitingForData(stream)) { - g_simple_async_result_set_op_res_gssize(result.get(), 0); - g_simple_async_result_complete_in_idle(result.get()); + g_task_return_int(task.get(), 0); + return; + } + + if (stream->priv->error.get()) { + g_task_return_error(task.get(), stream->priv->error.release()); return; } if (webkitSoupRequestInputStreamHasDataToRead(stream)) { - webkitSoupRequestInputStreamReadAsyncResultComplete(stream, result.get(), buffer, count, cancellable); + webkitSoupRequestInputStreamReadAsyncResultComplete(task.get(), buffer, count); return; } - stream->priv->pendingAsyncRead = adoptPtr(new AsyncReadData(result.get(), buffer, count, cancellable)); + stream->priv->pendingAsyncRead = std::make_unique<AsyncReadData>(WTFMove(task), buffer, count); } -static gssize webkitSoupRequestInputStreamReadFinish(GInputStream*, GAsyncResult* result, GError**) +static gssize webkitSoupRequestInputStreamReadFinish(GInputStream* inputStream, GAsyncResult* result, GError** error) { - GSimpleAsyncResult* simpleResult = G_SIMPLE_ASYNC_RESULT(result); - g_warn_if_fail(g_simple_async_result_get_source_tag(simpleResult) == webkitSoupRequestInputStreamReadAsync); + g_return_val_if_fail(g_task_is_valid(result, inputStream), 0); - return g_simple_async_result_get_op_res_gssize(simpleResult); + return g_task_propagate_int(G_TASK(result), error); } static void webkitSoupRequestInputStreamFinalize(GObject* object) @@ -146,11 +142,11 @@ GInputStream* webkitSoupRequestInputStreamNew(uint64_t contentLength) void webkitSoupRequestInputStreamAddData(WebKitSoupRequestInputStream* stream, const void* data, size_t dataLength) { + ASSERT(isMainThread()); + if (webkitSoupRequestInputStreamFinished(stream)) return; - MutexLocker locker(stream->priv->readLock); - if (dataLength) { // Truncate the dataLength to the contentLength if it's known. if (stream->priv->contentLength && stream->priv->bytesReceived + dataLength > stream->priv->contentLength) @@ -168,6 +164,17 @@ void webkitSoupRequestInputStreamAddData(WebKitSoupRequestInputStream* stream, c webkitSoupRequestInputStreamPendingReadAsyncComplete(stream); } +void webkitSoupRequestInputStreamDidFailWithError(WebKitSoupRequestInputStream* stream, const WebCore::ResourceError& resourceError) +{ + GUniquePtr<GError> error(g_error_new(g_quark_from_string(resourceError.domain().utf8().data()), resourceError.errorCode(), "%s", resourceError.localizedDescription().utf8().data())); + if (auto data = WTFMove(stream->priv->pendingAsyncRead)) + g_task_return_error(data->task.get(), error.release()); + else { + stream->priv->contentLength = stream->priv->bytesReceived; + stream->priv->error = WTFMove(error); + } +} + bool webkitSoupRequestInputStreamFinished(WebKitSoupRequestInputStream* stream) { return !webkitSoupRequestInputStreamIsWaitingForData(stream); diff --git a/Source/WebKit2/WebProcess/soup/WebKitSoupRequestInputStream.h b/Source/WebKit2/WebProcess/soup/WebKitSoupRequestInputStream.h index f795e64d8..d7e264d57 100644 --- a/Source/WebKit2/WebProcess/soup/WebKitSoupRequestInputStream.h +++ b/Source/WebKit2/WebProcess/soup/WebKitSoupRequestInputStream.h @@ -20,6 +20,7 @@ #ifndef WebKitSoupRequestInputStream_h #define WebKitSoupRequestInputStream_h +#include <WebCore/ResourceError.h> #include <gio/gio.h> G_BEGIN_DECLS @@ -46,8 +47,9 @@ struct _WebKitSoupRequestInputStreamClass { }; GType webkit_soup_request_input_stream_get_type(); -GInputStream* webkitSoupRequestInputStreamNew(guint64 contentLength); +GInputStream* webkitSoupRequestInputStreamNew(uint64_t contentLength); void webkitSoupRequestInputStreamAddData(WebKitSoupRequestInputStream*, const void* data, size_t dataLength); +void webkitSoupRequestInputStreamDidFailWithError(WebKitSoupRequestInputStream*, const WebCore::ResourceError&); bool webkitSoupRequestInputStreamFinished(WebKitSoupRequestInputStream*); G_END_DECLS diff --git a/Source/WebKit2/WebProcess/soup/WebProcessSoup.cpp b/Source/WebKit2/WebProcess/soup/WebProcessSoup.cpp index 461a858a9..c854cd731 100644 --- a/Source/WebKit2/WebProcess/soup/WebProcessSoup.cpp +++ b/Source/WebKit2/WebProcess/soup/WebProcessSoup.cpp @@ -27,180 +27,35 @@ #include "config.h" #include "WebProcess.h" -#if PLATFORM(EFL) -#include "SeccompFiltersWebProcessEfl.h" -#endif - -#include "CertificateInfo.h" -#include "WebCookieManager.h" #include "WebProcessCreationParameters.h" -#include <WebCore/FileSystem.h> -#include <WebCore/Language.h> #include <WebCore/MemoryCache.h> -#include <WebCore/PageCache.h> -#include <WebCore/ResourceHandle.h> +#include <WebCore/NetworkStorageSession.h> #include <WebCore/SoupNetworkSession.h> -#include <libsoup/soup.h> -#include <wtf/gobject/GRefPtr.h> -#include <wtf/gobject/GUniquePtr.h> - -#if !ENABLE(CUSTOM_PROTOCOLS) -#include "WebSoupRequestManager.h" -#endif namespace WebKit { -static uint64_t getCacheDiskFreeSize(SoupCache* cache) -{ - ASSERT(cache); - - GUniqueOutPtr<char> cacheDir; - g_object_get(G_OBJECT(cache), "cache-dir", &cacheDir.outPtr(), NULL); - if (!cacheDir) - return 0; - - return WebCore::getVolumeFreeSizeForPath(cacheDir.get()); -} - -static uint64_t getMemorySize() -{ - static uint64_t kDefaultMemorySize = 512; -#if !OS(WINDOWS) - long pageSize = sysconf(_SC_PAGESIZE); - if (pageSize == -1) - return kDefaultMemorySize; - - long physPages = sysconf(_SC_PHYS_PAGES); - if (physPages == -1) - return kDefaultMemorySize; - - return ((pageSize / 1024) * physPages) / 1024; -#else - // Fallback to default for other platforms. - return kDefaultMemorySize; -#endif -} - void WebProcess::platformSetCacheModel(CacheModel cacheModel) { - unsigned cacheTotalCapacity = 0; - unsigned cacheMinDeadCapacity = 0; - unsigned cacheMaxDeadCapacity = 0; - double deadDecodedDataDeletionInterval = 0; - unsigned pageCacheCapacity = 0; - - unsigned long urlCacheMemoryCapacity = 0; - unsigned long urlCacheDiskCapacity = 0; - - uint64_t diskFreeSize = 0; - SoupCache* cache = nullptr; - - if (!usesNetworkProcess()) { - cache = WebCore::SoupNetworkSession::defaultSession().cache(); - diskFreeSize = getCacheDiskFreeSize(cache) / 1024 / 1024; - } - - uint64_t memSize = getMemorySize(); - calculateCacheSizes(cacheModel, memSize, diskFreeSize, - cacheTotalCapacity, cacheMinDeadCapacity, cacheMaxDeadCapacity, deadDecodedDataDeletionInterval, - pageCacheCapacity, urlCacheMemoryCapacity, urlCacheDiskCapacity); - - WebCore::memoryCache()->setDisabled(cacheModel == CacheModelDocumentViewer); - WebCore::memoryCache()->setCapacities(cacheMinDeadCapacity, cacheMaxDeadCapacity, cacheTotalCapacity); - WebCore::memoryCache()->setDeadDecodedDataDeletionInterval(deadDecodedDataDeletionInterval); - WebCore::pageCache()->setCapacity(pageCacheCapacity); - -#if PLATFORM(GTK) && USE(ACCELERATED_COMPOSITING) - WebCore::pageCache()->setShouldClearBackingStores(true); -#endif - - if (!usesNetworkProcess()) { - if (urlCacheDiskCapacity > soup_cache_get_max_size(cache)) - soup_cache_set_max_size(cache, urlCacheDiskCapacity); - } -} - -void WebProcess::platformClearResourceCaches(ResourceCachesToClear cachesToClear) -{ - if (cachesToClear == InMemoryResourceCachesOnly) - return; - - // If we're using the network process then it is the only one that needs to clear the disk cache. - if (usesNetworkProcess()) - return; - - soup_cache_clear(WebCore::SoupNetworkSession::defaultSession().cache()); -} - -static void setSoupSessionAcceptLanguage(const Vector<String>& languages) -{ - WebCore::SoupNetworkSession::defaultSession().setAcceptLanguages(languages); -} - -static void languageChanged(void*) -{ - setSoupSessionAcceptLanguage(WebCore::userPreferredLanguages()); + WebCore::MemoryCache::singleton().setDisabled(cacheModel == CacheModelDocumentViewer); } -void WebProcess::platformInitializeWebProcess(const WebProcessCreationParameters& parameters, IPC::MessageDecoder&) +void WebProcess::platformInitializeWebProcess(WebProcessCreationParameters&& parameters) { -#if ENABLE(SECCOMP_FILTERS) - { -#if PLATFORM(EFL) - SeccompFiltersWebProcessEfl seccompFilters(parameters); -#endif - seccompFilters.initialize(); - } -#endif - - if (usesNetworkProcess()) - return; - - ASSERT(!parameters.diskCacheDirectory.isEmpty()); - GRefPtr<SoupCache> soupCache = adoptGRef(soup_cache_new(parameters.diskCacheDirectory.utf8().data(), SOUP_CACHE_SINGLE_USER)); - WebCore::SoupNetworkSession::defaultSession().setCache(soupCache.get()); - // Set an initial huge max_size for the SoupCache so the call to soup_cache_load() won't evict any cached - // resource. The final size of the cache will be set by NetworkProcess::platformSetCacheModel(). - unsigned initialMaxSize = soup_cache_get_max_size(soupCache.get()); - soup_cache_set_max_size(soupCache.get(), G_MAXUINT); - soup_cache_load(soupCache.get()); - soup_cache_set_max_size(soupCache.get(), initialMaxSize); - - if (!parameters.cookiePersistentStoragePath.isEmpty()) { - supplement<WebCookieManager>()->setCookiePersistentStorage(parameters.cookiePersistentStoragePath, - parameters.cookiePersistentStorageType); - } - supplement<WebCookieManager>()->setHTTPCookieAcceptPolicy(parameters.cookieAcceptPolicy); - - if (!parameters.languages.isEmpty()) - setSoupSessionAcceptLanguage(parameters.languages); - -#if !ENABLE(CUSTOM_PROTOCOLS) - for (size_t i = 0; i < parameters.urlSchemesRegistered.size(); i++) - supplement<WebSoupRequestManager>()->registerURIScheme(parameters.urlSchemesRegistered[i]); -#endif - - setIgnoreTLSErrors(parameters.ignoreTLSErrors); - - WebCore::addLanguageChangeObserver(this, languageChanged); + if (parameters.proxySettings.mode != WebCore::SoupNetworkProxySettings::Mode::Default) + setNetworkProxySettings(parameters.proxySettings); } void WebProcess::platformTerminate() { - if (!usesNetworkProcess()) - WebCore::removeLanguageChangeObserver(this); -} - -void WebProcess::setIgnoreTLSErrors(bool ignoreTLSErrors) -{ - ASSERT(!usesNetworkProcess()); - WebCore::ResourceHandle::setIgnoreSSLErrors(ignoreTLSErrors); } -void WebProcess::allowSpecificHTTPSCertificateForHost(const WebCore::CertificateInfo& certificateInfo, const String& host) +void WebProcess::setNetworkProxySettings(const WebCore::SoupNetworkProxySettings& settings) { - ASSERT(!usesNetworkProcess()); - WebCore::ResourceHandle::setClientCertificate(host, certificateInfo.certificate()); + WebCore::SoupNetworkSession::setProxySettings(settings); + WebCore::NetworkStorageSession::forEach([](const WebCore::NetworkStorageSession& session) { + if (auto* soupSession = session.soupNetworkSession()) + soupSession->setupProxy(); + }); } } // namespace WebKit diff --git a/Source/WebKit2/WebProcess/soup/WebSoupRequestManager.messages.in b/Source/WebKit2/WebProcess/soup/WebSoupRequestManager.messages.in deleted file mode 100644 index 24afa952a..000000000 --- a/Source/WebKit2/WebProcess/soup/WebSoupRequestManager.messages.in +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright (C) 2012 Igalia S.L. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND -# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR -# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -messages -> WebSoupRequestManager { - RegisterURIScheme(String uriScheme); - DidHandleURIRequest(IPC::DataReference requestData, uint64_t contentLength, String mimeType, uint64_t requestID); - DidReceiveURIRequestData(IPC::DataReference requestData, uint64_t requestID); - DidFailURIRequest(WebCore::ResourceError error, uint64_t requestID); -} |