Title: [213777] trunk/Source/WebKit2
Revision
213777
Author
[email protected]
Date
2017-03-12 18:37:36 -0700 (Sun, 12 Mar 2017)

Log Message

Transition GenericCallback from std::function to WTF::Function.
https://bugs.webkit.org/show_bug.cgi?id=169530

Reviewed by Dean Jackson.

* UIProcess/GenericCallback.h:
(WebKit::GenericCallback::create):
(WebKit::GenericCallback::performCallbackWithReturnValue):
(WebKit::GenericCallback::GenericCallback):
(WebKit::CallbackMap::put):

* UIProcess/WebCookieManagerProxy.cpp:
(WebKit::WebCookieManagerProxy::getHostnamesWithCookies):
(WebKit::WebCookieManagerProxy::getHTTPCookieAcceptPolicy):
* UIProcess/WebCookieManagerProxy.h:

* UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::getWebArchive):
(WebKit::WebFrameProxy::getMainResourceData):
(WebKit::WebFrameProxy::getResourceData):
* UIProcess/WebFrameProxy.h:

* UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::getSelectionAsWebArchiveData):
(WebKit::WebPageProxy::getMainResourceDataOfFrame):
(WebKit::WebPageProxy::getResourceDataFromFrame):
(WebKit::WebPageProxy::getWebArchiveOfFrame):
* UIProcess/WebPageProxy.h:

* UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::getStatistics):
* UIProcess/WebProcessPool.h:

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (213776 => 213777)


--- trunk/Source/WebKit2/ChangeLog	2017-03-13 00:34:38 UTC (rev 213776)
+++ trunk/Source/WebKit2/ChangeLog	2017-03-13 01:37:36 UTC (rev 213777)
@@ -1,3 +1,38 @@
+2017-03-12  Brady Eidson  <[email protected]>
+
+        Transition GenericCallback from std::function to WTF::Function.
+        https://bugs.webkit.org/show_bug.cgi?id=169530
+
+        Reviewed by Dean Jackson.
+
+        * UIProcess/GenericCallback.h:
+        (WebKit::GenericCallback::create):
+        (WebKit::GenericCallback::performCallbackWithReturnValue):
+        (WebKit::GenericCallback::GenericCallback):
+        (WebKit::CallbackMap::put):
+
+        * UIProcess/WebCookieManagerProxy.cpp:
+        (WebKit::WebCookieManagerProxy::getHostnamesWithCookies):
+        (WebKit::WebCookieManagerProxy::getHTTPCookieAcceptPolicy):
+        * UIProcess/WebCookieManagerProxy.h:
+
+        * UIProcess/WebFrameProxy.cpp:
+        (WebKit::WebFrameProxy::getWebArchive):
+        (WebKit::WebFrameProxy::getMainResourceData):
+        (WebKit::WebFrameProxy::getResourceData):
+        * UIProcess/WebFrameProxy.h:
+
+        * UIProcess/WebPageProxy.cpp:
+        (WebKit::WebPageProxy::getSelectionAsWebArchiveData):
+        (WebKit::WebPageProxy::getMainResourceDataOfFrame):
+        (WebKit::WebPageProxy::getResourceDataFromFrame):
+        (WebKit::WebPageProxy::getWebArchiveOfFrame):
+        * UIProcess/WebPageProxy.h:
+
+        * UIProcess/WebProcessPool.cpp:
+        (WebKit::WebProcessPool::getStatistics):
+        * UIProcess/WebProcessPool.h:
+
 2017-03-12  Adrian Perez de Castro  <[email protected]>
 
         [GTK] Unbreak build with GTK+ >=3.20 after r213772

Modified: trunk/Source/WebKit2/UIProcess/GenericCallback.h (213776 => 213777)


--- trunk/Source/WebKit2/UIProcess/GenericCallback.h	2017-03-13 00:34:38 UTC (rev 213776)
+++ trunk/Source/WebKit2/UIProcess/GenericCallback.h	2017-03-13 01:37:36 UTC (rev 213777)
@@ -32,6 +32,7 @@
 #include "ShareableBitmap.h"
 #include "WKAPICast.h"
 #include <functional>
