summaryrefslogtreecommitdiff
path: root/Source/WebKit2/WebProcess/ResourceCache/WebResourceCacheManager.cpp
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@digia.com>2013-09-13 12:51:20 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-19 20:50:05 +0200
commitd441d6f39bb846989d95bcf5caf387b42414718d (patch)
treee367e64a75991c554930278175d403c072de6bb8 /Source/WebKit2/WebProcess/ResourceCache/WebResourceCacheManager.cpp
parent0060b2994c07842f4c59de64b5e3e430525c4b90 (diff)
downloadqtwebkit-d441d6f39bb846989d95bcf5caf387b42414718d.tar.gz
Import Qt5x2 branch of QtWebkit for Qt 5.2
Importing a new snapshot of webkit. Change-Id: I2d01ad12cdc8af8cb015387641120a9d7ea5f10c Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Diffstat (limited to 'Source/WebKit2/WebProcess/ResourceCache/WebResourceCacheManager.cpp')
-rw-r--r--Source/WebKit2/WebProcess/ResourceCache/WebResourceCacheManager.cpp74
1 files changed, 36 insertions, 38 deletions
diff --git a/Source/WebKit2/WebProcess/ResourceCache/WebResourceCacheManager.cpp b/Source/WebKit2/WebProcess/ResourceCache/WebResourceCacheManager.cpp
index 395649c50..31c2b8d40 100644
--- a/Source/WebKit2/WebProcess/ResourceCache/WebResourceCacheManager.cpp
+++ b/Source/WebKit2/WebProcess/ResourceCache/WebResourceCacheManager.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
@@ -26,60 +26,63 @@
#include "config.h"
#include "WebResourceCacheManager.h"
-#include "Connection.h"
-#include "MessageID.h"
-#include "ResourceCachesToClear.h"
#include "SecurityOriginData.h"
#include "WebCoreArgumentCoders.h"
-#include "WebResourceCacheManagerProxyMessages.h"
#include "WebProcess.h"
+#include "WebResourceCacheManagerMessages.h"
+#include "WebResourceCacheManagerProxyMessages.h"
#include <WebCore/MemoryCache.h>
#include <WebCore/SecurityOrigin.h>
#include <WebCore/SecurityOriginHash.h>
-#include <wtf/UnusedParam.h>
using namespace WebCore;
namespace WebKit {
-WebResourceCacheManager& WebResourceCacheManager::shared()
-{
- static WebResourceCacheManager& shared = *new WebResourceCacheManager;
- return shared;
-}
-
-WebResourceCacheManager::WebResourceCacheManager()
-{
-}
-
-WebResourceCacheManager::~WebResourceCacheManager()
+const char* WebResourceCacheManager::supplementName()
{
+ return "WebResourceCacheManager";
}
-void WebResourceCacheManager::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::MessageDecoder& decoder)
+WebResourceCacheManager::WebResourceCacheManager(WebProcess* process)
+ : m_process(process)
{
- didReceiveWebResourceCacheManagerMessage(connection, messageID, decoder);
+ m_process->addMessageReceiver(Messages::WebResourceCacheManager::messageReceiverName(), this);
}
-
void WebResourceCacheManager::getCacheOrigins(uint64_t callbackID) const
{
- WebProcess::LocalTerminationDisabler terminationDisabler(WebProcess::shared());
-
+#if USE(CFURLCACHE) && ENABLE(CACHE_PARTITIONING)
+ __block MemoryCache::SecurityOriginSet origins;
+#else
MemoryCache::SecurityOriginSet origins;
+#endif
memoryCache()->getOriginsWithCache(origins);
#if USE(CFURLCACHE)
- RetainPtr<CFArrayRef> cfURLHosts = cfURLCacheHostNames();
- CFIndex size = cfURLHosts ? CFArrayGetCount(cfURLHosts.get()) : 0;
+#if ENABLE(CACHE_PARTITIONING)
+ cfURLCacheHostNamesWithCallback(^(RetainPtr<CFArrayRef> cfURLHosts) {
+#else
+ RetainPtr<CFArrayRef> cfURLHosts = cfURLCacheHostNames();
+#endif
+ CFIndex size = cfURLHosts ? CFArrayGetCount(cfURLHosts.get()) : 0;
- String httpString("http");
- for (CFIndex i = 0; i < size; ++i) {
- CFStringRef host = static_cast<CFStringRef>(CFArrayGetValueAtIndex(cfURLHosts.get(), i));
- origins.add(SecurityOrigin::create(httpString, host, 0));
- }
+ String httpString("http");
+ for (CFIndex i = 0; i < size; ++i) {
+ CFStringRef host = static_cast<CFStringRef>(CFArrayGetValueAtIndex(cfURLHosts.get(), i));
+ origins.add(SecurityOrigin::create(httpString, host, 0));
+ }
#endif
+ returnCacheOrigins(callbackID, origins);
+
+#if USE(CFURLCACHE) && ENABLE(CACHE_PARTITIONING)
+ });
+#endif
+}
+
+void WebResourceCacheManager::returnCacheOrigins(uint64_t callbackID, const MemoryCache::SecurityOriginSet& origins) const
+{
// Create a list with the origins in both of the caches.
Vector<SecurityOriginData> identifiers;
identifiers.reserveCapacity(origins.size());
@@ -96,13 +99,11 @@ void WebResourceCacheManager::getCacheOrigins(uint64_t callbackID) const
identifiers.uncheckedAppend(originData);
}
- WebProcess::shared().connection()->send(Messages::WebResourceCacheManagerProxy::DidGetCacheOrigins(identifiers, callbackID), 0);
+ m_process->send(Messages::WebResourceCacheManagerProxy::DidGetCacheOrigins(identifiers, callbackID), 0);
}
-void WebResourceCacheManager::clearCacheForOrigin(SecurityOriginData originData, uint32_t cachesToClear) const
+void WebResourceCacheManager::clearCacheForOrigin(const SecurityOriginData& originData, uint32_t cachesToClear) const
{
- WebProcess::LocalTerminationDisabler terminationDisabler(WebProcess::shared());
-
#if USE(CFURLCACHE)
ResourceCachesToClear resourceCachesToClear = static_cast<ResourceCachesToClear>(cachesToClear);
#else
@@ -117,7 +118,7 @@ void WebResourceCacheManager::clearCacheForOrigin(SecurityOriginData originData,
#if USE(CFURLCACHE)
if (resourceCachesToClear != InMemoryResourceCachesOnly) {
- RetainPtr<CFMutableArrayRef> hostArray(AdoptCF, CFArrayCreateMutable(0, 0, &kCFTypeArrayCallBacks));
+ RetainPtr<CFMutableArrayRef> hostArray = adoptCF(CFArrayCreateMutable(0, 0, &kCFTypeArrayCallBacks));
CFArrayAppendValue(hostArray.get(), origin->host().createCFString().get());
clearCFURLCacheForHostNames(hostArray.get());
@@ -127,11 +128,8 @@ void WebResourceCacheManager::clearCacheForOrigin(SecurityOriginData originData,
void WebResourceCacheManager::clearCacheForAllOrigins(uint32_t cachesToClear) const
{
- WebProcess::LocalTerminationDisabler terminationDisabler(WebProcess::shared());
-
ResourceCachesToClear resourceCachesToClear = static_cast<ResourceCachesToClear>(cachesToClear);
-
- WebProcess::shared().clearResourceCaches(resourceCachesToClear);
+ m_process->clearResourceCaches(resourceCachesToClear);
}
} // namespace WebKit