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 --- .../ResourceCache/WebResourceCacheManager.cpp | 74 +++++++++++----------- 1 file changed, 36 insertions(+), 38 deletions(-) (limited to 'Source/WebKit2/WebProcess/ResourceCache/WebResourceCacheManager.cpp') 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 #include #include -#include 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 cfURLHosts = cfURLCacheHostNames(); - CFIndex size = cfURLHosts ? CFArrayGetCount(cfURLHosts.get()) : 0; +#if ENABLE(CACHE_PARTITIONING) + cfURLCacheHostNamesWithCallback(^(RetainPtr cfURLHosts) { +#else + RetainPtr cfURLHosts = cfURLCacheHostNames(); +#endif + CFIndex size = cfURLHosts ? CFArrayGetCount(cfURLHosts.get()) : 0; - String httpString("http"); - for (CFIndex i = 0; i < size; ++i) { - CFStringRef host = static_cast(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(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 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(cachesToClear); #else @@ -117,7 +118,7 @@ void WebResourceCacheManager::clearCacheForOrigin(SecurityOriginData originData, #if USE(CFURLCACHE) if (resourceCachesToClear != InMemoryResourceCachesOnly) { - RetainPtr hostArray(AdoptCF, CFArrayCreateMutable(0, 0, &kCFTypeArrayCallBacks)); + RetainPtr 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(cachesToClear); - - WebProcess::shared().clearResourceCaches(resourceCachesToClear); + m_process->clearResourceCaches(resourceCachesToClear); } } // namespace WebKit -- cgit v1.2.1