+#include <wtf/Function.h>
 #include <wtf/HashMap.h>
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
@@ -92,11 +93,11 @@
 template<typename... T>
 class GenericCallback : public CallbackBase {
 public:
-    typedef std::function<void (T..., Error)> CallbackFunction;
+    typedef Function<void (T..., Error)> CallbackFunction;
 
-    static PassRefPtr<GenericCallback> create(CallbackFunction callback, const ProcessThrottler::BackgroundActivityToken& activityToken = nullptr)
+    static PassRefPtr<GenericCallback> create(CallbackFunction&& callback, const ProcessThrottler::BackgroundActivityToken& activityToken = nullptr)
     {
-        return adoptRef(new GenericCallback(callback, activityToken));
+        return adoptRef(new GenericCallback(WTFMove(callback), activityToken));
     }
 
     virtual ~GenericCallback()
@@ -109,9 +110,9 @@
         if (!m_callback)
             return;
 
-        m_callback(returnValue..., Error::None);
+        m_callback.value()(returnValue..., Error::None);
 
-        m_callback = nullptr;
+        m_callback = std::nullopt;
     }
 
     void performCallback()
@@ -124,15 +125,15 @@
         if (!m_callback)
             return;
 
-        m_callback(typename std::remove_reference<T>::type()..., error);
+        m_callback.value()(typename std::remove_reference<T>::type()..., error);
 
-        m_callback = nullptr;
+        m_callback = std::nullopt;
     }
 
 private:
-    GenericCallback(CallbackFunction callback, const ProcessThrottler::BackgroundActivityToken& activityToken)
+    GenericCallback(CallbackFunction&& callback, const ProcessThrottler::BackgroundActivityToken& activityToken)
         : CallbackBase(type(), activityToken)
-        , m_callback(callback)
+        , m_callback(WTFMove(callback))
     {
     }
 
@@ -143,7 +144,7 @@
         return &tag;
     }
 
-    CallbackFunction m_callback;
+    std::optional<CallbackFunction> m_callback;
 };
 
 template<typename APIReturnValueType, typename InternalReturnValueType = typename APITypeInfo<APIReturnValueType>::ImplType*>
@@ -197,6 +198,13 @@
         return put(callback);
     }
 
+    template<typename... T>
+    uint64_t put(Function<void (T...)>&& function, const ProcessThrottler::BackgroundActivityToken& activityToken)
+    {
+        auto callback = GenericCallbackType<sizeof...(T), T...>::type::create(WTFMove(function), activityToken);
+        return put(callback);
+    }
+
     template<class T>
     RefPtr<T> take(uint64_t callbackID)
     {

Modified: trunk/Source/WebKit2/UIProcess/WebCookieManagerProxy.cpp (213776 => 213777)


--- trunk/Source/WebKit2/UIProcess/WebCookieManagerProxy.cpp	2017-03-13 00:34:38 UTC (rev 213776)
+++ trunk/Source/WebKit2/UIProcess/WebCookieManagerProxy.cpp	2017-03-13 01:37:36 UTC (rev 213777)
@@ -94,7 +94,7 @@
     API::Object::deref();
 }
 
-void WebCookieManagerProxy::getHostnamesWithCookies(WebCore::SessionID sessionID, std::function<void (API::Array*, CallbackBase::Error)> callbackFunction)
+void WebCookieManagerProxy::getHostnamesWithCookies(WebCore::SessionID sessionID, Function<void (API::Array*, CallbackBase::Error)>&& callbackFunction)
 {
     auto callback = ArrayCallback::create(WTFMove(callbackFunction));
     uint64_t callbackID = callback->callbackID();
@@ -176,7 +176,7 @@
     processPool()->sendToNetworkingProcess(Messages::WebCookieManager::SetHTTPCookieAcceptPolicy(policy));
 }
 
