Changeset 169994 in webkit


Ignore:
Timestamp:
Jun 15, 2014, 1:50:43 PM (11 years ago)
Author:
mitz@apple.com
Message:

Get rid of VoidAPICallback
https://bugs.webkit.org/show_bug.cgi?id=133928

Reviewed by Sam Weinig.

  • UIProcess/API/C/WKPage.cpp:

(WKPageForceRepaint): Wrap the API callback in a generic callback here.

  • UIProcess/API/C/WKPluginSiteDataManager.cpp:

(WKPluginSiteDataManagerClearSiteData): Ditto.
(WKPluginSiteDataManagerClearAllSiteData): Ditto.

  • UIProcess/GenericCallback.h:

(WebKit::GenericCallback::performCallback): Added this helper for 0-argument callbacks.
(WebKit::VoidCallback::create): Deleted.
(WebKit::VoidCallback::~VoidCallback): Deleted.
(WebKit::VoidCallback::performCallback): Deleted.
(WebKit::VoidCallback::invalidate): Deleted.
(WebKit::VoidCallback::VoidCallback): Deleted.
(WebKit::VoidAPICallback::create): Deleted.

  • UIProcess/mac/WKFullScreenWindowController.h:
Location:
trunk/Source/WebKit2
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r169993 r169994  
     12014-06-15  Dan Bernstein  <mitz@apple.com>
     2
     3        Get rid of VoidAPICallback
     4        https://bugs.webkit.org/show_bug.cgi?id=133928
     5
     6        Reviewed by Sam Weinig.
     7
     8        * UIProcess/API/C/WKPage.cpp:
     9        (WKPageForceRepaint): Wrap the API callback in a generic callback here.
     10
     11        * UIProcess/API/C/WKPluginSiteDataManager.cpp:
     12        (WKPluginSiteDataManagerClearSiteData): Ditto.
     13        (WKPluginSiteDataManagerClearAllSiteData): Ditto.
     14
     15        * UIProcess/GenericCallback.h:
     16        (WebKit::GenericCallback::performCallback): Added this helper for 0-argument callbacks.
     17        (WebKit::VoidCallback::create): Deleted.
     18        (WebKit::VoidCallback::~VoidCallback): Deleted.
     19        (WebKit::VoidCallback::performCallback): Deleted.
     20        (WebKit::VoidCallback::invalidate): Deleted.
     21        (WebKit::VoidCallback::VoidCallback): Deleted.
     22        (WebKit::VoidAPICallback::create): Deleted.
     23
     24        * UIProcess/mac/WKFullScreenWindowController.h:
     25
    1262014-06-15  Zan Dobersek  <zdobersek@igalia.com>
    227
  • trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp

    r169991 r169994  
    16121612void WKPageForceRepaint(WKPageRef pageRef, void* context, WKPageForceRepaintFunction callback)
    16131613{
    1614     toImpl(pageRef)->forceRepaint(VoidAPICallback::create(context, callback));
     1614    toImpl(pageRef)->forceRepaint(VoidCallback::create([context, callback](CallbackBase::Error error) {
     1615        callback(error == CallbackBase::Error::None ? nullptr : toAPI(API::Error::create().get()), context);
     1616    }));
    16151617}
    16161618
  • trunk/Source/WebKit2/UIProcess/API/C/WKPluginSiteDataManager.cpp

    r169984 r169994  
    7373{
    7474#if ENABLE(NETSCAPE_PLUGIN_API)
    75     toImpl(managerRef)->clearSiteData(toImpl(sitesRef), toNPClearSiteDataFlags(flags), maxAgeInSeconds, VoidAPICallback::create(context, function));
     75    toImpl(managerRef)->clearSiteData(toImpl(sitesRef), toNPClearSiteDataFlags(flags), maxAgeInSeconds, VoidCallback::create([context, function](CallbackBase::Error error) {
     76        function(error == CallbackBase::Error::None ? nullptr : toAPI(API::Error::create().get()), context);
     77    }));
    7678#else
    7779    UNUSED_PARAM(managerRef);
     
    8789{
    8890#if ENABLE(NETSCAPE_PLUGIN_API)
    89     toImpl(managerRef)->clearSiteData(0, NP_CLEAR_ALL, std::numeric_limits<uint64_t>::max(), VoidAPICallback::create(context, function));
     91    toImpl(managerRef)->clearSiteData(0, NP_CLEAR_ALL, std::numeric_limits<uint64_t>::max(), VoidCallback::create([context, function](CallbackBase::Error error) {
     92        function(error == CallbackBase::Error::None ? nullptr : toAPI(API::Error::create().get()), context);
     93    }));
    9094#else
    9195    UNUSED_PARAM(managerRef);
  • trunk/Source/WebKit2/UIProcess/GenericCallback.h

    r169990 r169994  
    7070};
    7171
    72 class VoidCallback : public CallbackBase {
    73 public:
    74     typedef std::function<void (Error)> CallbackFunction;
    75 
    76     static PassRefPtr<VoidCallback> create(CallbackFunction callback)
    77     {
    78         return adoptRef(new VoidCallback(callback));
    79     }
    80 
    81     virtual ~VoidCallback()
    82     {
    83         ASSERT(!m_callback);
    84     }
    85 
    86     void performCallback()
    87     {
    88         if (!m_callback)
    89             return;
    90 
    91         m_callback(Error::None);
    92 
    93         m_callback = nullptr;
    94     }
    95    
    96     void invalidate(Error error)
    97     {
    98         if (!m_callback)
    99             return;
    100 
    101         m_callback(error);
    102 
    103         m_callback = nullptr;
    104     }
    105 
    106 private:
    107     VoidCallback(CallbackFunction callback)
    108         : m_callback(callback)
    109     {
    110     }
    111 
    112     CallbackFunction m_callback;
    113 };
    114 
    115 class VoidAPICallback : public CallbackBase {
    116 public:
    117     typedef void (*CallbackFunction)(WKErrorRef, void*);
    118 
    119     static PassRefPtr<VoidCallback> create(void* context, CallbackFunction callback)
    120     {
    121         return VoidCallback::create([context, callback](Error error) {
    122             callback(error != Error::None ? toAPI(API::Error::create().get()) : 0, context);
    123         });
    124     }
    125 };
    126 
    12772template<typename... T>
    12873class GenericCallback : public CallbackBase {
     
    14994        m_callback = nullptr;
    15095    }
    151    
     96
     97    void performCallback()
     98    {
     99        performCallbackWithReturnValue();
     100    }
     101
    152102    void invalidate(Error error = Error::Unknown)
    153103    {
     
    177127}
    178128
     129typedef GenericCallback<> VoidCallback;
    179130typedef GenericCallback<const Vector<WebCore::IntRect>&, double> ComputedPagesCallback;
    180131typedef GenericCallback<const ShareableBitmap::Handle&> ImageCallback;
  • trunk/Source/WebKit2/UIProcess/mac/WKFullScreenWindowController.h

    r157681 r169994  
    2626#if ENABLE(FULLSCREEN_API)
    2727
     28#import "GenericCallback.h"
    2829#import <wtf/OwnPtr.h>
    2930#import <wtf/RetainPtr.h>
     
    3132namespace WebKit {
    3233class LayerTreeContext;
    33 class VoidCallback;
    3434}
    3535
Note: See TracChangeset for help on using the changeset viewer.