Title: [182551] trunk/Source
Revision
182551
Author
[email protected]
Date
2015-04-08 10:52:15 -0700 (Wed, 08 Apr 2015)

Log Message

Move some ApplicationCache static member functions to ApplicationCacheStorage
https://bugs.webkit.org/show_bug.cgi?id=143524

Reviewed by Antti Koivisto.

Source/WebCore:

This is yet another step towards eliminating ApplicationCacheStorage::singleton() and making the storage be per page instead.

* loader/appcache/ApplicationCache.cpp:
(WebCore::ApplicationCache::deleteCacheForOrigin):
(WebCore::ApplicationCache::deleteAllCaches):
(WebCore::ApplicationCache::diskUsageForOrigin):
* loader/appcache/ApplicationCacheStorage.cpp:
(WebCore::ApplicationCacheStorage::deleteAllCaches):
(WebCore::ApplicationCacheStorage::deleteCacheForOrigin):
(WebCore::ApplicationCacheStorage::diskUsageForOrigin):
* loader/appcache/ApplicationCacheStorage.h:

Source/WebKit/mac:

* WebCoreSupport/WebApplicationCache.mm:
(+[WebApplicationCache diskUsageForOrigin:]):
(+[WebApplicationCache deleteAllApplicationCaches]):
(+[WebApplicationCache deleteCacheForOrigin:]):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (182550 => 182551)


--- trunk/Source/WebCore/ChangeLog	2015-04-08 17:51:17 UTC (rev 182550)
+++ trunk/Source/WebCore/ChangeLog	2015-04-08 17:52:15 UTC (rev 182551)
@@ -1,3 +1,22 @@
+2015-04-08  Anders Carlsson  <[email protected]>
+
+        Move some ApplicationCache static member functions to ApplicationCacheStorage
+        https://bugs.webkit.org/show_bug.cgi?id=143524
+
+        Reviewed by Antti Koivisto.
+
+        This is yet another step towards eliminating ApplicationCacheStorage::singleton() and making the storage be per page instead.
+
+        * loader/appcache/ApplicationCache.cpp:
+        (WebCore::ApplicationCache::deleteCacheForOrigin):
+        (WebCore::ApplicationCache::deleteAllCaches):
+        (WebCore::ApplicationCache::diskUsageForOrigin):
+        * loader/appcache/ApplicationCacheStorage.cpp:
+        (WebCore::ApplicationCacheStorage::deleteAllCaches):
+        (WebCore::ApplicationCacheStorage::deleteCacheForOrigin):
+        (WebCore::ApplicationCacheStorage::diskUsageForOrigin):
+        * loader/appcache/ApplicationCacheStorage.h:
+
 2015-04-08  ChangSeok Oh  <[email protected]>
 
         Fill list style background with same color with that of list background.

Modified: trunk/Source/WebCore/loader/appcache/ApplicationCache.cpp (182550 => 182551)


--- trunk/Source/WebCore/loader/appcache/ApplicationCache.cpp	2015-04-08 17:51:17 UTC (rev 182550)
+++ trunk/Source/WebCore/loader/appcache/ApplicationCache.cpp	2015-04-08 17:52:15 UTC (rev 182551)
@@ -192,45 +192,17 @@
     
 void ApplicationCache::deleteCacheForOrigin(SecurityOrigin* origin)
 {
-    auto& cacheStorage = ApplicationCacheStorage::singleton();
-
-    Vector<URL> urls;
-    if (!cacheStorage.getManifestURLs(&urls)) {
-        LOG_ERROR("Failed to retrieve ApplicationCache manifest URLs");
-        return;
-    }
-
-    URL originURL(URL(), 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]);
-        }
-    }
+    ApplicationCacheStorage::singleton().deleteCacheForOrigin(*origin);
 }
 
 void ApplicationCache::deleteAllCaches()
 {
-    HashSet<RefPtr<SecurityOrigin>> origins;
-
-    auto& cacheStorage = ApplicationCacheStorage::singleton();
-    cacheStorage.getOriginsWithCache(origins);
-    for (auto& origin : origins)
-        deleteCacheForOrigin(origin.get());
-
-    cacheStorage.vacuumDatabaseFile();
+    ApplicationCacheStorage::singleton().deleteAllCaches();
 }
 
 int64_t ApplicationCache::diskUsageForOrigin(SecurityOrigin* origin)
 {
-    int64_t usage = 0;
-    ApplicationCacheStorage::singleton().calculateUsageForOrigin(origin, usage);
-    return usage;
+    return ApplicationCacheStorage::singleton().diskUsageForOrigin(*origin);
 }
 
 #ifndef NDEBUG

Modified: trunk/Source/WebCore/loader/appcache/ApplicationCacheStorage.cpp (182550 => 182551)


--- trunk/Source/WebCore/loader/appcache/ApplicationCacheStorage.cpp	2015-04-08 17:51:17 UTC (rev 182550)
+++ trunk/Source/WebCore/loader/appcache/ApplicationCacheStorage.cpp	2015-04-08 17:52:15 UTC (rev 182551)
@@ -1542,6 +1542,45 @@
     vacuumDatabaseFile();
 }
 
