diff options
author | Steve Block <steveblock@google.com> | 2011-05-25 19:08:45 +0100 |
---|---|---|
committer | Steve Block <steveblock@google.com> | 2011-06-08 13:51:31 +0100 |
commit | 2bde8e466a4451c7319e3a072d118917957d6554 (patch) | |
tree | 28f4a1b869a513e565c7760d0e6a06e7cf1fe95a /Source/WebCore/loader/appcache/ApplicationCache.cpp | |
parent | 6939c99b71d9372d14a0c74a772108052e8c48c8 (diff) | |
download | external_webkit-2bde8e466a4451c7319e3a072d118917957d6554.zip external_webkit-2bde8e466a4451c7319e3a072d118917957d6554.tar.gz external_webkit-2bde8e466a4451c7319e3a072d118917957d6554.tar.bz2 |
Merge WebKit at r82507: Initial merge by git
Change-Id: I60ce9d780725b58b45e54165733a8ffee23b683e
Diffstat (limited to 'Source/WebCore/loader/appcache/ApplicationCache.cpp')
-rw-r--r-- | Source/WebCore/loader/appcache/ApplicationCache.cpp | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/Source/WebCore/loader/appcache/ApplicationCache.cpp b/Source/WebCore/loader/appcache/ApplicationCache.cpp index 450fa10..f3479b4 100644 --- a/Source/WebCore/loader/appcache/ApplicationCache.cpp +++ b/Source/WebCore/loader/appcache/ApplicationCache.cpp @@ -32,6 +32,7 @@ #include "ApplicationCacheResource.h" #include "ApplicationCacheStorage.h" #include "ResourceRequest.h" +#include "SecurityOrigin.h" #include <wtf/text/CString.h> #include <stdio.h> @@ -182,7 +183,29 @@ void ApplicationCache::clearStorageID() ResourceMap::const_iterator end = m_resources.end(); for (ResourceMap::const_iterator it = m_resources.begin(); it != end; ++it) it->second->clearStorageID(); -} +} + +void ApplicationCache::deleteCacheForOrigin(SecurityOrigin* origin) +{ + Vector<KURL> urls; + if (!cacheStorage().manifestURLs(&urls)) { + LOG_ERROR("Failed to retrieve ApplicationCache manifest URLs"); + return; + } + + KURL originURL(KURL(), origin->toString()); + + size_t count = urls.size(); + for (size_t i = 0; i < count; ++i) { + if (protocolHostAndPortAreEqual(urls[i], originURL)) { + ApplicationCacheGroup* group = cacheStorage().findInMemoryCacheGroup(urls[i]); + if (group) + group->makeObsolete(); + else + cacheStorage().deleteCacheGroup(urls[i]); + } + } +} #ifndef NDEBUG void ApplicationCache::dump() |