-void WebCookieManagerProxy::getHTTPCookieAcceptPolicy(std::function<void (HTTPCookieAcceptPolicy, CallbackBase::Error)> callbackFunction)
+void WebCookieManagerProxy::getHTTPCookieAcceptPolicy(Function<void (HTTPCookieAcceptPolicy, CallbackBase::Error)> callbackFunction)
 {
     auto callback = HTTPCookieAcceptPolicyCallback::create(WTFMove(callbackFunction));
 

Modified: trunk/Source/WebKit2/UIProcess/WebCookieManagerProxy.h (213776 => 213777)


--- trunk/Source/WebKit2/UIProcess/WebCookieManagerProxy.h	2017-03-13 00:34:38 UTC (rev 213776)
+++ trunk/Source/WebKit2/UIProcess/WebCookieManagerProxy.h	2017-03-13 01:37:36 UTC (rev 213777)
@@ -65,7 +65,7 @@
 
     void initializeClient(const WKCookieManagerClientBase*);
     
-    void getHostnamesWithCookies(WebCore::SessionID, std::function<void (API::Array*, CallbackBase::Error)>);
+    void getHostnamesWithCookies(WebCore::SessionID, Function<void (API::Array*, CallbackBase::Error)>&&);
     void deleteCookiesForHostname(WebCore::SessionID, const String& hostname);
     void deleteAllCookies(WebCore::SessionID);
     void deleteAllCookiesModifiedSince(WebCore::SessionID, std::chrono::system_clock::time_point);
@@ -73,7 +73,7 @@
     void setCookies(WebCore::SessionID, const Vector<WebCore::Cookie>&, const WebCore::URL&, const WebCore::URL& mainDocumentURL);
 
     void setHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicy);
-    void getHTTPCookieAcceptPolicy(std::function<void (HTTPCookieAcceptPolicy, CallbackBase::Error)>);
+    void getHTTPCookieAcceptPolicy(Function<void (HTTPCookieAcceptPolicy, CallbackBase::Error)>);
     void setCookieStoragePartitioningEnabled(bool);
 
     void startObservingCookieChanges(WebCore::SessionID);

Modified: trunk/Source/WebKit2/UIProcess/WebFrameProxy.cpp (213776 => 213777)


--- trunk/Source/WebKit2/UIProcess/WebFrameProxy.cpp	2017-03-13 00:34:38 UTC (rev 213776)
+++ trunk/Source/WebKit2/UIProcess/WebFrameProxy.cpp	2017-03-13 01:37:36 UTC (rev 213777)
@@ -202,7 +202,7 @@
     return *static_cast<WebFormSubmissionListenerProxy*>(m_activeListener.get());
 }
 
-void WebFrameProxy::getWebArchive(std::function<void (API::Data*, CallbackBase::Error)> callbackFunction)
+void WebFrameProxy::getWebArchive(Function<void (API::Data*, CallbackBase::Error)>&& callbackFunction)
 {
     if (!m_page) {
         callbackFunction(nullptr, CallbackBase::Error::Unknown);
@@ -209,10 +209,10 @@
         return;
     }
 
-    m_page->getWebArchiveOfFrame(this, callbackFunction);
+    m_page->getWebArchiveOfFrame(this, WTFMove(callbackFunction));
 }
 
-void WebFrameProxy::getMainResourceData(std::function<void (API::Data*, CallbackBase::Error)> callbackFunction)
+void WebFrameProxy::getMainResourceData(Function<void (API::Data*, CallbackBase::Error)>&& callbackFunction)
 {
     if (!m_page) {
         callbackFunction(nullptr, CallbackBase::Error::Unknown);
@@ -219,10 +219,10 @@
         return;
     }
 
-    m_page->getMainResourceDataOfFrame(this, callbackFunction);
+    m_page->getMainResourceDataOfFrame(this, WTFMove(callbackFunction));
 }
 
-void WebFrameProxy::getResourceData(API::URL* resourceURL, std::function<void (API::Data*, CallbackBase::Error)> callbackFunction)
+void WebFrameProxy::getResourceData(API::URL* resourceURL, Function<void (API::Data*, CallbackBase::Error)>&& callbackFunction)
 {
     if (!m_page) {
         callbackFunction(nullptr, CallbackBase::Error::Unknown);
@@ -229,7 +229,7 @@
         return;
     }
 
-    m_page->getResourceDataFromFrame(this, resourceURL, callbackFunction);
+    m_page->getResourceDataFromFrame(this, resourceURL, WTFMove(callbackFunction));
 }
 
 void WebFrameProxy::setUnreachableURL(const String& unreachableURL)

