summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/loader/cache/MemoryCache.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/loader/cache/MemoryCache.cpp')
-rw-r--r--Source/WebCore/loader/cache/MemoryCache.cpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/Source/WebCore/loader/cache/MemoryCache.cpp b/Source/WebCore/loader/cache/MemoryCache.cpp
index c0927f8..cb11e15 100644
--- a/Source/WebCore/loader/cache/MemoryCache.cpp
+++ b/Source/WebCore/loader/cache/MemoryCache.cpp
@@ -37,6 +37,7 @@
#include "Logging.h"
#include "ResourceHandle.h"
#include "SecurityOrigin.h"
+#include "SecurityOriginHash.h"
#include <stdio.h>
#include <wtf/CurrentTime.h>
#include <wtf/text/CString.h>
@@ -474,6 +475,31 @@ void MemoryCache::resourceAccessed(CachedResource* resource)
insertInLRUList(resource);
}
+void MemoryCache::removeResourcesWithOrigin(SecurityOrigin* origin)
+{
+ Vector<CachedResource*> resourcesWithOrigin;
+
+ CachedResourceMap::iterator e = m_resources.end();
+ for (CachedResourceMap::iterator it = m_resources.begin(); it != e; ++it) {
+ CachedResource* resource = it->second;
+ RefPtr<SecurityOrigin> resourceOrigin = SecurityOrigin::createFromString(resource->url());
+ if (!resourceOrigin)
+ continue;
+ if (resourceOrigin->equal(origin))
+ resourcesWithOrigin.append(resource);
+ }
+
+ for (size_t i = 0; i < resourcesWithOrigin.size(); ++i)
+ remove(resourcesWithOrigin[i]);
+}
+
+void MemoryCache::getOriginsWithCache(SecurityOriginSet& origins)
+{
+ CachedResourceMap::iterator e = m_resources.end();
+ for (CachedResourceMap::iterator it = m_resources.begin(); it != e; ++it)
+ origins.add(SecurityOrigin::create(KURL(KURL(), it->second->url())));
+}
+
void MemoryCache::removeFromLiveDecodedResourcesList(CachedResource* resource)
{
// If we've never been accessed, then we're brand new and not in any list.
@@ -622,6 +648,15 @@ void MemoryCache::setDisabled(bool disabled)
}
}
+void MemoryCache::evictResources()
+{
+ if (disabled())
+ return;
+
+ setDisabled(true);
+ setDisabled(false);
+}
+
#ifndef NDEBUG
void MemoryCache::dumpStats()
{