Changeset 272637 in webkit


Ignore:
Timestamp:
Feb 9, 2021 9:22:35 PM (3 years ago)
Author:
achristensen@apple.com
Message:

Use CompletionHandler instead of ApplicationManifestCallback
https://bugs.webkit.org/show_bug.cgi?id=221627

Reviewed by Chris Dumez.

  • UIProcess/API/C/WKPage.cpp:

(WKPageGetApplicationManifest_b):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _getApplicationManifestWithCompletionHandler:]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::getApplicationManifest):
(WebKit::WebPageProxy::applicationManifestCallback): Deleted.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::getApplicationManifest):
(WebKit::WebPage::didFinishLoadingApplicationManifest):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
Location:
trunk/Source/WebKit
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r272636 r272637  
     12021-02-09  Alex Christensen  <achristensen@webkit.org>
     2
     3        Use CompletionHandler instead of ApplicationManifestCallback
     4        https://bugs.webkit.org/show_bug.cgi?id=221627
     5
     6        Reviewed by Chris Dumez.
     7
     8        * UIProcess/API/C/WKPage.cpp:
     9        (WKPageGetApplicationManifest_b):
     10        * UIProcess/API/Cocoa/WKWebView.mm:
     11        (-[WKWebView _getApplicationManifestWithCompletionHandler:]):
     12        * UIProcess/WebPageProxy.cpp:
     13        (WebKit::WebPageProxy::getApplicationManifest):
     14        (WebKit::WebPageProxy::applicationManifestCallback): Deleted.
     15        * UIProcess/WebPageProxy.h:
     16        * UIProcess/WebPageProxy.messages.in:
     17        * WebProcess/WebPage/WebPage.cpp:
     18        (WebKit::WebPage::getApplicationManifest):
     19        (WebKit::WebPage::didFinishLoadingApplicationManifest):
     20        * WebProcess/WebPage/WebPage.h:
     21        * WebProcess/WebPage/WebPage.messages.in:
     22
    1232021-02-09  Alex Christensen  <achristensen@webkit.org>
    224
  • trunk/Source/WebKit/UIProcess/API/C/WKPage.cpp

    r272636 r272637  
    29012901{
    29022902#if ENABLE(APPLICATION_MANIFEST)
    2903     toImpl(page)->getApplicationManifest([block](const Optional<WebCore::ApplicationManifest> &manifest, CallbackBase::Error) {
     2903    toImpl(page)->getApplicationManifest([block](const Optional<WebCore::ApplicationManifest>& manifest) {
    29042904        block();
    29052905    });
  • trunk/Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm

    r272636 r272637  
    25672567{
    25682568#if ENABLE(APPLICATION_MANIFEST)
    2569     _page->getApplicationManifest([completionHandler = makeBlockPtr(completionHandler)](const Optional<WebCore::ApplicationManifest>& manifest, WebKit::CallbackBase::Error error) {
    2570         UNUSED_PARAM(error);
     2569    _page->getApplicationManifest([completionHandler = makeBlockPtr(completionHandler)](const Optional<WebCore::ApplicationManifest>& manifest) {
    25712570        if (completionHandler) {
    25722571            if (manifest) {
  • trunk/Source/WebKit/UIProcess/WebPageProxy.cpp

    r272636 r272637  
    71687168#endif
    71697169
    7170 #if ENABLE(APPLICATION_MANIFEST)
    7171 void WebPageProxy::applicationManifestCallback(const Optional<WebCore::ApplicationManifest>& manifestOrNull, CallbackID callbackID)
    7172 {
    7173     auto callback = m_callbacks.take<ApplicationManifestCallback>(callbackID);
    7174     if (!callback)
    7175         return;
    7176 
    7177     callback->performCallbackWithReturnValue(manifestOrNull);
    7178 }
    7179 #endif
    7180 
    71817170inline API::DiagnosticLoggingClient* WebPageProxy::effectiveDiagnosticLoggingClient(ShouldSample shouldSample)
    71827171{
     
    98429831
    98439832#if ENABLE(APPLICATION_MANIFEST)
    9844 void WebPageProxy::getApplicationManifest(Function<void(const Optional<WebCore::ApplicationManifest>&, CallbackBase::Error)>&& callbackFunction)
    9845 {
    9846     if (!hasRunningProcess()) {
    9847         callbackFunction(WTF::nullopt, CallbackBase::Error::Unknown);
    9848         return;
    9849     }
    9850 
    9851     auto callbackID = m_callbacks.put(WTFMove(callbackFunction), m_process->throttler().backgroundActivity("WebPageProxy::getApplicationManifest"_s));
    9852     m_loadDependentStringCallbackIDs.add(callbackID);
    9853     send(Messages::WebPage::GetApplicationManifest(callbackID));
     9833void WebPageProxy::getApplicationManifest(CompletionHandler<void(const Optional<WebCore::ApplicationManifest>&)>&& callback)
     9834{
     9835    sendWithAsyncReply(Messages::WebPage::GetApplicationManifest(), WTFMove(callback));
    98549836}
    98559837#endif
  • trunk/Source/WebKit/UIProcess/WebPageProxy.h

    r272636 r272637  
    398398#endif
    399399
    400 #if ENABLE(APPLICATION_MANIFEST)
    401 typedef GenericCallback<const Optional<WebCore::ApplicationManifest>&> ApplicationManifestCallback;
    402 #endif
    403 
    404400#if ENABLE(DATE_AND_TIME_INPUT_TYPES)
    405401class WebDateTimePicker;
     
    16361632
    16371633#if ENABLE(APPLICATION_MANIFEST)
    1638     void getApplicationManifest(Function<void(const Optional<WebCore::ApplicationManifest>&, CallbackBase::Error)>&&);
     1634    void getApplicationManifest(CompletionHandler<void(const Optional<WebCore::ApplicationManifest>&)>&&);
    16391635#endif
    16401636
     
    21622158    void stringCallback(const String&, CallbackID);
    21632159    void invalidateStringCallback(CallbackID);
    2164 #if ENABLE(APPLICATION_MANIFEST)
    2165     void applicationManifestCallback(const Optional<WebCore::ApplicationManifest>&, CallbackID);
    2166 #endif
    21672160#if PLATFORM(MAC)
    21682161    void didUpdateRenderingAfterCommittingLoad();
  • trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in

    r272636 r272637  
    167167    StringCallback(String resultString, WebKit::CallbackID callbackID)
    168168    InvalidateStringCallback(WebKit::CallbackID callbackID)
    169 #if ENABLE(APPLICATION_MANIFEST)
    170     ApplicationManifestCallback(Optional<WebCore::ApplicationManifest> manifest, WebKit::CallbackID callbackID)
    171 #endif
    172169#if PLATFORM(IOS_FAMILY)
    173170    InterpretKeyEvent(struct WebKit::EditorState state, bool isCharEvent) -> (bool handled) Synchronous
  • trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp

    r272636 r272637  
    996996    for (auto& completionHandler : std::exchange(m_markLayersAsVolatileCompletionHandlers, { }))
    997997        completionHandler(false);
     998   
     999#if ENABLE(APPLICATION_MANIFEST)
     1000    for (auto& completionHandler : m_applicationManifestFetchCallbackMap.values()) {
     1001        if (completionHandler)
     1002            completionHandler(WTF::nullopt);
     1003    }
     1004#endif
    9981005}
    9991006
     
    69426949
    69436950#if ENABLE(APPLICATION_MANIFEST)
    6944 void WebPage::getApplicationManifest(CallbackID callbackID)
    6945 {
    6946     ASSERT(callbackID.isValid());
     6951void WebPage::getApplicationManifest(CompletionHandler<void(const Optional<WebCore::ApplicationManifest>&)>&& completionHandler)
     6952{
    69476953    Document* mainFrameDocument = m_mainFrame->coreFrame()->document();
    69486954    DocumentLoader* loader = mainFrameDocument ? mainFrameDocument->loader() : nullptr;
    6949 
    6950     if (!loader) {
    6951         send(Messages::WebPageProxy::ApplicationManifestCallback(WTF::nullopt, callbackID));
    6952         return;
    6953     }
     6955    if (!loader)
     6956        return completionHandler(WTF::nullopt);
    69546957
    69556958    auto coreCallbackID = loader->loadApplicationManifest();
    6956     if (!coreCallbackID) {
    6957         send(Messages::WebPageProxy::ApplicationManifestCallback(WTF::nullopt, callbackID));
    6958         return;
    6959     }
    6960 
    6961     m_applicationManifestFetchCallbackMap.add(coreCallbackID, callbackID.toInteger());
     6959    if (!coreCallbackID)
     6960        return completionHandler(WTF::nullopt);
     6961
     6962    m_applicationManifestFetchCallbackMap.add(coreCallbackID, WTFMove(completionHandler));
    69626963}
    69636964
    69646965void WebPage::didFinishLoadingApplicationManifest(uint64_t coreCallbackID, const Optional<WebCore::ApplicationManifest>& manifest)
    69656966{
    6966     auto callbackID = CallbackID::fromInteger(m_applicationManifestFetchCallbackMap.take(coreCallbackID));
    6967     send(Messages::WebPageProxy::ApplicationManifestCallback(manifest, callbackID));
     6967    if (auto callback = m_applicationManifestFetchCallbackMap.take(coreCallbackID))
     6968        callback(manifest);
    69686969}
    69696970#endif // ENABLE(APPLICATION_MANIFEST)
  • trunk/Source/WebKit/WebProcess/WebPage/WebPage.h

    r272636 r272637  
    12601260
    12611261#if ENABLE(APPLICATION_MANIFEST)
    1262     void getApplicationManifest(CallbackID);
     1262    void getApplicationManifest(CompletionHandler<void(const Optional<WebCore::ApplicationManifest>&)>&&);
    12631263    void didFinishLoadingApplicationManifest(uint64_t, const Optional<WebCore::ApplicationManifest>&);
    12641264#endif
     
    21912191
    21922192#if ENABLE(APPLICATION_MANIFEST)
    2193     HashMap<uint64_t, uint64_t> m_applicationManifestFetchCallbackMap;
     2193    HashMap<uint64_t, CompletionHandler<void(const Optional<WebCore::ApplicationManifest>&)>> m_applicationManifestFetchCallbackMap;
    21942194#endif
    21952195
  • trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in

    r272636 r272637  
    572572
    573573#if ENABLE(APPLICATION_MANIFEST)
    574     GetApplicationManifest(WebKit::CallbackID callbackID)
     574    GetApplicationManifest() -> (Optional<WebCore::ApplicationManifest> manifest) Async
    575575#endif
    576576
Note: See TracChangeset for help on using the changeset viewer.