Changeset 272635 in webkit


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

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

Reviewed by Chris Dumez.

  • UIProcess/API/gtk/WebKitPrintOperation.cpp:

(webkitPrintOperationPrintPagesForFrame):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::drawPagesForPrinting):
(WebKit::WebPageProxy::printFinishedCallback): Deleted.

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

(WebKit::WebPage::drawPagesForPrinting):
(WebKit::WebPage::didFinishPrintOperation): Deleted.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:

(WebKit::WebPrintOperationGtk::printDone):

  • WebProcess/WebPage/gtk/WebPrintOperationGtk.h:
Location:
trunk/Source/WebKit
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r272631 r272635  
     12021-02-09  Alex Christensen  <achristensen@webkit.org>
     2
     3        Use CompletionHandler instead of PrintFinishedCallback
     4        https://bugs.webkit.org/show_bug.cgi?id=221643
     5
     6        Reviewed by Chris Dumez.
     7
     8        * UIProcess/API/gtk/WebKitPrintOperation.cpp:
     9        (webkitPrintOperationPrintPagesForFrame):
     10        * UIProcess/WebPageProxy.cpp:
     11        (WebKit::WebPageProxy::drawPagesForPrinting):
     12        (WebKit::WebPageProxy::printFinishedCallback): Deleted.
     13        * UIProcess/WebPageProxy.h:
     14        * UIProcess/WebPageProxy.messages.in:
     15        * WebProcess/WebPage/WebPage.cpp:
     16        (WebKit::WebPage::drawPagesForPrinting):
     17        (WebKit::WebPage::didFinishPrintOperation): Deleted.
     18        * WebProcess/WebPage/WebPage.h:
     19        * WebProcess/WebPage/WebPage.messages.in:
     20        * WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
     21        (WebKit::WebPrintOperationGtk::printDone):
     22        * WebProcess/WebPage/gtk/WebPrintOperationGtk.h:
     23
    1242021-02-09  Devin Rousso  <drousso@apple.com>
    225
  • trunk/Source/WebKit/UIProcess/API/gtk/WebKitPrintOperation.cpp

    r262375 r272635  
    327327    auto& page = webkitWebViewGetPage(printOperation->priv->webView);
    328328    g_object_ref(printOperation);
    329     page.drawPagesForPrinting(webFrame, printInfo, PrintFinishedCallback::create([printOperation](API::Error* printError, CallbackBase::Error) {
     329    page.drawPagesForPrinting(webFrame, printInfo, [printOperation](API::Error* printError) {
    330330        drawPagesForPrintingCompleted(printError, adoptGRef(printOperation).get());
    331     }));
     331    });
    332332}
    333333
  • trunk/Source/WebKit/UIProcess/WebPageProxy.cpp

    r272630 r272635  
    72967296}
    72977297
    7298 #if PLATFORM(GTK)
    7299 void WebPageProxy::printFinishedCallback(const ResourceError& printError, CallbackID callbackID)
    7300 {
    7301     auto callback = m_callbacks.take<PrintFinishedCallback>(callbackID);
    7302     if (!callback) {
    7303         // FIXME: Log error or assert.
    7304         return;
    7305     }
    7306 
    7307     callback->performCallbackWithReturnValue(API::Error::create(printError).ptr());
    7308 }
    7309 #endif
    7310 
    73117298void WebPageProxy::focusedFrameChanged(const Optional<FrameIdentifier>& frameID)
    73127299{
     
    85778564}
    85788565#elif PLATFORM(GTK)
    8579 void WebPageProxy::drawPagesForPrinting(WebFrameProxy* frame, const PrintInfo& printInfo, Ref<PrintFinishedCallback>&& callback)
    8580 {
    8581     if (!hasRunningProcess()) {
    8582         callback->invalidate();
    8583         return;
    8584     }
    8585 
    8586     auto callbackID = callback->callbackID();
    8587     m_callbacks.put(WTFMove(callback));
     8566void WebPageProxy::drawPagesForPrinting(WebFrameProxy* frame, const PrintInfo& printInfo, CompletionHandler<void(API::Error*)>&& callback)
     8567{
     8568    auto callbackWrapper = [callback = WTFMove(callback)] (const WebCore::ResourceError& error) mutable {
     8569        if (error.isNull())
     8570            return callback(nullptr);
     8571        callback(API::Error::create(error).ptr());
     8572    };
    85888573    m_isInPrintingMode = true;
    8589     send(Messages::WebPage::DrawPagesForPrinting(frame->frameID(), printInfo, callbackID), printingSendOptions(m_isPerformingDOMPrintOperation));
     8574    sendWithAsyncReply(Messages::WebPage::DrawPagesForPrinting(frame->frameID(), printInfo), WTFMove(callbackWrapper), printingSendOptions(m_isPerformingDOMPrintOperation));
    85908575}
    85918576#endif
  • trunk/Source/WebKit/UIProcess/WebPageProxy.h

    r272630 r272635  
    189189class ContentWorld;
    190190class ContextMenuClient;
     191class Error;
    191192class FindClient;
    192193class FindMatchesClient;
     
    385386#if HAVE(VISIBILITY_PROPAGATION_VIEW)
    386387using LayerHostingContextID = uint32_t;
    387 #endif
    388 
    389 #if PLATFORM(GTK)
    390 typedef GenericCallback<API::Error*> PrintFinishedCallback;
    391388#endif
    392389
     
    13021299#endif
    13031300#elif PLATFORM(GTK)
    1304     void drawPagesForPrinting(WebFrameProxy*, const PrintInfo&, Ref<PrintFinishedCallback>&&);
     1301    void drawPagesForPrinting(WebFrameProxy*, const PrintInfo&, CompletionHandler<void(API::Error*)>&&);
    13051302#endif
    13061303
     
    21802177    void updateStringForFind(const String&);
    21812178#endif
    2182 #if PLATFORM(GTK)
    2183     void printFinishedCallback(const WebCore::ResourceError&, CallbackID);
    2184 #endif
    21852179
    21862180    void focusedFrameChanged(const Optional<WebCore::FrameIdentifier>&);
  • trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in

    r272630 r272635  
    185185    SetDataDetectionResult(struct WebKit::DataDetectionResult dataDetectionResult)
    186186#endif
    187 #if PLATFORM(GTK)
    188     PrintFinishedCallback(WebCore::ResourceError error, WebKit::CallbackID callbackID)
    189 #endif
    190187
    191188    PageScaleFactorDidChange(double scaleFactor)
  • trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp

    r272630 r272635  
    52435243
    52445244#elif PLATFORM(GTK)
    5245 void WebPage::drawPagesForPrinting(FrameIdentifier frameID, const PrintInfo& printInfo, CallbackID callbackID)
     5245void WebPage::drawPagesForPrinting(FrameIdentifier frameID, const PrintInfo& printInfo, CompletionHandler<void(const WebCore::ResourceError&)>&& completionHandler)
    52465246{
    52475247    beginPrinting(frameID, printInfo);
    52485248    if (m_printContext && m_printOperation) {
    5249         m_printOperation->startPrint(m_printContext.get(), callbackID);
    5250         return;
    5251     }
    5252 
    5253     send(Messages::WebPageProxy::VoidCallback(callbackID));
    5254 }
    5255 
    5256 void WebPage::didFinishPrintOperation(const WebCore::ResourceError& error, CallbackID callbackID)
    5257 {
    5258     send(Messages::WebPageProxy::PrintFinishedCallback(error, callbackID));
    5259     m_printOperation = nullptr;
     5249        m_printOperation->startPrint(m_printContext.get(), [this, protectedThis = makeRef(*this), completionHandler = WTFMove(completionHandler)] (const WebCore::ResourceError& error) mutable {
     5250            m_printOperation = nullptr;
     5251            completionHandler(error);
     5252        });
     5253        return;
     5254    }
     5255    completionHandler({ });
    52605256}
    52615257#endif
  • trunk/Source/WebKit/WebProcess/WebPage/WebPage.h

    r272630 r272635  
    982982
    983983#if PLATFORM(GTK)
    984     void drawPagesForPrinting(WebCore::FrameIdentifier, const PrintInfo&, CallbackID);
    985     void didFinishPrintOperation(const WebCore::ResourceError&, CallbackID);
     984    void drawPagesForPrinting(WebCore::FrameIdentifier, const PrintInfo&, CompletionHandler<void(const WebCore::ResourceError&)>&&);
    986985#endif
    987986
  • trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in

    r272628 r272635  
    409409#endif
    410410#if PLATFORM(GTK)
    411     DrawPagesForPrinting(WebCore::FrameIdentifier frameID, struct WebKit::PrintInfo printInfo, WebKit::CallbackID callbackID)
     411    DrawPagesForPrinting(WebCore::FrameIdentifier frameID, struct WebKit::PrintInfo printInfo) -> (WebCore::ResourceError error) Async
    412412#endif
    413413
  • trunk/Source/WebKit/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp

    r262375 r272635  
    6565    }
    6666
    67     void startPrint(WebCore::PrintContext* printContext, CallbackID callbackID) override
     67    void startPrint(WebCore::PrintContext* printContext, CompletionHandler<void(const WebCore::ResourceError&)>&& completionHandler) override
    6868    {
    6969        m_printContext = printContext;
    70         m_callbackID = callbackID;
     70        m_completionHandler = WTFMove(completionHandler);
    7171
    7272        RefPtr<PrinterListGtk> printerList = PrinterListGtk::getOrCreate();
     
    189189    }
    190190
    191     void startPrint(WebCore::PrintContext* printContext, CallbackID callbackID) override
     191    void startPrint(WebCore::PrintContext* printContext, CompletionHandler<void(const WebCore::ResourceError&)>&& completionHandler) override
    192192    {
    193193        m_printContext = printContext;
    194         m_callbackID = callbackID;
    195194        notImplemented();
     195        completionHandler({ });
    196196    }
    197197
     
    720720
    721721    // Print finished or failed, notify the UI process that we are done if the page hasn't been closed.
    722     if (m_webPage)
    723         m_webPage->didFinishPrintOperation(error, m_callbackID);
     722    if (m_completionHandler)
     723        m_completionHandler(error);
    724724}
    725725
  • trunk/Source/WebKit/WebProcess/WebPage/gtk/WebPrintOperationGtk.h

    r238771 r272635  
    3030#include "PrintInfo.h"
    3131#include <WebCore/RefPtrCairo.h>
     32#include <wtf/CompletionHandler.h>
    3233#include <wtf/RefCounted.h>
    3334#include <wtf/RefPtr.h>
     
    7677    void disconnectFromPage();
    7778
    78     virtual void startPrint(WebCore::PrintContext*, CallbackID) = 0;
     79    virtual void startPrint(WebCore::PrintContext*, CompletionHandler<void(const WebCore::ResourceError&)>&&) = 0;
    7980
    8081protected:
     
    104105    PrintInfo::PrintMode m_printMode;
    105106    WebCore::PrintContext* m_printContext;
    106     CallbackID m_callbackID;
     107    CompletionHandler<void(const WebCore::ResourceError&)> m_completionHandler;
    107108    RefPtr<cairo_t> m_cairoContext;
    108109    double m_xDPI;
Note: See TracChangeset for help on using the changeset viewer.