Changeset 169984 in webkit


Ignore:
Timestamp:
Jun 14, 2014 4:11:42 PM (10 years ago)
Author:
mitz@apple.com
Message:

Get rid of GenericAPICallback
https://bugs.webkit.org/show_bug.cgi?id=133909

Reviewed by Sam Weinig.

In preparation for passing callbacks as functions, replace GenericAPICallback::create, which
returned a GenericCallback, with a function template that returns an appropriate callback
function.

  • UIProcess/API/C/WKApplicationCacheManager.cpp:

(WKApplicationCacheManagerGetApplicationCacheOrigins):

  • UIProcess/API/C/WKContext.cpp:

(WKContextGetStatistics):
(WKContextGetStatisticsWithOptions):

  • UIProcess/API/C/WKCookieManager.cpp:

(WKCookieManagerGetHostnamesWithCookies):
(WKCookieManagerGetHTTPCookieAcceptPolicy):

  • UIProcess/API/C/WKDatabaseManager.cpp:

(WKDatabaseManagerGetDatabasesByOrigin):
(WKDatabaseManagerGetDatabaseOrigins):

  • UIProcess/API/C/WKFrame.cpp:

(WKFrameGetMainResourceData):
(WKFrameGetResourceData):
(WKFrameGetWebArchive):

  • UIProcess/API/C/WKKeyValueStorageManager.cpp:

(WKKeyValueStorageManagerGetKeyValueStorageOrigins):
(WKKeyValueStorageManagerGetStorageDetailsByOrigin):

  • UIProcess/API/C/WKMediaCacheManager.cpp:

(WKMediaCacheManagerGetHostnamesWithMediaCache):

  • UIProcess/API/C/WKOriginDataManager.cpp:

(WKOriginDataManagerGetOrigins):

  • UIProcess/API/C/WKPage.cpp:

(WKPageRunJavaScriptInMainFrame):
(WKPageRenderTreeExternalRepresentation):
(WKPageGetSourceForFrame):
(WKPageGetContentsAsString):
(WKPageGetBytecodeProfile):
(WKPageGetSelectionAsWebArchiveData):
(WKPageGetContentsAsMHTMLData):
(WKPageDrawPagesToPDF):

  • UIProcess/API/C/WKPluginSiteDataManager.cpp:

(WKPluginSiteDataManagerGetSitesWithData):

  • UIProcess/API/C/WKResourceCacheManager.cpp:

(WKResourceCacheManagerGetCacheOrigins):

  • UIProcess/GenericCallback.h:

(WebKit::toGenericCallbackFunction): Added. Given a C SPI callback function, returns a generic
callback function that wraps it.

