Title: [218017] trunk/Source/WebKit2
Revision
218017
Author
[email protected]
Date
2017-06-09 14:09:18 -0700 (Fri, 09 Jun 2017)

Log Message

Use WTF::Function instead of std::function in StorageManager
https://bugs.webkit.org/show_bug.cgi?id=173177

Reviewed by Brady Eidson.

Use WTF::Function instead of std::function in StorageManager. This eliminates some
potential implicit copying of captured variables, which is important here because
we pass those lambdas to other threads.

* UIProcess/Storage/StorageManager.cpp:
(WebKit::StorageManager::getSessionStorageOrigins):
(WebKit::StorageManager::deleteSessionStorageOrigins):
(WebKit::StorageManager::deleteSessionStorageEntriesForOrigins):
(WebKit::StorageManager::getLocalStorageOrigins):
(WebKit::StorageManager::getLocalStorageOriginDetails):
(WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince):
(WebKit::StorageManager::deleteLocalStorageEntriesForOrigins):
* UIProcess/Storage/StorageManager.h:

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (218016 => 218017)


--- trunk/Source/WebKit2/ChangeLog	2017-06-09 20:55:11 UTC (rev 218016)
+++ trunk/Source/WebKit2/ChangeLog	2017-06-09 21:09:18 UTC (rev 218017)
@@ -1,3 +1,24 @@
+2017-06-09  Chris Dumez  <[email protected]>
+
+        Use WTF::Function instead of std::function in StorageManager
+        https://bugs.webkit.org/show_bug.cgi?id=173177
+
+        Reviewed by Brady Eidson.
+
+        Use WTF::Function instead of std::function in StorageManager. This eliminates some
+        potential implicit copying of captured variables, which is important here because
+        we pass those lambdas to other threads.
+
+        * UIProcess/Storage/StorageManager.cpp:
+        (WebKit::StorageManager::getSessionStorageOrigins):
+        (WebKit::StorageManager::deleteSessionStorageOrigins):
+        (WebKit::StorageManager::deleteSessionStorageEntriesForOrigins):
+        (WebKit::StorageManager::getLocalStorageOrigins):
+        (WebKit::StorageManager::getLocalStorageOriginDetails):
+        (WebKit::StorageManager::deleteLocalStorageOriginsModifiedSince):
+        (WebKit::StorageManager::deleteLocalStorageEntriesForOrigins):
+        * UIProcess/Storage/StorageManager.h:
+
 2017-06-09  Daniel Bates  <[email protected]>
 
         CSP: Apply img-src directive to favicon loads

Modified: trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp (218016 => 218017)


--- trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp	2017-06-09 20:55:11 UTC (rev 218016)
+++ trunk/Source/WebKit2/UIProcess/Storage/StorageManager.cpp	2017-06-09 21:09:18 UTC (rev 218017)
@@ -531,7 +531,7 @@
     });
 }
 
-void StorageManager::getSessionStorageOrigins(std::function<void(HashSet<WebCore::SecurityOriginData>&&)>&& completionHandler)
+void StorageManager::getSessionStorageOrigins(Function<void(HashSet<WebCore::SecurityOriginData>&&)>&& completionHandler)
 {
     m_queue->dispatch([this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)]() mutable {
         HashSet<SecurityOriginData> origins;
@@ -547,7 +547,7 @@
     });
 }
 
-void StorageManager::deleteSessionStorageOrigins(std::function<void()>&& completionHandler)
+void StorageManager::deleteSessionStorageOrigins(Function<void()>&& completionHandler)
 {
     m_queue->dispatch([this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)]() mutable {
         for (auto& sessionStorageNamespace : m_sessionStorageNamespaces.values())
@@ -557,7 +557,7 @@
     });
 }
 
-void StorageManager::deleteSessionStorageEntriesForOrigins(const Vector<WebCore::SecurityOriginData>& origins, std::function<void()>&& completionHandler)
+void StorageManager::deleteSessionStorageEntriesForOrigins(const Vector<WebCore::SecurityOriginData>& origins, Function<void()>&& completionHandler)
 {
     Vector<WebCore::SecurityOriginData> copiedOrigins;
     copiedOrigins.reserveInitialCapacity(origins.size());
@@ -575,7 +575,7 @@
     });
 }
 
-void StorageManager::getLocalStorageOrigins(std::function<void(HashSet<WebCore::SecurityOriginData>&&)>&& completionHandler)
+void StorageManager::getLocalStorageOrigins(Function<void(HashSet<WebCore::SecurityOriginData>&&)>&& completionHandler)
 {
     m_queue->dispatch([this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)]() mutable {
         HashSet<SecurityOriginData> origins;
@@ -594,7 +594,7 @@
     });
 }
 