+void ApplicationCacheStorage::deleteAllCaches()
+{
+    HashSet<RefPtr<SecurityOrigin>> origins;
+
+    getOriginsWithCache(origins);
+    for (auto& origin : origins)
+        deleteCacheForOrigin(*origin);
+
+    vacuumDatabaseFile();
+}
+
+void ApplicationCacheStorage::deleteCacheForOrigin(const SecurityOrigin& securityOrigin)
+{
+    Vector<URL> urls;
+    if (!getManifestURLs(&urls)) {
+        LOG_ERROR("Failed to retrieve ApplicationCache manifest URLs");
+        return;
+    }
+
+    URL originURL(URL(), securityOrigin.toString());
+
+    for (const auto& url : urls) {
+        if (!protocolHostAndPortAreEqual(url, originURL))
+            continue;
+
+        if (auto* group = findInMemoryCacheGroup(url))
+            group->makeObsolete();
+        else
+            deleteCacheGroup(url);
+    }
+}
+
+int64_t ApplicationCacheStorage::diskUsageForOrigin(const SecurityOrigin& securityOrigin)
+{
+    int64_t usage = 0;
+    calculateUsageForOrigin(&securityOrigin, usage);
+    return usage;
+}
+
 ApplicationCacheStorage::ApplicationCacheStorage()
     : m_maximumSize(ApplicationCacheStorage::noQuota())
     , m_isMaximumSizeReached(false)

Modified: trunk/Source/WebCore/loader/appcache/ApplicationCacheStorage.h (182550 => 182551)


--- trunk/Source/WebCore/loader/appcache/ApplicationCacheStorage.h	2015-04-08 17:51:17 UTC (rev 182550)
+++ trunk/Source/WebCore/loader/appcache/ApplicationCacheStorage.h	2015-04-08 17:52:15 UTC (rev 182551)
@@ -99,6 +99,15 @@
     WEBCORE_EXPORT void getOriginsWithCache(HashSet<RefPtr<SecurityOrigin>, SecurityOriginHash>&);
     WEBCORE_EXPORT void deleteAllEntries();
 
+    // FIXME: This should be consolidated with deleteAllEntries().
+    WEBCORE_EXPORT void deleteAllCaches();
+
+    // FIXME: This should be consolidated with deleteCacheGroup().
+    WEBCORE_EXPORT void deleteCacheForOrigin(const SecurityOrigin&);
+
+    // FIXME: This should be consolidated with calculateUsageForOrigin().
+    WEBCORE_EXPORT int64_t diskUsageForOrigin(const SecurityOrigin&);
+
     static int64_t unknownQuota() { return -1; }
     static int64_t noQuota() { return std::numeric_limits<int64_t>::max(); }
 private:

Modified: trunk/Source/WebKit/mac/ChangeLog (182550 => 182551)


--- trunk/Source/WebKit/mac/ChangeLog	2015-04-08 17:51:17 UTC (rev 182550)
+++ trunk/Source/WebKit/mac/ChangeLog	2015-04-08 17:52:15 UTC (rev 182551)
@@ -1,3 +1,15 @@
+2015-04-08  Anders Carlsson  <[email protected]>
+
+        Move some ApplicationCache static member functions to ApplicationCacheStorage
+        https://bugs.webkit.org/show_bug.cgi?id=143524
+
+        Reviewed by Antti Koivisto.
+
+        * WebCoreSupport/WebApplicationCache.mm:
+        (+[WebApplicationCache diskUsageForOrigin:]):
+        (+[WebApplicationCache deleteAllApplicationCaches]):
+        (+[WebApplicationCache deleteCacheForOrigin:]):
+
 2015-04-08  Chris Dumez  <[email protected]>
 
         Rename ActiveDOMObject::canSuspend() to canSuspendForPageCache() for clarity

Modified: trunk/Source/WebKit/mac/WebCoreSupport/WebApplicationCache.mm (182550 => 182551)


--- trunk/Source/WebKit/mac/WebCoreSupport/WebApplicationCache.mm	2015-04-08 17:51:17 UTC (rev 182550)
+++ trunk/Source/WebKit/mac/WebCoreSupport/WebApplicationCache.mm	2015-04-08 17:52:15 UTC (rev 182551)
@@ -82,17 +82,17 @@
 
 + (long long)diskUsageForOrigin:(WebSecurityOrigin *)origin
 {
-    return ApplicationCache::diskUsageForOrigin([origin _core]);
+    return webApplicationCacheStorage().diskUsageForOrigin(*[origin _core]);
 }
 
 + (void)deleteAllApplicationCaches
 {
-    ApplicationCache::deleteAllCaches();
+    webApplicationCacheStorage().deleteAllCaches();
 }
 
 + (void)deleteCacheForOrigin:(WebSecurityOrigin *)origin
 {
-    ApplicationCache::deleteCacheForOrigin([origin _core]);
+    webApplicationCacheStorage().deleteCacheForOrigin(*[origin _core]);
 }
 
 + (NSArray *)originsWithCache
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to