Changeset 272635 in webkit
- Timestamp:
- Feb 9, 2021, 8:35:57 PM (4 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/Source/WebKit/ChangeLog ¶
r272631 r272635 1 2021-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 1 24 2021-02-09 Devin Rousso <drousso@apple.com> 2 25 -
TabularUnified trunk/Source/WebKit/UIProcess/API/gtk/WebKitPrintOperation.cpp ¶
r262375 r272635 327 327 auto& page = webkitWebViewGetPage(printOperation->priv->webView); 328 328 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) { 330 330 drawPagesForPrintingCompleted(printError, adoptGRef(printOperation).get()); 331 }) );331 }); 332 332 } 333 333 -
TabularUnified trunk/Source/WebKit/UIProcess/WebPageProxy.cpp ¶
r272630 r272635 7296 7296 } 7297 7297 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 #endif7310 7311 7298 void WebPageProxy::focusedFrameChanged(const Optional<FrameIdentifier>& frameID) 7312 7299 { … … 8577 8564 } 8578 8565 #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)); 8566 void 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 }; 8588 8573 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)); 8590 8575 } 8591 8576 #endif -
TabularUnified trunk/Source/WebKit/UIProcess/WebPageProxy.h ¶
r272630 r272635 189 189 class ContentWorld; 190 190 class ContextMenuClient; 191 class Error; 191 192 class FindClient; 192 193 class FindMatchesClient; … … 385 386 #if HAVE(VISIBILITY_PROPAGATION_VIEW) 386 387 using LayerHostingContextID = uint32_t; 387 #endif388 389 #if PLATFORM(GTK)390 typedef GenericCallback<API::Error*> PrintFinishedCallback;391 388 #endif 392 389 … … 1302 1299 #endif 1303 1300 #elif PLATFORM(GTK) 1304 void drawPagesForPrinting(WebFrameProxy*, const PrintInfo&, Ref<PrintFinishedCallback>&&);1301 void drawPagesForPrinting(WebFrameProxy*, const PrintInfo&, CompletionHandler<void(API::Error*)>&&); 1305 1302 #endif 1306 1303 … … 2180 2177 void updateStringForFind(const String&); 2181 2178 #endif 2182 #if PLATFORM(GTK)2183 void printFinishedCallback(const WebCore::ResourceError&, CallbackID);2184 #endif2185 2179 2186 2180 void focusedFrameChanged(const Optional<WebCore::FrameIdentifier>&); -
TabularUnified trunk/Source/WebKit/UIProcess/WebPageProxy.messages.in ¶
r272630 r272635 185 185 SetDataDetectionResult(struct WebKit::DataDetectionResult dataDetectionResult) 186 186 #endif 187 #if PLATFORM(GTK)188 PrintFinishedCallback(WebCore::ResourceError error, WebKit::CallbackID callbackID)189 #endif190 187 191 188 PageScaleFactorDidChange(double scaleFactor) -
TabularUnified trunk/Source/WebKit/WebProcess/WebPage/WebPage.cpp ¶
r272630 r272635 5243 5243 5244 5244 #elif PLATFORM(GTK) 5245 void WebPage::drawPagesForPrinting(FrameIdentifier frameID, const PrintInfo& printInfo, C allbackID callbackID)5245 void WebPage::drawPagesForPrinting(FrameIdentifier frameID, const PrintInfo& printInfo, CompletionHandler<void(const WebCore::ResourceError&)>&& completionHandler) 5246 5246 { 5247 5247 beginPrinting(frameID, printInfo); 5248 5248 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({ }); 5260 5256 } 5261 5257 #endif -
TabularUnified trunk/Source/WebKit/WebProcess/WebPage/WebPage.h ¶
r272630 r272635 982 982 983 983 #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&)>&&); 986 985 #endif 987 986 -
TabularUnified trunk/Source/WebKit/WebProcess/WebPage/WebPage.messages.in ¶
r272628 r272635 409 409 #endif 410 410 #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 412 412 #endif 413 413 -
TabularUnified trunk/Source/WebKit/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp ¶
r262375 r272635 65 65 } 66 66 67 void startPrint(WebCore::PrintContext* printContext, C allbackID callbackID) override67 void startPrint(WebCore::PrintContext* printContext, CompletionHandler<void(const WebCore::ResourceError&)>&& completionHandler) override 68 68 { 69 69 m_printContext = printContext; 70 m_c allbackID = callbackID;70 m_completionHandler = WTFMove(completionHandler); 71 71 72 72 RefPtr<PrinterListGtk> printerList = PrinterListGtk::getOrCreate(); … … 189 189 } 190 190 191 void startPrint(WebCore::PrintContext* printContext, C allbackID callbackID) override191 void startPrint(WebCore::PrintContext* printContext, CompletionHandler<void(const WebCore::ResourceError&)>&& completionHandler) override 192 192 { 193 193 m_printContext = printContext; 194 m_callbackID = callbackID;195 194 notImplemented(); 195 completionHandler({ }); 196 196 } 197 197 … … 720 720 721 721 // 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); 724 724 } 725 725 -
TabularUnified trunk/Source/WebKit/WebProcess/WebPage/gtk/WebPrintOperationGtk.h ¶
r238771 r272635 30 30 #include "PrintInfo.h" 31 31 #include <WebCore/RefPtrCairo.h> 32 #include <wtf/CompletionHandler.h> 32 33 #include <wtf/RefCounted.h> 33 34 #include <wtf/RefPtr.h> … … 76 77 void disconnectFromPage(); 77 78 78 virtual void startPrint(WebCore::PrintContext*, C allbackID) = 0;79 virtual void startPrint(WebCore::PrintContext*, CompletionHandler<void(const WebCore::ResourceError&)>&&) = 0; 79 80 80 81 protected: … … 104 105 PrintInfo::PrintMode m_printMode; 105 106 WebCore::PrintContext* m_printContext; 106 C allbackID m_callbackID;107 CompletionHandler<void(const WebCore::ResourceError&)> m_completionHandler; 107 108 RefPtr<cairo_t> m_cairoContext; 108 109 double m_xDPI;
Note:
See TracChangeset
for help on using the changeset viewer.