Diff
Modified: trunk/Source/WebKit2/ChangeLog (138782 => 138783)
--- trunk/Source/WebKit2/ChangeLog 2013-01-04 09:03:55 UTC (rev 138782)
+++ trunk/Source/WebKit2/ChangeLog 2013-01-04 09:07:00 UTC (rev 138783)
@@ -1,3 +1,42 @@
+2013-01-04 Carlos Garcia Campos <[email protected]>
+
+ [SOUP] Convert WebSoupRequestManagerProxy to be WebContextSupplement
+ https://bugs.webkit.org/show_bug.cgi?id=106012
+
+ Reviewed by Martin Robinson.
+
+ * UIProcess/API/C/soup/WKContextSoup.cpp:
+ (WKContextGetSoupRequestManager):
+ * UIProcess/API/gtk/WebKitWebContext.cpp:
+ (createDefaultWebContext):
+ * UIProcess/WebContext.cpp:
+ (WebKit::WebContext::WebContext):
+ (WebKit::WebContext::~WebContext):
+ (WebKit::WebContext::disconnectProcess):
+ * UIProcess/WebContext.h:
+ (WebKit):
+ (WebContext):
+ * UIProcess/WebPageProxy.cpp:
+ (WebKit::WebPageProxy::didReceiveURIRequest):
+ * UIProcess/efl/WebContextEfl.cpp:
+ (WebKit::WebContext::platformInitializeWebProcess):
+ * UIProcess/gtk/WebContextGtk.cpp:
+ (WebKit::WebContext::platformInitializeWebProcess):
+ * UIProcess/soup/WebSoupRequestManagerProxy.cpp:
+ (WebKit::WebSoupRequestManagerProxy::supplementName):
+ (WebKit):
+ (WebKit::WebSoupRequestManagerProxy::WebSoupRequestManagerProxy):
+ (WebKit::WebSoupRequestManagerProxy::initializeClient):
+ (WebKit::WebSoupRequestManagerProxy::contextDestroyed):
+ (WebKit::WebSoupRequestManagerProxy::processDidClose):
+ (WebKit::WebSoupRequestManagerProxy::refWebContextSupplement):
+ (WebKit::WebSoupRequestManagerProxy::derefWebContextSupplement):
+ (WebKit::WebSoupRequestManagerProxy::registerURIScheme):
+ (WebKit::WebSoupRequestManagerProxy::didHandleURIRequest):
+ (WebKit::WebSoupRequestManagerProxy::didReceiveURIRequestData):
+ * UIProcess/soup/WebSoupRequestManagerProxy.h:
+ (WebSoupRequestManagerProxy):
+
2013-01-04 Mikhail Pozdnyakov <[email protected]>
[EFL][WK2] Remove unneeded EwkViewImpl::informLoadCommitted()
Modified: trunk/Source/WebKit2/UIProcess/API/C/soup/WKContextSoup.cpp (138782 => 138783)
--- trunk/Source/WebKit2/UIProcess/API/C/soup/WKContextSoup.cpp 2013-01-04 09:03:55 UTC (rev 138782)
+++ trunk/Source/WebKit2/UIProcess/API/C/soup/WKContextSoup.cpp 2013-01-04 09:07:00 UTC (rev 138783)
@@ -29,10 +29,13 @@
#include "WKAPICast.h"
#include "WebContext.h"
+// Supplements
+#include "WebSoupRequestManagerProxy.h"
+
using namespace WebKit;
WKSoupRequestManagerRef WKContextGetSoupRequestManager(WKContextRef contextRef)
{
- return toAPI(toImpl(contextRef)->soupRequestManagerProxy());
+ return toAPI(toImpl(contextRef)->supplement<WebSoupRequestManagerProxy>());
}
Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp (138782 => 138783)
--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp 2013-01-04 09:03:55 UTC (rev 138782)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp 2013-01-04 09:07:00 UTC (rev 138783)
@@ -172,7 +172,7 @@
WebKitWebContextPrivate* priv = webContext->priv;
priv->context = WebContext::create(String());
- priv->requestManager = webContext->priv->context->soupRequestManagerProxy();
+ priv->requestManager = webContext->priv->context->supplement<WebSoupRequestManagerProxy>();
priv->context->setCacheModel(CacheModelPrimaryWebBrowser);
priv->tlsErrorsPolicy = WEBKIT_TLS_ERRORS_POLICY_IGNORE;
Modified: trunk/Source/WebKit2/UIProcess/WebContext.cpp (138782 => 138783)
--- trunk/Source/WebKit2/UIProcess/WebContext.cpp 2013-01-04 09:03:55 UTC (rev 138782)
+++ trunk/Source/WebKit2/UIProcess/WebContext.cpp 2013-01-04 09:07:00 UTC (rev 138783)
@@ -167,9 +167,6 @@
#if ENABLE(NETSCAPE_PLUGIN_API)
m_pluginSiteDataManager = WebPluginSiteDataManager::create(this);
#endif // ENABLE(NETSCAPE_PLUGIN_API)
-#if USE(SOUP)
- m_soupRequestManagerProxy = WebSoupRequestManagerProxy::create(this);
-#endif
addSupplement<WebApplicationCacheManagerProxy>();
addSupplement<WebCookieManagerProxy>();
@@ -181,6 +178,9 @@
#if ENABLE(SQL_DATABASE)
addSupplement<WebDatabaseManagerProxy>();
#endif
+#if USE(SOUP)
+ addSupplement<WebSoupRequestManagerProxy>();
+#endif
contexts().append(this);
@@ -236,11 +236,6 @@
m_pluginSiteDataManager->clearContext();
#endif
-#if USE(SOUP)
- m_soupRequestManagerProxy->invalidate();
- m_soupRequestManagerProxy->clearContext();
-#endif
-
invalidateCallbackMap(m_dictionaryCallbacks);
platformInvalidateContext();
@@ -641,9 +636,6 @@
#if ENABLE(NETWORK_INFO)
m_networkInfoManagerProxy->invalidate();
#endif
-#if USE(SOUP)
- m_soupRequestManagerProxy->invalidate();
-#endif
// When out of process plug-ins are enabled, we don't want to invalidate the plug-in site data
// manager just because the web process crashes since it's not involved.
Modified: trunk/Source/WebKit2/UIProcess/WebContext.h (138782 => 138783)
--- trunk/Source/WebKit2/UIProcess/WebContext.h 2013-01-04 09:03:55 UTC (rev 138782)
+++ trunk/Source/WebKit2/UIProcess/WebContext.h 2013-01-04 09:07:00 UTC (rev 138783)
@@ -73,9 +73,6 @@
#if ENABLE(NETWORK_INFO)
class WebNetworkInfoManagerProxy;
#endif
-#if USE(SOUP)
-class WebSoupRequestManagerProxy;
-#endif
#if ENABLE(NETWORK_PROCESS)
struct NetworkProcessCreationParameters;
#endif
@@ -216,9 +213,6 @@
#if ENABLE(NETSCAPE_PLUGIN_API)
WebPluginSiteDataManager* pluginSiteDataManager() const { return m_pluginSiteDataManager.get(); }
#endif
-#if USE(SOUP)
- WebSoupRequestManagerProxy* soupRequestManagerProxy() const { return m_soupRequestManagerProxy.get(); }
-#endif
struct Statistics {
unsigned wkViewCount;
@@ -427,9 +421,6 @@
#if ENABLE(NETSCAPE_PLUGIN_API)
RefPtr<WebPluginSiteDataManager> m_pluginSiteDataManager;
#endif
-#if USE(SOUP)
- RefPtr<WebSoupRequestManagerProxy> m_soupRequestManagerProxy;
-#endif
typedef HashMap<AtomicString, RefPtr<WebContextSupplement> > WebContextSupplementMap;
WebContextSupplementMap m_supplements;
Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (138782 => 138783)
--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp 2013-01-04 09:03:55 UTC (rev 138782)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp 2013-01-04 09:07:00 UTC (rev 138783)
@@ -4226,7 +4226,7 @@
#if USE(SOUP)
void WebPageProxy::didReceiveURIRequest(String uriString, uint64_t requestID)
{
- m_process->context()->soupRequestManagerProxy()->didReceiveURIRequest(uriString, this, requestID);
+ m_process->context()->supplement<WebSoupRequestManagerProxy>()->didReceiveURIRequest(uriString, this, requestID);
}
#endif
Modified: trunk/Source/WebKit2/UIProcess/efl/WebContextEfl.cpp (138782 => 138783)
--- trunk/Source/WebKit2/UIProcess/efl/WebContextEfl.cpp 2013-01-04 09:03:55 UTC (rev 138782)
+++ trunk/Source/WebKit2/UIProcess/efl/WebContextEfl.cpp 2013-01-04 09:07:00 UTC (rev 138783)
@@ -89,7 +89,7 @@
{
initializeInspectorServer();
- parameters.urlSchemesRegistered = m_soupRequestManagerProxy->registeredURISchemes();
+ parameters.urlSchemesRegistered = supplement<WebSoupRequestManagerProxy>()->registeredURISchemes();
supplement<WebCookieManagerProxy>()->getCookiePersistentStorage(parameters.cookiePersistentStoragePath, parameters.cookiePersistentStorageType);
parameters.cookieAcceptPolicy = m_initialHTTPCookieAcceptPolicy;
parameters.ignoreTLSErrors = m_ignoreTLSErrors;
Modified: trunk/Source/WebKit2/UIProcess/gtk/WebContextGtk.cpp (138782 => 138783)
--- trunk/Source/WebKit2/UIProcess/gtk/WebContextGtk.cpp 2013-01-04 09:03:55 UTC (rev 138782)
+++ trunk/Source/WebKit2/UIProcess/gtk/WebContextGtk.cpp 2013-01-04 09:07:00 UTC (rev 138783)
@@ -88,7 +88,7 @@
{
initInspectorServer();
- parameters.urlSchemesRegistered = m_soupRequestManagerProxy->registeredURISchemes();
+ parameters.urlSchemesRegistered = supplement<WebSoupRequestManagerProxy>()->registeredURISchemes();
supplement<WebCookieManagerProxy>()->getCookiePersistentStorage(parameters.cookiePersistentStoragePath, parameters.cookiePersistentStorageType);
parameters.cookieAcceptPolicy = m_initialHTTPCookieAcceptPolicy;
parameters.ignoreTLSErrors = m_ignoreTLSErrors;
Modified: trunk/Source/WebKit2/UIProcess/soup/WebSoupRequestManagerProxy.cpp (138782 => 138783)
--- trunk/Source/WebKit2/UIProcess/soup/WebSoupRequestManagerProxy.cpp 2013-01-04 09:03:55 UTC (rev 138782)
+++ trunk/Source/WebKit2/UIProcess/soup/WebSoupRequestManagerProxy.cpp 2013-01-04 09:07:00 UTC (rev 138783)
@@ -27,31 +27,55 @@
namespace WebKit {
+const AtomicString& WebSoupRequestManagerProxy::supplementName()
+{
+ DEFINE_STATIC_LOCAL(AtomicString, name, ("WebSoupRequestManagerProxy", AtomicString::ConstructFromLiteral));
+ return name;
+}
+
PassRefPtr<WebSoupRequestManagerProxy> WebSoupRequestManagerProxy::create(WebContext* context)
{
return adoptRef(new WebSoupRequestManagerProxy(context));
}
WebSoupRequestManagerProxy::WebSoupRequestManagerProxy(WebContext* context)
- : m_webContext(context)
+ : WebContextSupplement(context)
, m_loadFailed(false)
{
- m_webContext->addMessageReceiver(Messages::WebSoupRequestManagerProxy::messageReceiverName(), this);
+ WebContextSupplement::context()->addMessageReceiver(Messages::WebSoupRequestManagerProxy::messageReceiverName(), this);
}
WebSoupRequestManagerProxy::~WebSoupRequestManagerProxy()
{
}
-void WebSoupRequestManagerProxy::invalidate()
+void WebSoupRequestManagerProxy::initializeClient(const WKSoupRequestManagerClient* client)
{
+ m_client.initialize(client);
}
-void WebSoupRequestManagerProxy::initializeClient(const WKSoupRequestManagerClient* client)
+// WebContextSupplement
+
+void WebSoupRequestManagerProxy::contextDestroyed()
{
- m_client.initialize(client);
}
+void WebSoupRequestManagerProxy::processDidClose(WebProcessProxy*)
+{
+}
+
+void WebSoupRequestManagerProxy::refWebContextSupplement()
+{
+ APIObject::ref();
+}
+
+void WebSoupRequestManagerProxy::derefWebContextSupplement()
+{
+ APIObject::deref();
+}
+
+// CoreIPC::MessageReceiver
+
void WebSoupRequestManagerProxy::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::MessageDecoder& decoder)
{
didReceiveWebSoupRequestManagerProxyMessage(connection, messageID, decoder);
@@ -59,26 +83,32 @@
void WebSoupRequestManagerProxy::registerURIScheme(const String& scheme)
{
- ASSERT(m_webContext);
- m_webContext->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebSoupRequestManager::RegisterURIScheme(scheme));
+ if (!context())
+ return;
+ context()->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebSoupRequestManager::RegisterURIScheme(scheme));
+
ASSERT(!m_registeredURISchemes.contains(scheme));
m_registeredURISchemes.append(scheme);
}
void WebSoupRequestManagerProxy::didHandleURIRequest(const WebData* requestData, uint64_t contentLength, const String& mimeType, uint64_t requestID)
{
- ASSERT(m_webContext);
- m_webContext->sendToAllProcesses(Messages::WebSoupRequestManager::DidHandleURIRequest(requestData->dataReference(), contentLength, mimeType, requestID));
+ if (!context())
+ return;
+
+ context()->sendToAllProcesses(Messages::WebSoupRequestManager::DidHandleURIRequest(requestData->dataReference(), contentLength, mimeType, requestID));
}
void WebSoupRequestManagerProxy::didReceiveURIRequestData(const WebData* requestData, uint64_t requestID)
{
+ if (!context())
+ return;
+
if (m_loadFailed)
return;
- ASSERT(m_webContext);
- m_webContext->sendToAllProcesses(Messages::WebSoupRequestManager::DidReceiveURIRequestData(requestData->dataReference(), requestID));
+ context()->sendToAllProcesses(Messages::WebSoupRequestManager::DidReceiveURIRequestData(requestData->dataReference(), requestID));
}
void WebSoupRequestManagerProxy::didReceiveURIRequest(const String& uriString, WebPageProxy* initiaingPage, uint64_t requestID)
Modified: trunk/Source/WebKit2/UIProcess/soup/WebSoupRequestManagerProxy.h (138782 => 138783)
--- trunk/Source/WebKit2/UIProcess/soup/WebSoupRequestManagerProxy.h 2013-01-04 09:03:55 UTC (rev 138782)
+++ trunk/Source/WebKit2/UIProcess/soup/WebSoupRequestManagerProxy.h 2013-01-04 09:07:00 UTC (rev 138783)
@@ -22,6 +22,7 @@
#include "APIObject.h"
#include "MessageReceiver.h"
+#include "WebContextSupplement.h"
#include "WebSoupRequestManagerClient.h"
#include <wtf/PassRefPtr.h>
#include <wtf/RefPtr.h>
@@ -32,40 +33,46 @@
class WebContext;
class WebData;
-class WebSoupRequestManagerProxy : public APIObject, private CoreIPC::MessageReceiver {
+class WebSoupRequestManagerProxy : public APIObject, public WebContextSupplement, private CoreIPC::MessageReceiver {
public:
static const Type APIType = TypeSoupRequestManager;
+ static const AtomicString& supplementName();
+
static PassRefPtr<WebSoupRequestManagerProxy> create(WebContext*);
virtual ~WebSoupRequestManagerProxy();
- void invalidate();
- void clearContext() { m_webContext = 0; }
-
void initializeClient(const WKSoupRequestManagerClient*);
void registerURIScheme(const String& scheme);
void didHandleURIRequest(const WebData*, uint64_t contentLength, const String& mimeType, uint64_t requestID);
void didReceiveURIRequestData(const WebData*, uint64_t requestID);
- void didFailToLoadURIRequest(uint64_t requestID);
-
void didReceiveURIRequest(const String& uriString, WebPageProxy*, uint64_t requestID);
const Vector<String>& registeredURISchemes() const { return m_registeredURISchemes; }
+ using APIObject::ref;
+ using APIObject::deref;
+
private:
WebSoupRequestManagerProxy(WebContext*);
virtual Type type() const { return APIType; }
+ // WebContextSupplement
+ virtual void contextDestroyed() OVERRIDE;
+ virtual void processDidClose(WebProcessProxy*) OVERRIDE;
+ virtual void refWebContextSupplement() OVERRIDE;
+ virtual void derefWebContextSupplement() OVERRIDE;
+
// CoreIPC::MessageReceiver
virtual void didReceiveMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::MessageDecoder&) OVERRIDE;
void didReceiveWebSoupRequestManagerProxyMessage(CoreIPC::Connection*, CoreIPC::MessageID, CoreIPC::MessageDecoder&);
- WebContext* m_webContext;
+ void didFailToLoadURIRequest(uint64_t requestID);
+
WebSoupRequestManagerClient m_client;
bool m_loadFailed;
-
Vector<String> m_registeredURISchemes;
};