From d441d6f39bb846989d95bcf5caf387b42414718d Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Fri, 13 Sep 2013 12:51:20 +0200 Subject: Import Qt5x2 branch of QtWebkit for Qt 5.2 Importing a new snapshot of webkit. Change-Id: I2d01ad12cdc8af8cb015387641120a9d7ea5f10c Reviewed-by: Allan Sandfeld Jensen --- .../UIProcess/WebResourceCacheManagerProxy.cpp | 49 ++++++++++++++++------ 1 file changed, 37 insertions(+), 12 deletions(-) (limited to 'Source/WebKit2/UIProcess/WebResourceCacheManagerProxy.cpp') diff --git a/Source/WebKit2/UIProcess/WebResourceCacheManagerProxy.cpp b/Source/WebKit2/UIProcess/WebResourceCacheManagerProxy.cpp index 22a41a12d..38299871c 100644 --- a/Source/WebKit2/UIProcess/WebResourceCacheManagerProxy.cpp +++ b/Source/WebKit2/UIProcess/WebResourceCacheManagerProxy.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2011 Apple Inc. All rights reserved. + * Copyright (C) 2011, 2013 Apple Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -34,26 +34,42 @@ #include "WebResourceCacheManagerProxyMessages.h" #include "WebSecurityOrigin.h" +#if ENABLE(NETWORK_PROCESS) +#include "NetworkProcessMessages.h" +#endif + using namespace WebCore; namespace WebKit { +const char* WebResourceCacheManagerProxy::supplementName() +{ + return "WebResourceCacheManagerProxy"; +} + PassRefPtr WebResourceCacheManagerProxy::create(WebContext* webContext) { return adoptRef(new WebResourceCacheManagerProxy(webContext)); } WebResourceCacheManagerProxy::WebResourceCacheManagerProxy(WebContext* webContext) - : m_webContext(webContext) + : WebContextSupplement(webContext) { - m_webContext->addMessageReceiver(Messages::WebResourceCacheManagerProxy::messageReceiverName(), this); + WebContextSupplement::context()->addMessageReceiver(Messages::WebResourceCacheManagerProxy::messageReceiverName(), this); } WebResourceCacheManagerProxy::~WebResourceCacheManagerProxy() { } -void WebResourceCacheManagerProxy::invalidate() +// WebContextSupplement + +void WebResourceCacheManagerProxy::contextDestroyed() +{ + invalidateCallbackMap(m_arrayCallbacks); +} + +void WebResourceCacheManagerProxy::processDidClose(WebProcessProxy*) { invalidateCallbackMap(m_arrayCallbacks); } @@ -63,6 +79,16 @@ bool WebResourceCacheManagerProxy::shouldTerminate(WebProcessProxy*) const return m_arrayCallbacks.isEmpty(); } +void WebResourceCacheManagerProxy::refWebContextSupplement() +{ + APIObject::ref(); +} + +void WebResourceCacheManagerProxy::derefWebContextSupplement() +{ + APIObject::deref(); +} + void WebResourceCacheManagerProxy::getCacheOrigins(PassRefPtr prpCallback) { RefPtr callback = prpCallback; @@ -70,7 +96,7 @@ void WebResourceCacheManagerProxy::getCacheOrigins(PassRefPtr prp m_arrayCallbacks.set(callbackID, callback.release()); // FIXME (Multi-WebProcess): When multi-process is enabled, we need to aggregate the callback data from all processes. - m_webContext->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebResourceCacheManager::GetCacheOrigins(callbackID)); + context()->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebResourceCacheManager::GetCacheOrigins(callbackID)); } void WebResourceCacheManagerProxy::didGetCacheOrigins(const Vector& origins, uint64_t callbackID) @@ -87,18 +113,17 @@ void WebResourceCacheManagerProxy::clearCacheForOrigin(WebSecurityOrigin* origin securityOrigin.port = origin->port(); // FIXME (Multi-WebProcess): There is no need to relaunch all processes. One process to take care of persistent cache is enough. - m_webContext->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebResourceCacheManager::ClearCacheForOrigin(securityOrigin, cachesToClear)); + context()->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebResourceCacheManager::ClearCacheForOrigin(securityOrigin, cachesToClear)); } void WebResourceCacheManagerProxy::clearCacheForAllOrigins(ResourceCachesToClear cachesToClear) { - // FIXME (Multi-WebProcess): There is no need to relaunch all processes. One process to take care of persistent cache is enough. - m_webContext->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebResourceCacheManager::ClearCacheForAllOrigins(cachesToClear)); -} +#if ENABLE(NETWORK_PROCESS) + context()->sendToNetworkingProcessRelaunchingIfNecessary(Messages::NetworkProcess::ClearCacheForAllOrigins(cachesToClear)); +#endif -void WebResourceCacheManagerProxy::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::MessageDecoder& decoder) -{ - didReceiveWebResourceCacheManagerProxyMessage(connection, messageID, decoder); + // FIXME (Multi-WebProcess): There is no need to relaunch all processes. One process to take care of persistent cache is enough. + context()->sendToAllProcessesRelaunchingThemIfNecessary(Messages::WebResourceCacheManager::ClearCacheForAllOrigins(cachesToClear)); } } // namespace WebKit -- cgit v1.2.1