diff options
author | Allan Sandfeld Jensen <allan.jensen@digia.com> | 2013-09-13 12:51:20 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-19 20:50:05 +0200 |
commit | d441d6f39bb846989d95bcf5caf387b42414718d (patch) | |
tree | e367e64a75991c554930278175d403c072de6bb8 /Source/WebKit2/WebProcess/ResourceCache/WebResourceCacheManager.cpp | |
parent | 0060b2994c07842f4c59de64b5e3e430525c4b90 (diff) | |
download | qtwebkit-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.cpp | 74 |
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 |