Modified: trunk/Source/WebKit2/UIProcess/WebFrameProxy.h (213776 => 213777)


--- trunk/Source/WebKit2/UIProcess/WebFrameProxy.h	2017-03-13 00:34:38 UTC (rev 213776)
+++ trunk/Source/WebKit2/UIProcess/WebFrameProxy.h	2017-03-13 01:37:36 UTC (rev 213777)
@@ -101,9 +101,9 @@
     bool isDisplayingMarkupDocument() const;
     bool isDisplayingPDFDocument() const;
 
-    void getWebArchive(std::function<void (API::Data*, CallbackBase::Error)>);
-    void getMainResourceData(std::function<void (API::Data*, CallbackBase::Error)>);
-    void getResourceData(API::URL*, std::function<void (API::Data*, CallbackBase::Error)>);
+    void getWebArchive(Function<void (API::Data*, CallbackBase::Error)>&&);
+    void getMainResourceData(Function<void (API::Data*, CallbackBase::Error)>&&);
+    void getResourceData(API::URL*, Function<void (API::Data*, CallbackBase::Error)>&&);
 
     void didStartProvisionalLoad(const String& url);
     void didReceiveServerRedirectForProvisionalLoad(const String& url);

Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp (213776 => 213777)


--- trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp	2017-03-13 00:34:38 UTC (rev 213776)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp	2017-03-13 01:37:36 UTC (rev 213777)
@@ -2974,7 +2974,7 @@
     m_process->send(Messages::WebPage::GetSelectionOrContentsAsString(callbackID), m_pageID);
 }
 
