Changeset 162449 in webkit
- Timestamp:
- Jan 21, 2014 10:30:18 AM (10 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 5 added
- 26 edited
- 3 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r162441 r162449 1 2014-01-21 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 [SOUP] Implement CUSTOM PROTOCOLS 4 https://bugs.webkit.org/show_bug.cgi?id=125583 5 6 Reviewed by Anders Carlsson. 7 8 Add new classes to implement CustomProtocols for soup. The 9 implementation is the same, but using the CustomProtocol API and 10 messages. The current implementation can be removed once all ports 11 using soup switch to using CustomProtocols. 12 13 * GNUmakefile.am: Add new include paths. 14 * GNUmakefile.list.am: Add new files to compilation. 15 * PlatformGTK.cmake: Add new files to compilation. 16 * Shared/API/c/soup/WKBaseSoup.h: 17 * Shared/APIObject.h: 18 * Shared/Network/CustomProtocols/CustomProtocolManager.h: 19 * Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.cpp: Added. 20 (WebKit::generateCustomProtocolID): 21 (WebKit::WebSoupRequestAsyncData::WebSoupRequestAsyncData): 22 (WebKit::WebSoupRequestAsyncData::~WebSoupRequestAsyncData): 23 (WebKit::WebSoupRequestAsyncData::requestFailed): 24 (WebKit::WebSoupRequestAsyncData::releaseTask): 25 (WebKit::CustomProtocolManagerImpl::CustomProtocolManagerImpl): 26 (WebKit::CustomProtocolManagerImpl::~CustomProtocolManagerImpl): 27 (WebKit::CustomProtocolManagerImpl::registerScheme): 28 (WebKit::CustomProtocolManagerImpl::supportsScheme): 29 (WebKit::CustomProtocolManagerImpl::didFailWithError): 30 (WebKit::CustomProtocolManagerImpl::didLoadData): 31 (WebKit::CustomProtocolManagerImpl::didReceiveResponse): 32 (WebKit::CustomProtocolManagerImpl::didFinishLoading): 33 (WebKit::CustomProtocolManagerImpl::send): 34 (WebKit::CustomProtocolManagerImpl::finish): 35 * Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.h: Added. 36 * Shared/Network/CustomProtocols/soup/CustomProtocolManagerSoup.cpp: 37 (WebKit::CustomProtocolManager::CustomProtocolManager): 38 (WebKit::CustomProtocolManager::initialize): 39 (WebKit::CustomProtocolManager::registerScheme): 40 (WebKit::CustomProtocolManager::supportsScheme): 41 (WebKit::CustomProtocolManager::didFailWithError): 42 (WebKit::CustomProtocolManager::didLoadData): 43 (WebKit::CustomProtocolManager::didReceiveResponse): 44 (WebKit::CustomProtocolManager::didFinishLoading): 45 * Shared/WebProcessCreationParameters.cpp: 46 (WebKit::WebProcessCreationParameters::encode): 47 (WebKit::WebProcessCreationParameters::decode): 48 * Shared/WebProcessCreationParameters.h: 49 * UIProcess/API/C/soup/WKAPICastSoup.h: 50 * UIProcess/API/C/soup/WKSoupCustomProtocolRequestManager.cpp: Copied from Source/WebKit2/UIProcess/soup/WebContextSoup.cpp. 51 (WKSoupCustomProtocolRequestManagerGetTypeID): 52 (WKSoupCustomProtocolRequestManagerSetClient): 53 * UIProcess/API/C/soup/WKSoupCustomProtocolRequestManager.h: Added. 54 * UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.h: 55 * UIProcess/Network/CustomProtocols/mac/CustomProtocolManagerProxyMac.mm: 56 (WebKit::CustomProtocolManagerProxy::CustomProtocolManagerProxy): 57 * UIProcess/Network/CustomProtocols/soup/CustomProtocolManagerProxySoup.cpp: 58 (WebKit::CustomProtocolManagerProxy::CustomProtocolManagerProxy): 59 (WebKit::CustomProtocolManagerProxy::startLoading): 60 (WebKit::CustomProtocolManagerProxy::stopLoading): 61 * UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManager.cpp: Added. 62 (WebKit::WebSoupCustomProtocolRequestManager::supplementName): 63 (WebKit::WebSoupCustomProtocolRequestManager::create): 64 (WebKit::WebSoupCustomProtocolRequestManager::WebSoupCustomProtocolRequestManager): 65 (WebKit::WebSoupCustomProtocolRequestManager::~WebSoupCustomProtocolRequestManager): 66 (WebKit::WebSoupCustomProtocolRequestManager::initializeClient): 67 (WebKit::WebSoupCustomProtocolRequestManager::contextDestroyed): 68 (WebKit::WebSoupCustomProtocolRequestManager::processDidClose): 69 (WebKit::WebSoupCustomProtocolRequestManager::refWebContextSupplement): 70 (WebKit::WebSoupCustomProtocolRequestManager::derefWebContextSupplement): 71 (WebKit::WebSoupCustomProtocolRequestManager::registerSchemeForCustomProtocol): 72 (WebKit::WebSoupCustomProtocolRequestManager::unregisterSchemeForCustomProtocol): 73 (WebKit::WebSoupCustomProtocolRequestManager::startLoading): 74 (WebKit::WebSoupCustomProtocolRequestManager::stopLoading): 75 (WebKit::WebSoupCustomProtocolRequestManager::didReceiveResponse): 76 (WebKit::WebSoupCustomProtocolRequestManager::didLoadData): 77 (WebKit::WebSoupCustomProtocolRequestManager::didFailWithError): 78 (WebKit::WebSoupCustomProtocolRequestManager::didFinishLoading): 79 * UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManager.h: Added. 80 (WebKit::WebSoupCustomProtocolRequestManager::registeredSchemesForCustomProtocols): 81 * UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManagerClient.cpp: Added. 82 (WebKit::WebSoupCustomProtocolRequestManagerClient::startLoading): 83 (WebKit::WebSoupCustomProtocolRequestManagerClient::stopLoading): 84 * UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManagerClient.h: Added. 85 * UIProcess/Network/NetworkProcessProxy.cpp: 86 (WebKit::NetworkProcessProxy::NetworkProcessProxy): 87 * UIProcess/WebContext.cpp: 88 (WebKit::WebContext::WebContext): 89 * UIProcess/WebPageProxy.cpp: 90 * UIProcess/WebPageProxy.h: 91 * UIProcess/WebPageProxy.messages.in: 92 * UIProcess/WebProcessProxy.cpp: 93 (WebKit::WebProcessProxy::WebProcessProxy): 94 * UIProcess/gtk/WebContextGtk.cpp: 95 (WebKit::WebContext::platformInitializeWebProcess): 96 * UIProcess/soup/WebContextSoup.cpp: 97 (WebKit::WebContext::platformInitializeNetworkProcess): 98 * WebProcess/WebProcess.cpp: 99 (WebKit::WebProcess::WebProcess): 100 * WebProcess/soup/WebKitSoupRequestGeneric.cpp: 101 (webkitSoupRequestGenericSendAsync): 102 (webkitSoupRequestGenericSendFinish): 103 * WebProcess/soup/WebKitSoupRequestGeneric.h: 104 * WebProcess/soup/WebProcessSoup.cpp: 105 (WebKit::WebProcess::platformInitializeWebProcess): 106 1 107 2014-01-21 Adrian Perez de Castro <aperez@igalia.com> 2 108 -
trunk/Source/WebKit2/GNUmakefile.am
r162190 r162449 105 105 -I$(srcdir)/Source/WebKit2/Shared/Network \ 106 106 -I$(srcdir)/Source/WebKit2/Shared/Network/CustomProtocols \ 107 -I$(srcdir)/Source/WebKit2/Shared/Network/CustomProtocols/soup \ 107 108 -I$(srcdir)/Source/WebKit2/Shared/Plugins \ 108 109 -I$(srcdir)/Source/WebKit2/Shared/Plugins/Netscape \ … … 123 124 -I$(srcdir)/Source/WebKit2/UIProcess/Network \ 124 125 -I$(srcdir)/Source/WebKit2/UIProcess/Network/CustomProtocols \ 126 -I$(srcdir)/Source/WebKit2/UIProcess/Network/CustomProtocols/soup \ 125 127 -I$(srcdir)/Source/WebKit2/UIProcess/Notifications \ 126 128 -I$(srcdir)/Source/WebKit2/UIProcess/Plugins \ -
trunk/Source/WebKit2/GNUmakefile.list.am
r162271 r162449 404 404 Source/WebKit2/Shared/NativeWebWheelEvent.h \ 405 405 Source/WebKit2/Shared/Network/CustomProtocols/CustomProtocolManager.h \ 406 Source/WebKit2/Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.h \ 407 Source/WebKit2/Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.cpp \ 406 408 Source/WebKit2/Shared/Network/CustomProtocols/soup/CustomProtocolManagerSoup.cpp \ 407 409 Source/WebKit2/Shared/Network/NetworkProcessCreationParameters.cpp \ … … 524 526 Source/WebKit2/UIProcess/API/C/soup/WKSoupRequestManager.cpp \ 525 527 Source/WebKit2/UIProcess/API/C/soup/WKSoupRequestManager.h \ 528 Source/WebKit2/UIProcess/API/C/soup/WKSoupCustomProtocolRequestManager.cpp \ 529 Source/WebKit2/UIProcess/API/C/soup/WKSoupCustomProtocolRequestManager.h \ 526 530 Source/WebKit2/UIProcess/API/C/WebKit2_C.h \ 527 531 Source/WebKit2/UIProcess/API/C/WKAPICast.h \ … … 840 844 Source/WebKit2/UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.h \ 841 845 Source/WebKit2/UIProcess/Network/CustomProtocols/soup/CustomProtocolManagerProxySoup.cpp \ 846 Source/WebKit2/UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManagerClient.cpp \ 847 Source/WebKit2/UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManagerClient.h \ 848 Source/WebKit2/UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManager.cpp \ 849 Source/WebKit2/UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManager.h \ 842 850 Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp \ 843 851 Source/WebKit2/UIProcess/Network/NetworkProcessProxy.h \ -
trunk/Source/WebKit2/PlatformGTK.cmake
r162190 r162449 38 38 Shared/Downloads/soup/DownloadSoup.cpp 39 39 40 Shared/Network/CustomProtocols/soup/CustomProtocolManagerImpl.cpp 40 41 Shared/Network/CustomProtocols/soup/CustomProtocolManagerSoup.cpp 41 42 … … 79 80 UIProcess/API/C/soup/WKCookieManagerSoup.cpp 80 81 UIProcess/API/C/soup/WKSoupRequestManager.cpp 82 UIProcess/API/C/soup/WKSoupCustomProtocolRequestManager.cpp 81 83 82 84 UIProcess/API/gtk/PageClientImpl.cpp … … 237 239 238 240 UIProcess/Network/CustomProtocols/soup/CustomProtocolManagerProxySoup.cpp 241 UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManagerClient.cpp 242 UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManager.cpp 239 243 240 244 UIProcess/Plugins/unix/PluginInfoStoreUnix.cpp … … 398 402 "${WEBKIT2_DIR}/UIProcess/API/cpp/gtk" 399 403 "${WEBKIT2_DIR}/UIProcess/API/gtk" 404 "${WEBKIT2_DIR}/UIProcess/Network/CustomProtocols/soup" 400 405 "${WEBKIT2_DIR}/UIProcess/gtk" 401 406 "${WEBKIT2_DIR}/UIProcess/soup" -
trunk/Source/WebKit2/Shared/API/c/soup/WKBaseSoup.h
r115411 r162449 32 32 33 33 typedef const struct OpaqueWKSoupRequestManager* WKSoupRequestManagerRef; 34 typedef const struct OpaqueWKSoupCustomProtocolRequestManager* WKSoupCustomProtocolRequestManagerRef; 34 35 35 36 #endif /* WKBaseSoup_h */ -
trunk/Source/WebKit2/Shared/APIObject.h
r162139 r162449 159 159 #if USE(SOUP) 160 160 SoupRequestManager, 161 SoupCustomProtocolRequestManager, 161 162 #endif 162 163 #if PLATFORM(EFL) -
trunk/Source/WebKit2/Shared/Network/CustomProtocols/CustomProtocolManager.h
r162139 r162449 33 33 #include "WebProcessSupplement.h" 34 34 #include "WorkQueue.h" 35 #include <wtf/HashSet.h>36 #include <wtf/Threading.h>37 35 #include <wtf/text/WTFString.h> 38 36 39 37 #if PLATFORM(MAC) 40 38 #include <wtf/HashMap.h> 39 #include <wtf/HashSet.h> 41 40 #include <wtf/RetainPtr.h> 41 #include <wtf/Threading.h> 42 42 OBJC_CLASS WKCustomProtocol; 43 43 #endif … … 56 56 57 57 class ChildProcess; 58 class CustomProtocolManagerImpl; 58 59 struct NetworkProcessCreationParameters; 59 60 … … 96 97 void didFinishLoading(uint64_t customProtocolID); 97 98 98 HashSet<String> m_registeredSchemes;99 Mutex m_registeredSchemesMutex;100 99 ChildProcess* m_childProcess; 101 100 RefPtr<WorkQueue> m_messageQueue; 102 101 103 102 #if PLATFORM(MAC) 103 HashSet<String> m_registeredSchemes; 104 Mutex m_registeredSchemesMutex; 105 104 106 typedef HashMap<uint64_t, RetainPtr<WKCustomProtocol>> CustomProtocolMap; 105 107 CustomProtocolMap m_customProtocolMap; … … 109 111 // We return a RetainPtr here because it is unsafe to return a raw pointer since the object might immediately be destroyed from a different thread. 110 112 RetainPtr<WKCustomProtocol> protocolForID(uint64_t customProtocolID); 113 #else 114 // FIXME: Move mac specific code to CustomProtocolManagerImpl. 115 std::unique_ptr<CustomProtocolManagerImpl> m_impl; 111 116 #endif 112 117 }; -
trunk/Source/WebKit2/Shared/Network/CustomProtocols/soup/CustomProtocolManagerSoup.cpp
r162190 r162449 24 24 25 25 #include "ChildProcess.h" 26 #include "CustomProtocolManagerImpl.h" 26 27 #include "CustomProtocolManagerMessages.h" 27 #include "CustomProtocolManagerProxyMessages.h"28 #include "WebCoreArgumentCoders.h"29 28 #include "WebProcessCreationParameters.h" 30 29 #include <WebCore/NotImplemented.h> 31 #include <WebCore/ResourceError.h>32 #include <WebCore/ResourceRequest.h>33 #include <WebCore/ResourceResponse.h>34 #include <WebCore/URL.h>35 30 36 31 #if ENABLE(NETWORK_PROCESS) … … 48 43 : m_childProcess(childProcess) 49 44 , m_messageQueue(WorkQueue::create("com.apple.WebKit.CustomProtocolManager")) 45 , m_impl(std::make_unique<CustomProtocolManagerImpl>(childProcess)) 50 46 { 51 47 } … … 56 52 } 57 53 58 void CustomProtocolManager::initialize(const WebProcessCreationParameters& )54 void CustomProtocolManager::initialize(const WebProcessCreationParameters& parameters) 59 55 { 56 #if ENABLE(NETWORK_PROCESS) 57 ASSERT(parameters.urlSchemesRegisteredForCustomProtocols.isEmpty() || !parameters.usesNetworkProcess); 58 if (parameters.usesNetworkProcess) { 59 m_childProcess->parentProcessConnection()->removeWorkQueueMessageReceiver(Messages::CustomProtocolManager::messageReceiverName()); 60 m_messageQueue = nullptr; 61 return; 62 } 63 #endif 64 for (size_t i = 0; i < parameters.urlSchemesRegisteredForCustomProtocols.size(); ++i) 65 registerScheme(parameters.urlSchemesRegisteredForCustomProtocols[i]); 60 66 } 61 67 62 68 #if ENABLE(NETWORK_PROCESS) 63 void CustomProtocolManager::initialize(const NetworkProcessCreationParameters& )69 void CustomProtocolManager::initialize(const NetworkProcessCreationParameters& parameters) 64 70 { 71 for (size_t i = 0; i < parameters.urlSchemesRegisteredForCustomProtocols.size(); ++i) 72 registerScheme(parameters.urlSchemesRegisteredForCustomProtocols[i]); 65 73 } 66 74 #endif 67 75 68 void CustomProtocolManager::registerScheme(const String& )76 void CustomProtocolManager::registerScheme(const String& scheme) 69 77 { 70 notImplemented();78 m_impl->registerScheme(scheme); 71 79 } 72 80 … … 76 84 } 77 85 78 bool CustomProtocolManager::supportsScheme(const String& )86 bool CustomProtocolManager::supportsScheme(const String& scheme) 79 87 { 80 notImplemented(); 81 return false; 88 return m_impl->supportsScheme(scheme); 82 89 } 83 90 84 void CustomProtocolManager::didFailWithError(uint64_t , const WebCore::ResourceError&)91 void CustomProtocolManager::didFailWithError(uint64_t customProtocolID, const WebCore::ResourceError& error) 85 92 { 86 notImplemented();93 m_impl->didFailWithError(customProtocolID, error); 87 94 } 88 95 89 void CustomProtocolManager::didLoadData(uint64_t , const IPC::DataReference&)96 void CustomProtocolManager::didLoadData(uint64_t customProtocolID, const IPC::DataReference& dataReference) 90 97 { 91 notImplemented();98 m_impl->didLoadData(customProtocolID, dataReference); 92 99 } 93 100 94 void CustomProtocolManager::didReceiveResponse(uint64_t , const WebCore::ResourceResponse&, uint32_t)101 void CustomProtocolManager::didReceiveResponse(uint64_t customProtocolID, const WebCore::ResourceResponse& response, uint32_t) 95 102 { 96 notImplemented();103 m_impl->didReceiveResponse(customProtocolID, response); 97 104 } 98 105 99 void CustomProtocolManager::didFinishLoading(uint64_t )106 void CustomProtocolManager::didFinishLoading(uint64_t customProtocolID) 100 107 { 101 notImplemented();108 m_impl->didFinishLoading(customProtocolID); 102 109 } 103 110 -
trunk/Source/WebKit2/Shared/WebProcessCreationParameters.cpp
r161148 r162449 74 74 #endif 75 75 #if USE(SOUP) 76 #if !ENABLE(CUSTOM_PROTOCOLS) 76 77 encoder << urlSchemesRegistered; 78 #endif 77 79 encoder << cookiePersistentStoragePath; 78 80 encoder << cookiePersistentStorageType; … … 164 166 #endif 165 167 #if USE(SOUP) 168 #if !ENABLE(CUSTOM_PROTOCOLS) 166 169 if (!decoder.decode(parameters.urlSchemesRegistered)) 167 170 return false; 171 #endif 168 172 if (!decoder.decode(parameters.cookiePersistentStoragePath)) 169 173 return false; -
trunk/Source/WebKit2/Shared/WebProcessCreationParameters.h
r161148 r162449 83 83 #endif 84 84 #if USE(SOUP) 85 #if !ENABLE(CUSTOM_PROTOCOLS) 85 86 Vector<String> urlSchemesRegistered; 87 #endif 86 88 String cookiePersistentStoragePath; 87 89 uint32_t cookiePersistentStorageType; -
trunk/Source/WebKit2/UIProcess/API/C/soup/WKAPICastSoup.h
r115411 r162449 33 33 namespace WebKit { 34 34 35 class WebSoupCustomProtocolRequestManager; 35 36 class WebSoupRequestManagerProxy; 36 37 38 #if ENABLE(CUSTOM_PROTOCOLS) 39 WK_ADD_API_MAPPING(WKSoupCustomProtocolRequestManagerRef, WebSoupCustomProtocolRequestManager) 40 #else 37 41 WK_ADD_API_MAPPING(WKSoupRequestManagerRef, WebSoupRequestManagerProxy) 42 #endif 38 43 39 44 } -
trunk/Source/WebKit2/UIProcess/API/C/soup/WKSoupCustomProtocolRequestManager.cpp
r162448 r162449 1 1 /* 2 * Copyright (C) 201 2 Apple Inc. All rights reserved.2 * Copyright (C) 2013 Igalia S.L. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 25 25 26 26 #include "config.h" 27 #if ENABLE(NETWORK_PROCESS) 28 #include "WebContext.h" 27 #include "WKSoupCustomProtocolRequestManager.h" 29 28 30 #include "NetworkProcessCreationParameters.h" 31 #include "WebCookieManagerProxy.h" 32 #include <WebCore/Language.h> 29 #include "WKAPICast.h" 30 #include "WebSoupCustomProtocolRequestManager.h" 33 31 34 namespace WebKit { 32 using namespace WebKit; 35 33 36 void WebContext::platformInitializeNetworkProcess(NetworkProcessCreationParameters& parameters)34 WKTypeID WKSoupCustomProtocolRequestManagerGetTypeID() 37 35 { 38 supplement<WebCookieManagerProxy>()->getCookiePersistentStorage(parameters.cookiePersistentStoragePath, parameters.cookiePersistentStorageType); 39 parameters.cookieAcceptPolicy = m_initialHTTPCookieAcceptPolicy; 40 parameters.ignoreTLSErrors = m_ignoreTLSErrors; 41 parameters.languages = WebCore::userPreferredLanguages(); 36 #if ENABLE(CUSTOM_PROTOCOLS) 37 return toAPI(WebSoupCustomProtocolRequestManager::APIType); 38 #else 39 return 0; 40 #endif 42 41 } 43 42 43 void WKSoupCustomProtocolRequestManagerSetClient(WKSoupCustomProtocolRequestManagerRef soupRequestManagerRef, const WKSoupCustomProtocolRequestManagerClientBase* wkClient) 44 { 45 #if ENABLE(CUSTOM_PROTOCOLS) 46 toImpl(soupRequestManagerRef)->initializeClient(wkClient); 47 #else 48 UNUSED_PARAM(soupRequestManagerRef); 49 UNUSED_PARAM(wkClient); 50 #endif 44 51 } 45 46 #endif -
trunk/Source/WebKit2/UIProcess/Network/CustomProtocols/CustomProtocolManagerProxy.h
r162139 r162449 44 44 45 45 class ChildProcessProxy; 46 class WebContext; 46 47 47 48 class CustomProtocolManagerProxy : public IPC::MessageReceiver { 48 49 public: 49 explicit CustomProtocolManagerProxy(ChildProcessProxy* );50 explicit CustomProtocolManagerProxy(ChildProcessProxy*, WebContext&); 50 51 51 52 void startLoading(uint64_t customProtocolID, const WebCore::ResourceRequest&); … … 57 58 58 59 ChildProcessProxy* m_childProcessProxy; 60 WebContext& m_webContext; 59 61 60 62 #if PLATFORM(MAC) -
trunk/Source/WebKit2/UIProcess/Network/CustomProtocols/mac/CustomProtocolManagerProxyMac.mm
r161148 r162449 123 123 namespace WebKit { 124 124 125 CustomProtocolManagerProxy::CustomProtocolManagerProxy(ChildProcessProxy* childProcessProxy )125 CustomProtocolManagerProxy::CustomProtocolManagerProxy(ChildProcessProxy* childProcessProxy, WebContext& webContext) 126 126 : m_childProcessProxy(childProcessProxy) 127 , m_webContext(webContext) 127 128 { 128 129 ASSERT(m_childProcessProxy); -
trunk/Source/WebKit2/UIProcess/Network/CustomProtocols/soup/CustomProtocolManagerProxySoup.cpp
r162190 r162449 26 26 #include "CustomProtocolManagerMessages.h" 27 27 #include "CustomProtocolManagerProxyMessages.h" 28 #include <WebCore/NotImplemented.h> 28 #include "WebContext.h" 29 #include "WebSoupCustomProtocolRequestManager.h" 29 30 #include <WebCore/ResourceRequest.h> 30 31 31 32 namespace WebKit { 32 33 33 CustomProtocolManagerProxy::CustomProtocolManagerProxy(ChildProcessProxy* childProcessProxy )34 CustomProtocolManagerProxy::CustomProtocolManagerProxy(ChildProcessProxy* childProcessProxy, WebContext& webContext) 34 35 : m_childProcessProxy(childProcessProxy) 36 , m_webContext(webContext) 35 37 { 36 38 ASSERT(m_childProcessProxy); … … 38 40 } 39 41 40 void CustomProtocolManagerProxy::startLoading(uint64_t , const WebCore::ResourceRequest&)42 void CustomProtocolManagerProxy::startLoading(uint64_t customProtocolID, const WebCore::ResourceRequest& request) 41 43 { 42 notImplemented();44 m_webContext.supplement<WebSoupCustomProtocolRequestManager>()->startLoading(customProtocolID, request); 43 45 } 44 46 45 void CustomProtocolManagerProxy::stopLoading(uint64_t )47 void CustomProtocolManagerProxy::stopLoading(uint64_t customProtocolID) 46 48 { 47 notImplemented();49 m_webContext.supplement<WebSoupCustomProtocolRequestManager>()->stopLoading(customProtocolID); 48 50 } 49 51 -
trunk/Source/WebKit2/UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManagerClient.cpp
r162448 r162449 19 19 20 20 #include "config.h" 21 #include " CustomProtocolManagerProxy.h"21 #include "WebSoupCustomProtocolRequestManagerClient.h" 22 22 23 23 #if ENABLE(CUSTOM_PROTOCOLS) 24 24 25 #include "ChildProcessProxy.h"26 #include "CustomProtocolManagerMessages.h"27 #include "CustomProtocolManagerProxyMessages.h"28 #include <WebCore/NotImplemented.h>29 #include <WebCore/ResourceRequest.h>30 31 25 namespace WebKit { 32 26 33 CustomProtocolManagerProxy::CustomProtocolManagerProxy(ChildProcessProxy* childProcessProxy) 34 : m_childProcessProxy(childProcessProxy) 27 bool WebSoupCustomProtocolRequestManagerClient::startLoading(WebSoupCustomProtocolRequestManager* soupRequestManager, uint64_t customProtocolID, const WebCore::ResourceRequest& request) 35 28 { 36 ASSERT(m_childProcessProxy); 37 m_childProcessProxy->addMessageReceiver(Messages::CustomProtocolManagerProxy::messageReceiverName(), *this); 29 if (!m_client.startLoading) 30 return false; 31 32 RefPtr<API::URLRequest> urlRequest = API::URLRequest::create(request); 33 m_client.startLoading(toAPI(soupRequestManager), customProtocolID, toAPI(urlRequest.get()), m_client.base.clientInfo); 34 return true; 38 35 } 39 36 40 void CustomProtocolManagerProxy::startLoading(uint64_t, const WebCore::ResourceRequest&)37 void WebSoupCustomProtocolRequestManagerClient::stopLoading(WebSoupCustomProtocolRequestManager* soupRequestManager, uint64_t customProtocolID) 41 38 { 42 notImplemented(); 43 } 44 45 void CustomProtocolManagerProxy::stopLoading(uint64_t) 46 { 47 notImplemented(); 39 if (m_client.stopLoading) 40 m_client.stopLoading(toAPI(soupRequestManager), customProtocolID, m_client.base.clientInfo); 48 41 } 49 42 -
trunk/Source/WebKit2/UIProcess/Network/CustomProtocols/soup/WebSoupCustomProtocolRequestManagerClient.h
r162448 r162449 18 18 */ 19 19 20 #i nclude "config.h"21 # include "CustomProtocolManagerProxy.h"20 #ifndef WebSoupCustomProtocolRequestManagerClient_h 21 #define WebSoupCustomProtocolRequestManagerClient_h 22 22 23 23 #if ENABLE(CUSTOM_PROTOCOLS) 24 24 25 #include "ChildProcessProxy.h" 26 #include "CustomProtocolManagerMessages.h" 27 #include "CustomProtocolManagerProxyMessages.h" 28 #include <WebCore/NotImplemented.h> 29 #include <WebCore/ResourceRequest.h> 25 #include "APIClient.h" 26 #include "WKAPICast.h" 27 #include "WKSoupCustomProtocolRequestManager.h" 28 29 namespace API { 30 31 template<> struct ClientTraits<WKSoupCustomProtocolRequestManagerClientBase> { 32 typedef std::tuple<WKSoupCustomProtocolRequestManagerClientV0> Versions; 33 }; 34 } 35 36 namespace WebCore { 37 class ResourceRequest; 38 } 30 39 31 40 namespace WebKit { 32 41 33 CustomProtocolManagerProxy::CustomProtocolManagerProxy(ChildProcessProxy* childProcessProxy) 34 : m_childProcessProxy(childProcessProxy) 35 { 36 ASSERT(m_childProcessProxy); 37 m_childProcessProxy->addMessageReceiver(Messages::CustomProtocolManagerProxy::messageReceiverName(), *this); 38 } 42 class WebSoupCustomProtocolRequestManager; 39 43 40 void CustomProtocolManagerProxy::startLoading(uint64_t, const WebCore::ResourceRequest&) 41 { 42 notImplemented(); 43 } 44 45 void CustomProtocolManagerProxy::stopLoading(uint64_t) 46 { 47 notImplemented(); 48 } 44 class WebSoupCustomProtocolRequestManagerClient : public API::Client<WKSoupCustomProtocolRequestManagerClientBase> { 45 public: 46 bool startLoading(WebSoupCustomProtocolRequestManager*, uint64_t customProtocolID, const WebCore::ResourceRequest&); 47 void stopLoading(WebSoupCustomProtocolRequestManager*, uint64_t customProtocolID); 48 }; 49 49 50 50 } // namespace WebKit 51 51 52 52 #endif // ENABLE(CUSTOM_PROTOCOLS) 53 54 #endif // WebSoupCustomProtocolRequestManagerClient_h -
trunk/Source/WebKit2/UIProcess/Network/NetworkProcessProxy.cpp
r161301 r162449 57 57 , m_numPendingConnectionRequests(0) 58 58 #if ENABLE(CUSTOM_PROTOCOLS) 59 , m_customProtocolManagerProxy(this )59 , m_customProtocolManagerProxy(this, webContext) 60 60 #endif 61 61 { -
trunk/Source/WebKit2/UIProcess/WebContext.cpp
r162271 r162449 93 93 94 94 #if USE(SOUP) 95 #if ENABLE(CUSTOM_PROTOCOLS) 96 #include "WebSoupCustomProtocolRequestManager.h" 97 #else 95 98 #include "WebSoupRequestManagerProxy.h" 99 #endif 96 100 #endif 97 101 … … 174 178 #endif 175 179 #if USE(SOUP) 180 #if ENABLE(CUSTOM_PROTOCOLS) 181 addSupplement<WebSoupCustomProtocolRequestManager>(); 182 #else 176 183 addSupplement<WebSoupRequestManagerProxy>(); 184 #endif 177 185 #endif 178 186 #if ENABLE(BATTERY_STATUS) -
trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp
r162382 r162449 107 107 #endif 108 108 109 #if USE(SOUP) 109 #if USE(SOUP) && !ENABLE(CUSTOM_PROTOCOLS) 110 110 #include "WebSoupRequestManagerProxy.h" 111 111 #endif … … 4358 4358 #endif // PLATFORM(MAC) 4359 4359 4360 #if USE(SOUP) 4360 #if USE(SOUP) && !ENABLE(CUSTOM_PROTOCOLS) 4361 4361 void WebPageProxy::didReceiveURIRequest(String uriString, uint64_t requestID) 4362 4362 { -
trunk/Source/WebKit2/UIProcess/WebPageProxy.h
r162271 r162449 1137 1137 #endif // PLATFORM(IOS) 1138 1138 1139 #if USE(SOUP) 1139 #if USE(SOUP) && !ENABLE(CUSTOM_PROTOCOLS) 1140 1140 void didReceiveURIRequest(String uriString, uint64_t requestID); 1141 1141 #endif -
trunk/Source/WebKit2/UIProcess/WebPageProxy.messages.in
r162141 r162449 322 322 323 323 #if USE(SOUP) 324 #if !ENABLE(CUSTOM_PROTOCOLS) 324 325 # Soup custom URI request messages 325 326 DidReceiveURIRequest(String uriString, uint64_t requestID); 327 #endif 326 328 #endif 327 329 -
trunk/Source/WebKit2/UIProcess/WebProcessProxy.cpp
r162271 r162449 90 90 , m_mayHaveUniversalFileReadSandboxExtension(false) 91 91 #if ENABLE(CUSTOM_PROTOCOLS) 92 , m_customProtocolManagerProxy(this )92 , m_customProtocolManagerProxy(this, context) 93 93 #endif 94 94 #if PLATFORM(MAC) -
trunk/Source/WebKit2/UIProcess/gtk/WebContextGtk.cpp
r161272 r162449 34 34 #include "WebProcessCreationParameters.h" 35 35 #include "WebProcessMessages.h" 36 #include "WebSoupRequestManagerProxy.h"37 36 #include <WebCore/FileSystem.h> 38 37 #include <WebCore/NotImplemented.h> … … 43 42 #if ENABLE(NETWORK_PROCESS) 44 43 #include "NetworkProcessMessages.h" 44 #endif 45 46 #if ENABLE(CUSTOM_PROTOCOLS) 47 #include "WebSoupCustomProtocolRequestManager.h" 48 #else 49 #include "WebSoupRequestManagerProxy.h" 45 50 #endif 46 51 … … 100 105 101 106 if (!usesNetworkProcess()) { 107 #if ENABLE(CUSTOM_PROTOCOLS) 108 parameters.urlSchemesRegisteredForCustomProtocols = supplement<WebSoupCustomProtocolRequestManager>()->registeredSchemesForCustomProtocols(); 109 #else 102 110 parameters.urlSchemesRegistered = supplement<WebSoupRequestManagerProxy>()->registeredURISchemes(); 111 #endif 103 112 104 113 supplement<WebCookieManagerProxy>()->getCookiePersistentStorage(parameters.cookiePersistentStoragePath, parameters.cookiePersistentStorageType); -
trunk/Source/WebKit2/UIProcess/soup/WebContextSoup.cpp
r161976 r162449 30 30 #include "NetworkProcessCreationParameters.h" 31 31 #include "WebCookieManagerProxy.h" 32 #include "WebSoupCustomProtocolRequestManager.h" 32 33 #include <WebCore/Language.h> 33 34 … … 40 41 parameters.ignoreTLSErrors = m_ignoreTLSErrors; 41 42 parameters.languages = WebCore::userPreferredLanguages(); 43 #if ENABLE(CUSTOM_PROTOCOLS) 44 parameters.urlSchemesRegisteredForCustomProtocols = supplement<WebSoupCustomProtocolRequestManager>()->registeredSchemesForCustomProtocols(); 45 #endif 42 46 } 43 47 -
trunk/Source/WebKit2/WebProcess/WebProcess.cpp
r162271 r162449 129 129 #endif 130 130 131 #if USE(SOUP) 131 #if USE(SOUP) && !ENABLE(CUSTOM_PROTOCOLS) 132 132 #include "WebSoupRequestManager.h" 133 133 #endif … … 202 202 addSupplement<WebNetworkInfoManager>(); 203 203 #endif 204 #if USE(SOUP) 204 #if USE(SOUP) && !ENABLE(CUSTOM_PROTOCOLS) 205 205 addSupplement<WebSoupRequestManager>(); 206 206 #endif -
trunk/Source/WebKit2/WebProcess/soup/WebKitSoupRequestGeneric.cpp
r151726 r162449 21 21 #include "WebKitSoupRequestGeneric.h" 22 22 23 #include <wtf/text/CString.h> 24 25 #if !ENABLE(CUSTOM_PROTOCOLS) 23 26 #include "WebProcess.h" 24 27 #include "WebSoupRequestManager.h" 25 # include <wtf/text/CString.h>28 #endif 26 29 27 30 using namespace WebKit; … … 49 52 static void webkitSoupRequestGenericSendAsync(SoupRequest* request, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer userData) 50 53 { 54 #if ENABLE(CUSTOM_PROTOCOLS) 55 CustomProtocolManagerImpl* customProtocolManager = WEBKIT_SOUP_REQUEST_GENERIC_GET_CLASS(request)->customProtocolManager; 56 ASSERT(customProtocolManager); 57 customProtocolManager->send(g_task_new(request, cancellable, callback, userData)); 58 #else 51 59 WebProcess::shared().supplement<WebSoupRequestManager>()->send(g_task_new(request, cancellable, callback, userData)); 60 #endif 52 61 } 53 62 … … 55 64 { 56 65 g_return_val_if_fail(g_task_is_valid(result, request), 0); 66 #if ENABLE(CUSTOM_PROTOCOLS) 67 CustomProtocolManagerImpl* customProtocolManager = WEBKIT_SOUP_REQUEST_GENERIC_GET_CLASS(request)->customProtocolManager; 68 ASSERT(customProtocolManager); 69 return customProtocolManager->finish(G_TASK(result), error); 70 #else 57 71 return WebProcess::shared().supplement<WebSoupRequestManager>()->finish(G_TASK(result), error); 72 #endif 58 73 } 59 74 -
trunk/Source/WebKit2/WebProcess/soup/WebKitSoupRequestGeneric.h
r148507 r162449 24 24 #include <libsoup/soup.h> 25 25 26 #if ENABLE(CUSTOM_PROTOCOLS) 27 #include "CustomProtocolManagerImpl.h" 28 #endif 29 26 30 G_BEGIN_DECLS 27 31 … … 45 49 struct _WebKitSoupRequestGenericClass { 46 50 SoupRequestClass parent; 51 52 #if ENABLE(CUSTOM_PROTOCOLS) 53 WebKit::CustomProtocolManagerImpl* customProtocolManager; 54 #endif 47 55 }; 48 56 -
trunk/Source/WebKit2/WebProcess/soup/WebProcessSoup.cpp
r162059 r162449 35 35 #include "WebCookieManager.h" 36 36 #include "WebProcessCreationParameters.h" 37 #include "WebSoupRequestManager.h"38 37 #include <WebCore/FileSystem.h> 39 38 #include <WebCore/Language.h> … … 45 44 #include <wtf/gobject/GOwnPtr.h> 46 45 #include <wtf/gobject/GRefPtr.h> 46 47 #if !ENABLE(CUSTOM_PROTOCOLS) 48 #include "WebSoupRequestManager.h" 49 #endif 47 50 48 51 namespace WebKit { … … 164 167 setSoupSessionAcceptLanguage(parameters.languages); 165 168 169 #if !ENABLE(CUSTOM_PROTOCOLS) 166 170 for (size_t i = 0; i < parameters.urlSchemesRegistered.size(); i++) 167 171 supplement<WebSoupRequestManager>()->registerURIScheme(parameters.urlSchemesRegistered[i]); 172 #endif 168 173 169 174 setIgnoreTLSErrors(parameters.ignoreTLSErrors);
Note: See TracChangeset
for help on using the changeset viewer.