Location:
trunk/Source/WebKit2
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r169983 r169984  
     12014-06-14  Dan Bernstein  <mitz@apple.com>
     2
     3        Get rid of GenericAPICallback
     4        https://bugs.webkit.org/show_bug.cgi?id=133909
     5
     6        Reviewed by Sam Weinig.
     7
     8        In preparation for passing callbacks as functions, replace GenericAPICallback::create, which
     9        returned a GenericCallback, with a function template that returns an appropriate callback
     10        function.
     11
     12        * UIProcess/API/C/WKApplicationCacheManager.cpp:
     13        (WKApplicationCacheManagerGetApplicationCacheOrigins):
     14        * UIProcess/API/C/WKContext.cpp:
     15        (WKContextGetStatistics):
     16        (WKContextGetStatisticsWithOptions):
     17        * UIProcess/API/C/WKCookieManager.cpp:
     18        (WKCookieManagerGetHostnamesWithCookies):
     19        (WKCookieManagerGetHTTPCookieAcceptPolicy):
     20        * UIProcess/API/C/WKDatabaseManager.cpp:
     21        (WKDatabaseManagerGetDatabasesByOrigin):
     22        (WKDatabaseManagerGetDatabaseOrigins):
     23        * UIProcess/API/C/WKFrame.cpp:
     24        (WKFrameGetMainResourceData):
     25        (WKFrameGetResourceData):
     26        (WKFrameGetWebArchive):
     27        * UIProcess/API/C/WKKeyValueStorageManager.cpp:
     28        (WKKeyValueStorageManagerGetKeyValueStorageOrigins):
     29        (WKKeyValueStorageManagerGetStorageDetailsByOrigin):
     30        * UIProcess/API/C/WKMediaCacheManager.cpp:
     31        (WKMediaCacheManagerGetHostnamesWithMediaCache):
     32        * UIProcess/API/C/WKOriginDataManager.cpp:
     33        (WKOriginDataManagerGetOrigins):
     34        * UIProcess/API/C/WKPage.cpp:
     35        (WKPageRunJavaScriptInMainFrame):
     36        (WKPageRenderTreeExternalRepresentation):
     37        (WKPageGetSourceForFrame):
     38        (WKPageGetContentsAsString):
     39        (WKPageGetBytecodeProfile):
     40        (WKPageGetSelectionAsWebArchiveData):
     41        (WKPageGetContentsAsMHTMLData):
     42        (WKPageDrawPagesToPDF):
     43        * UIProcess/API/C/WKPluginSiteDataManager.cpp:
     44        (WKPluginSiteDataManagerGetSitesWithData):
     45        * UIProcess/API/C/WKResourceCacheManager.cpp:
     46        (WKResourceCacheManagerGetCacheOrigins):
     47
     48        * UIProcess/GenericCallback.h:
     49        (WebKit::toGenericCallbackFunction): Added. Given a C SPI callback function, returns a generic
     50        callback function that wraps it.
     51
    1522014-06-14  Dan Bernstein  <mitz@apple.com>
    253
  • trunk/Source/WebKit2/UIProcess/API/C/WKApplicationCacheManager.cpp

    r164409 r169984  
    3232using namespace WebKit;
    3333
    34 typedef GenericAPICallback<WKArrayRef> ArrayAPICallback;
    35 
    3634WKTypeID WKApplicationCacheManagerGetTypeID()
    3735{
     
    4139void WKApplicationCacheManagerGetApplicationCacheOrigins(WKApplicationCacheManagerRef applicationCacheManagerRef, void* context, WKApplicationCacheManagerGetApplicationCacheOriginsFunction callback)
    4240{
    43     toImpl(applicationCacheManagerRef)->getApplicationCacheOrigins(ArrayAPICallback::create(context, callback));
     41    toImpl(applicationCacheManagerRef)->getApplicationCacheOrigins(ArrayCallback::create(toGenericCallbackFunction(context, callback)));
    4442}
    4543
  • trunk/Source/WebKit2/UIProcess/API/C/WKContext.cpp

    r168999 r169984  
    6969using namespace WebKit;
    7070
    71 typedef GenericAPICallback<WKDictionaryRef> DictionaryAPICallback;
    72 
    7371WKTypeID WKContextGetTypeID()
    7472{
     
    520518void WKContextGetStatistics(WKContextRef contextRef, void* context, WKContextGetStatisticsFunction callback)
    521519{
    522     toImpl(contextRef)->getStatistics(0xFFFFFFFF, DictionaryAPICallback::create(context, callback));
     520    toImpl(contextRef)->getStatistics(0xFFFFFFFF, DictionaryCallback::create(toGenericCallbackFunction(context, callback)));
    523521}
    524522
    525523void WKContextGetStatisticsWithOptions(WKContextRef contextRef, WKStatisticsOptions optionsMask, void* context, WKContextGetStatisticsFunction callback)
    526524{
    527     toImpl(contextRef)->getStatistics(optionsMask, DictionaryAPICallback::create(context, callback));
     525    toImpl(contextRef)->getStatistics(optionsMask, DictionaryCallback::create(toGenericCallbackFunction(context, callback)));
    528526}
    529527
  • trunk/Source/WebKit2/UIProcess/API/C/WKCookieManager.cpp

    r164409 r169984  
    3232using namespace WebKit;
    3333
    34 typedef GenericAPICallback<WKArrayRef> ArrayAPICallback;
    35 typedef GenericAPICallback<WKHTTPCookieAcceptPolicy, HTTPCookieAcceptPolicy> HTTPCookieAcceptPolicyAPICallback;
    36 
    3734WKTypeID WKCookieManagerGetTypeID()
    3835{
     
    4744void WKCookieManagerGetHostnamesWithCookies(WKCookieManagerRef cookieManagerRef, void* context, WKCookieManagerGetCookieHostnamesFunction callback)
    4845{
    49     toImpl(cookieManagerRef)->getHostnamesWithCookies(ArrayAPICallback::create(context, callback));
     46    toImpl(cookieManagerRef)->getHostnamesWithCookies(ArrayCallback::create(toGenericCallbackFunction(context, callback)));
    5047}
    5148
     
    7269void WKCookieManagerGetHTTPCookieAcceptPolicy(WKCookieManagerRef cookieManager, void* context, WKCookieManagerGetHTTPCookieAcceptPolicyFunction callback)
    7370{
    74     toImpl(cookieManager)->getHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicyAPICallback::create(context, callback));
     71    toImpl(cookieManager)->getHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicyCallback::create(toGenericCallbackFunction<WKHTTPCookieAcceptPolicy, HTTPCookieAcceptPolicy>(context, callback)));
    7572}
    7673
  • trunk/Source/WebKit2/UIProcess/API/C/WKDatabaseManager.cpp

    r165539 r169984  
    3232using namespace WebKit;
    3333
    34 #if ENABLE(SQL_DATABASE)
    35 typedef GenericAPICallback<WKArrayRef> ArrayAPICallback;
    36 #endif
    37 
    3834WKTypeID WKDatabaseManagerGetTypeID()
    3935{
     
    160156{
    161157#if ENABLE(SQL_DATABASE)
    162     toImpl(databaseManagerRef)->getDatabasesByOrigin(ArrayAPICallback::create(context, callback));
     158    toImpl(databaseManagerRef)->getDatabasesByOrigin(ArrayCallback::create(toGenericCallbackFunction(context, callback)));
    163159#else
    164160    UNUSED_PARAM(databaseManagerRef);
     
    171167{
    172168#if ENABLE(SQL_DATABASE)
    173     toImpl(databaseManagerRef)->getDatabaseOrigins(ArrayAPICallback::create(context, callback));
     169    toImpl(databaseManagerRef)->getDatabaseOrigins(ArrayCallback::create(toGenericCallbackFunction(context, callback)));
    174170#else
    175171    UNUSED_PARAM(databaseManagerRef);
  • trunk/Source/WebKit2/UIProcess/API/C/WKFrame.cpp

    r164409 r169984  
    3131
    3232using namespace WebKit;
    33 
    34 typedef GenericAPICallback<WKDataRef> DataAPICallback;
    3533
    3634WKTypeID WKFrameGetTypeID()
     
    127125void WKFrameGetMainResourceData(WKFrameRef frameRef, WKFrameGetResourceDataFunction callback, void* context)
    128126{
    129     toImpl(frameRef)->getMainResourceData(DataAPICallback::create(context, callback));
     127    toImpl(frameRef)->getMainResourceData(DataCallback::create(toGenericCallbackFunction(context, callback)));
    130128}
    131129
    132130void WKFrameGetResourceData(WKFrameRef frameRef, WKURLRef resourceURL, WKFrameGetResourceDataFunction callback, void* context)
    133131{
    134     toImpl(frameRef)->getResourceData(toImpl(resourceURL), DataAPICallback::create(context, callback));
     132    toImpl(frameRef)->getResourceData(toImpl(resourceURL), DataCallback::create(toGenericCallbackFunction(context, callback)));
    135133}
    136134
    137135void WKFrameGetWebArchive(WKFrameRef frameRef, WKFrameGetWebArchiveFunction callback, void* context)
    138136{
    139     toImpl(frameRef)->getWebArchive(DataAPICallback::create(context, callback));
     137    toImpl(frameRef)->getWebArchive(DataCallback::create(toGenericCallbackFunction(context, callback)));
    140138}
    141139
  • trunk/Source/WebKit2/UIProcess/API/C/WKKeyValueStorageManager.cpp

    r164409 r169984  
    3232using namespace WebKit;
    3333
    34 typedef GenericAPICallback<WKArrayRef> ArrayAPICallback;
    35 
    3634WKTypeID WKKeyValueStorageManagerGetTypeID()
    3735{
     
    5957void WKKeyValueStorageManagerGetKeyValueStorageOrigins(WKKeyValueStorageManagerRef keyValueStorageManagerRef, void* context, WKKeyValueStorageManagerGetKeyValueStorageOriginsFunction callback)
    6058{
    61     toImpl(keyValueStorageManagerRef)->getKeyValueStorageOrigins(ArrayAPICallback::create(context, callback));
     59    toImpl(keyValueStorageManagerRef)->getKeyValueStorageOrigins(ArrayCallback::create(toGenericCallbackFunction(context, callback)));
    6260}
    6361
    6462void WKKeyValueStorageManagerGetStorageDetailsByOrigin(WKKeyValueStorageManagerRef keyValueStorageManagerRef, void* context, WKKeyValueStorageManagerGetStorageDetailsByOriginFunction callback)
    6563{
    66     toImpl(keyValueStorageManagerRef)->getStorageDetailsByOrigin(ArrayAPICallback::create(context, callback));
     64    toImpl(keyValueStorageManagerRef)->getStorageDetailsByOrigin(ArrayCallback::create(toGenericCallbackFunction(context, callback)));
    6765}
    6866
  • trunk/Source/WebKit2/UIProcess/API/C/WKMediaCacheManager.cpp

    r164409 r169984  
    3232using namespace WebKit;
    3333
    34 typedef GenericAPICallback<WKArrayRef> ArrayAPICallback;
    35 
    3634WKTypeID WKMediaCacheManagerGetTypeID()
    3735{
     
    4139void WKMediaCacheManagerGetHostnamesWithMediaCache(WKMediaCacheManagerRef mediaCacheManagerRef, void* context, WKMediaCacheManagerGetHostnamesWithMediaCacheFunction callback)
    4240{
    43     toImpl(mediaCacheManagerRef)->getHostnamesWithMediaCache(ArrayAPICallback::create(context, callback));
     41    toImpl(mediaCacheManagerRef)->getHostnamesWithMediaCache(ArrayCallback::create(toGenericCallbackFunction(context, callback)));
    4442}
    4543
  • trunk/Source/WebKit2/UIProcess/API/C/WKOriginDataManager.cpp

    r164409 r169984  
    3232using namespace WebKit;
    3333
    34 typedef GenericAPICallback<WKArrayRef> ArrayAPICallback;
    35 
    3634WKTypeID WKOriginDataManagerGetTypeID()
    3735{
     
    4139void WKOriginDataManagerGetOrigins(WKOriginDataManagerRef originDataManagerRef, WKOriginDataTypes types, void* context, WKOriginDataManagerGetOriginsFunction callback)
    4240{
    43     toImpl(originDataManagerRef)->getOrigins(types, ArrayAPICallback::create(context, callback));
     41    toImpl(originDataManagerRef)->getOrigins(types, ArrayCallback::create(toGenericCallbackFunction(context, callback)));
    4442}
    4543
  • trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp

    r169962 r169984  
    7878}
    7979
    80 typedef GenericAPICallback<WKDataRef> DataAPICallback;
    81 typedef GenericAPICallback<WKStringRef, StringImpl*> StringAPICallback;
    82 typedef GenericAPICallback<WKSerializedScriptValueRef> ScriptValueAPICallback;
    83 
    8480WKTypeID WKPageGetTypeID()
    8581{
     
    15671563void WKPageRunJavaScriptInMainFrame(WKPageRef pageRef, WKStringRef scriptRef, void* context, WKPageRunJavaScriptFunction callback)
    15681564{
    1569     toImpl(pageRef)->runJavaScriptInMainFrame(toImpl(scriptRef)->string(), ScriptValueAPICallback::create(context, callback));
     1565    toImpl(pageRef)->runJavaScriptInMainFrame(toImpl(scriptRef)->string(), ScriptValueCallback::create(toGenericCallbackFunction(context, callback)));
    15701566}
    15711567
     
    15861582void WKPageRenderTreeExternalRepresentation(WKPageRef pageRef, void* context, WKPageRenderTreeExternalRepresentationFunction callback)
    15871583{
    1588     toImpl(pageRef)->getRenderTreeExternalRepresentation(StringAPICallback::create(context, callback));
     1584    toImpl(pageRef)->getRenderTreeExternalRepresentation(StringCallback::create(toGenericCallbackFunction<WKStringRef, StringImpl*>(context, callback)));
    15891585}
    15901586
    15911587void WKPageGetSourceForFrame(WKPageRef pageRef, WKFrameRef frameRef, void* context, WKPageGetSourceForFrameFunction callback)
    15921588{
    1593     toImpl(pageRef)->getSourceForFrame(toImpl(frameRef), StringAPICallback::create(context, callback));
     1589    toImpl(pageRef)->getSourceForFrame(toImpl(frameRef), StringCallback::create(toGenericCallbackFunction<WKStringRef, StringImpl*>(context, callback)));
    15941590}
    15951591
    15961592void WKPageGetContentsAsString(WKPageRef pageRef, void* context, WKPageGetContentsAsStringFunction callback)
    15971593{
    1598     toImpl(pageRef)->getContentsAsString(StringAPICallback::create(context, callback));
     1594    toImpl(pageRef)->getContentsAsString(StringCallback::create(toGenericCallbackFunction<WKStringRef, StringImpl*>(context, callback)));
    15991595}
    16001596
    16011597void WKPageGetBytecodeProfile(WKPageRef pageRef, void* context, WKPageGetBytecodeProfileFunction callback)
    16021598{
    1603     toImpl(pageRef)->getBytecodeProfile(StringAPICallback::create(context, callback));
     1599    toImpl(pageRef)->getBytecodeProfile(StringCallback::create(toGenericCallbackFunction<WKStringRef, StringImpl*>(context, callback)));
    16041600}
    16051601
    16061602void WKPageGetSelectionAsWebArchiveData(WKPageRef pageRef, void* context, WKPageGetSelectionAsWebArchiveDataFunction callback)
    16071603{
    1608     toImpl(pageRef)->getSelectionAsWebArchiveData(DataAPICallback::create(context, callback));
     1604    toImpl(pageRef)->getSelectionAsWebArchiveData(DataCallback::create(toGenericCallbackFunction(context, callback)));
    16091605}
    16101606
     
    16121608{
    16131609#if ENABLE(MHTML)
    1614     toImpl(pageRef)->getContentsAsMHTMLData(DataAPICallback::create(context, callback), useBinaryEncoding);
     1610    toImpl(pageRef)->getContentsAsMHTMLData(DataCallback::create(toGenericCallbackFunction(context, callback)), useBinaryEncoding);
    16151611#else
    16161612    UNUSED_PARAM(pageRef);
     
    16951691void WKPageDrawPagesToPDF(WKPageRef page, WKFrameRef frame, WKPrintInfo printInfo, uint32_t first, uint32_t count, WKPageDrawToPDFFunction callback, void* context)
    16961692{
    1697     toImpl(page)->drawPagesToPDF(toImpl(frame), printInfoFromWKPrintInfo(printInfo), first, count, DataAPICallback::create(context, callback));
     1693    toImpl(page)->drawPagesToPDF(toImpl(frame), printInfoFromWKPrintInfo(printInfo), first, count, DataCallback::create(toGenericCallbackFunction(context, callback)));
    16981694}
    16991695
  • trunk/Source/WebKit2/UIProcess/API/C/WKPluginSiteDataManager.cpp

    r164409 r169984  
    3737using namespace WebKit;
    3838
    39 #if ENABLE(NETSCAPE_PLUGIN_API)
    40 typedef GenericAPICallback<WKArrayRef> ArrayAPICallback;
    41 #endif
    42 
    4339WKTypeID WKPluginSiteDataManagerGetTypeID()
    4440{
     
    5349{
    5450#if ENABLE(NETSCAPE_PLUGIN_API)
    55     toImpl(managerRef)->getSitesWithData(ArrayAPICallback::create(context, callback));
     51    toImpl(managerRef)->getSitesWithData(ArrayCallback::create(toGenericCallbackFunction(context, callback)));
    5652#else
    5753    UNUSED_PARAM(managerRef);
  • trunk/Source/WebKit2/UIProcess/API/C/WKResourceCacheManager.cpp

    r164409 r169984  
    3232using namespace WebKit;
    3333
    34 typedef GenericAPICallback<WKArrayRef> ArrayAPICallback;
    35 
    3634WKTypeID WKResourceCacheManagerGetTypeID()
    3735{
     
    4139void WKResourceCacheManagerGetCacheOrigins(WKResourceCacheManagerRef cacheManagerRef, void* context, WKResourceCacheManagerGetCacheOriginsFunction callback)
    4240{
    43     toImpl(cacheManagerRef)->getCacheOrigins(ArrayAPICallback::create(context, callback));
     41    toImpl(cacheManagerRef)->getCacheOrigins(ArrayCallback::create(toGenericCallbackFunction(context, callback)));
    4442}
    4543
  • trunk/Source/WebKit2/UIProcess/API/gtk/WebKitCookieManager.cpp

    r164438 r169984  
    3030
    3131using namespace WebKit;
    32 
    33 typedef GenericAPICallback<WKArrayRef> ArrayAPICallback;
    34 typedef GenericAPICallback<WKHTTPCookieAcceptPolicy, HTTPCookieAcceptPolicy> HTTPCookieAcceptPolicyAPICallback;
    3532
    3633/**
     
    215212
    216213    GTask* task = g_task_new(manager, cancellable, callback, userData);
    217     manager->priv->webCookieManager->getHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicyAPICallback::create(task, webkitCookieManagerGetAcceptPolicyCallback));
     214    manager->priv->webCookieManager->getHTTPCookieAcceptPolicy(HTTPCookieAcceptPolicyCallback::create(toGenericCallbackFunction<WKHTTPCookieAcceptPolicy, HTTPCookieAcceptPolicy>(task, webkitCookieManagerGetAcceptPolicyCallback)));
    218215}
    219216
     
    273270
    274271    GTask* task = g_task_new(manager, cancellable, callback, userData);
    275     manager->priv->webCookieManager->getHostnamesWithCookies(ArrayAPICallback::create(task, webkitCookieManagerGetDomainsWithCookiesCallback));
     272    manager->priv->webCookieManager->getHostnamesWithCookies(ArrayCallback::create(toGenericCallbackFunction(task, webkitCookieManagerGetDomainsWithCookiesCallback)));
    276273}
    277274
  • trunk/Source/WebKit2/UIProcess/GenericCallback.h

    r169983 r169984  
    170170
    171171template<typename APIReturnValueType, typename InternalReturnValueType = typename APITypeInfo<APIReturnValueType>::ImplType>
    172 class GenericAPICallback : public CallbackBase {
    173 public:
    174     typedef void (*CallbackFunction)(APIReturnValueType, WKErrorRef, void*);
    175 
    176     static PassRefPtr<GenericCallback<InternalReturnValueType>> create(void* context, CallbackFunction callback)
    177     {
    178         return GenericCallback<InternalReturnValueType>::create([context, callback](InternalReturnValueType returnValue, CallbackBase::Error error) {
    179             callback(toAPI(returnValue), error != CallbackBase::Error::None ? toAPI(API::Error::create().get()) : 0, context);
    180         });
    181     }
    182 };
     172static typename GenericCallback<InternalReturnValueType>::CallbackFunction toGenericCallbackFunction(void* context, void (*callback)(APIReturnValueType, WKErrorRef, void*))
     173{
     174    return [context, callback](InternalReturnValueType returnValue, CallbackBase::Error error) {
     175        callback(toAPI(returnValue), error != CallbackBase::Error::None ? toAPI(API::Error::create().get()) : 0, context);
     176    };
     177}
    183178
    184179typedef GenericCallback<const Vector<WebCore::IntRect>&, double> ComputedPagesCallback;
Note: See TracChangeset for help on using the changeset viewer.