-void WebPageProxy::getSelectionAsWebArchiveData(std::function<void (API::Data*, CallbackBase::Error)> callbackFunction)
+void WebPageProxy::getSelectionAsWebArchiveData(Function<void (API::Data*, CallbackBase::Error)>&& callbackFunction)
 {
     if (!isValid()) {
         callbackFunction(nullptr, CallbackBase::Error::Unknown);
@@ -2985,7 +2985,7 @@
     m_process->send(Messages::WebPage::GetSelectionAsWebArchiveData(callbackID), m_pageID);
 }
 
-void WebPageProxy::getMainResourceDataOfFrame(WebFrameProxy* frame, std::function<void (API::Data*, CallbackBase::Error)> callbackFunction)
+void WebPageProxy::getMainResourceDataOfFrame(WebFrameProxy* frame, Function<void (API::Data*, CallbackBase::Error)>&& callbackFunction)
 {
     if (!isValid() || !frame) {
         callbackFunction(nullptr, CallbackBase::Error::Unknown);
@@ -2996,7 +2996,7 @@
     m_process->send(Messages::WebPage::GetMainResourceDataOfFrame(frame->frameID(), callbackID), m_pageID);
 }
 
-void WebPageProxy::getResourceDataFromFrame(WebFrameProxy* frame, API::URL* resourceURL, std::function<void (API::Data*, CallbackBase::Error)> callbackFunction)
+void WebPageProxy::getResourceDataFromFrame(WebFrameProxy* frame, API::URL* resourceURL, Function<void (API::Data*, CallbackBase::Error)>&& callbackFunction)
 {
     if (!isValid()) {
         callbackFunction(nullptr, CallbackBase::Error::Unknown);
@@ -3007,7 +3007,7 @@
     m_process->send(Messages::WebPage::GetResourceDataFromFrame(frame->frameID(), resourceURL->string(), callbackID), m_pageID);
 }
 
-void WebPageProxy::getWebArchiveOfFrame(WebFrameProxy* frame, std::function<void (API::Data*, CallbackBase::Error)> callbackFunction)
+void WebPageProxy::getWebArchiveOfFrame(WebFrameProxy* frame, Function<void (API::Data*, CallbackBase::Error)>&& callbackFunction)
 {
     if (!isValid()) {
         callbackFunction(nullptr, CallbackBase::Error::Unknown);

Modified: trunk/Source/WebKit2/UIProcess/WebPageProxy.h (213776 => 213777)


--- trunk/Source/WebKit2/UIProcess/WebPageProxy.h	2017-03-13 00:34:38 UTC (rev 213776)
+++ trunk/Source/WebKit2/UIProcess/WebPageProxy.h	2017-03-13 01:37:36 UTC (rev 213777)
@@ -800,13 +800,13 @@
 #if ENABLE(MHTML)
     void getContentsAsMHTMLData(std::function<void (API::Data*, CallbackBase::Error)>);
 #endif
-    void getMainResourceDataOfFrame(WebFrameProxy*, std::function<void (API::Data*, CallbackBase::Error)>);
-    void getResourceDataFromFrame(WebFrameProxy*, API::URL*, std::function<void (API::Data*, CallbackBase::Error)>);
+    void getMainResourceDataOfFrame(WebFrameProxy*, Function<void (API::Data*, CallbackBase::Error)>&&);
+    void getResourceDataFromFrame(WebFrameProxy*, API::URL*, Function<void (API::Data*, CallbackBase::Error)>&&);
     void getRenderTreeExternalRepresentation(std::function<void (const String&, CallbackBase::Error)>);
     void getSelectionOrContentsAsString(std::function<void (const String&, CallbackBase::Error)>);
-    void getSelectionAsWebArchiveData(std::function<void (API::Data*, CallbackBase::Error)>);
+    void getSelectionAsWebArchiveData(Function<void (API::Data*, CallbackBase::Error)>&&);
     void getSourceForFrame(WebFrameProxy*, std::function<void (const String&, CallbackBase::Error)>);
-    void getWebArchiveOfFrame(WebFrameProxy*, std::function<void (API::Data*, CallbackBase::Error)>);
+    void getWebArchiveOfFrame(WebFrameProxy*, Function<void (API::Data*, CallbackBase::Error)>&&);
     void runJavaScriptInMainFrame(const String&, std::function<void (API::SerializedScriptValue*, bool hadException, const WebCore::ExceptionDetails&, CallbackBase::Error)> callbackFunction);
     void forceRepaint(PassRefPtr<VoidCallback>);
 

Modified: trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp (213776 => 213777)


--- trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp	2017-03-13 00:34:38 UTC (rev 213776)
+++ trunk/Source/WebKit2/UIProcess/WebProcessPool.cpp	2017-03-13 01:37:36 UTC (rev 213777)
@@ -1227,7 +1227,7 @@
 #endif
 }
 
-void WebProcessPool::getStatistics(uint32_t statisticsMask, std::function<void (API::Dictionary*, CallbackBase::Error)> callbackFunction)
+void WebProcessPool::getStatistics(uint32_t statisticsMask, Function<void (API::Dictionary*, CallbackBase::Error)>&& callbackFunction)
 {
     if (!statisticsMask) {
         callbackFunction(nullptr, CallbackBase::Error::Unknown);

Modified: trunk/Source/WebKit2/UIProcess/WebProcessPool.h (213776 => 213777)


--- trunk/Source/WebKit2/UIProcess/WebProcessPool.h	2017-03-13 00:34:38 UTC (rev 213776)
+++ trunk/Source/WebKit2/UIProcess/WebProcessPool.h	2017-03-13 01:37:36 UTC (rev 213777)
@@ -274,7 +274,7 @@
     void setHTTPPipeliningEnabled(bool);
     bool httpPipeliningEnabled() const;
 
-    void getStatistics(uint32_t statisticsMask, std::function<void (API::Dictionary*, CallbackBase::Error)>);
+    void getStatistics(uint32_t statisticsMask, Function<void (API::Dictionary*, CallbackBase::Error)>&&);
     
     bool _javascript_ConfigurationFileEnabled() { return m_javaScriptConfigurationFileEnabled; }
     void setJavaScriptConfigurationFileEnabled(bool flag);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to