-void StorageManager::getLocalStorageOriginDetails(std::function<void (Vector<LocalStorageDatabaseTracker::OriginDetails>)>&& completionHandler)
+void StorageManager::getLocalStorageOriginDetails(Function<void (Vector<LocalStorageDatabaseTracker::OriginDetails>)>&& completionHandler)
 {
     m_queue->dispatch([this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)]() mutable {
         auto originDetails = m_localStorageDatabaseTracker->originDetails();
@@ -618,7 +618,7 @@
     });
 }
 
-void StorageManager::deleteLocalStorageOriginsModifiedSince(std::chrono::system_clock::time_point time, std::function<void()>&& completionHandler)
+void StorageManager::deleteLocalStorageOriginsModifiedSince(std::chrono::system_clock::time_point time, Function<void()>&& completionHandler)
 {
     m_queue->dispatch([this, protectedThis = makeRef(*this), time, completionHandler = WTFMove(completionHandler)]() mutable {
         auto deletedOrigins = m_localStorageDatabaseTracker->deleteDatabasesModifiedSince(time);
@@ -635,7 +635,7 @@
     });
 }
 
-void StorageManager::deleteLocalStorageEntriesForOrigins(const Vector<WebCore::SecurityOriginData>& origins, std::function<void()>&& completionHandler)
+void StorageManager::deleteLocalStorageEntriesForOrigins(const Vector<WebCore::SecurityOriginData>& origins, Function<void()>&& completionHandler)
 {
     Vector<SecurityOriginData> copiedOrigins;
     copiedOrigins.reserveInitialCapacity(origins.size());

Modified: trunk/Source/WebKit2/UIProcess/Storage/StorageManager.h (218016 => 218017)


--- trunk/Source/WebKit2/UIProcess/Storage/StorageManager.h	2017-06-09 20:55:11 UTC (rev 218016)
+++ trunk/Source/WebKit2/UIProcess/Storage/StorageManager.h	2017-06-09 21:09:18 UTC (rev 218017)
@@ -31,6 +31,7 @@
 #include <WebCore/SecurityOriginHash.h>
 #include <chrono>
 #include <wtf/Forward.h>
+#include <wtf/Function.h>
 #include <wtf/HashSet.h>
 #include <wtf/ThreadSafeRefCounted.h>
 #include <wtf/text/StringHash.h>
@@ -58,17 +59,17 @@
     void processDidCloseConnection(WebProcessProxy&, IPC::Connection&);
     void applicationWillTerminate();
 
-    void getSessionStorageOrigins(std::function<void(HashSet<WebCore::SecurityOriginData>&&)>&& completionHandler);
-    void deleteSessionStorageOrigins(std::function<void()>&& completionHandler);
-    void deleteSessionStorageEntriesForOrigins(const Vector<WebCore::SecurityOriginData>&, std::function<void()>&& completionHandler);
+    void getSessionStorageOrigins(Function<void(HashSet<WebCore::SecurityOriginData>&&)>&& completionHandler);
+    void deleteSessionStorageOrigins(Function<void()>&& completionHandler);
+    void deleteSessionStorageEntriesForOrigins(const Vector<WebCore::SecurityOriginData>&, Function<void()>&& completionHandler);
 
-    void getLocalStorageOrigins(std::function<void(HashSet<WebCore::SecurityOriginData>&&)>&& completionHandler);
+    void getLocalStorageOrigins(Function<void(HashSet<WebCore::SecurityOriginData>&&)>&& completionHandler);
     void deleteLocalStorageEntriesForOrigin(WebCore::SecurityOriginData&&);
 
-    void deleteLocalStorageOriginsModifiedSince(std::chrono::system_clock::time_point, std::function<void()>&& completionHandler);
-    void deleteLocalStorageEntriesForOrigins(const Vector<WebCore::SecurityOriginData>&, std::function<void()>&& completionHandler);
+    void deleteLocalStorageOriginsModifiedSince(std::chrono::system_clock::time_point, Function<void()>&& completionHandler);
+    void deleteLocalStorageEntriesForOrigins(const Vector<WebCore::SecurityOriginData>&, Function<void()>&& completionHandler);
 
-    void getLocalStorageOriginDetails(std::function<void(Vector<LocalStorageDatabaseTracker::OriginDetails>)>&& completionHandler);
+    void getLocalStorageOriginDetails(Function<void(Vector<LocalStorageDatabaseTracker::OriginDetails>)>&& completionHandler);
 
 private:
     explicit StorageManager(const String& localStorageDirectory);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to