[webkit-reviews] review granted: [Bug 209192] Add WKUIDelegatePrivate SPI _webView:printFrame:completionHandler: : [Attachment 393777] Patch
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Tue Mar 17 12:40:56 PDT 2020
Geoffrey Garen <ggaren at apple.com> has granted Alex Christensen
<achristensen at apple.com>'s request for review:
Bug 209192: Add WKUIDelegatePrivate SPI _webView:printFrame:completionHandler:
https://bugs.webkit.org/show_bug.cgi?id=209192
Attachment 393777: Patch
https://bugs.webkit.org/attachment.cgi?id=393777&action=review
--- Comment #3 from Geoffrey Garen <ggaren at apple.com> ---
Comment on attachment 393777
--> https://bugs.webkit.org/attachment.cgi?id=393777
Patch
View in context: https://bugs.webkit.org/attachment.cgi?id=393777&action=review
r=me
> Source/WebKit/UIProcess/Cocoa/UIDelegate.mm:1099
> + auto handle = API::FrameHandle::create(webFrameProxy.frameID());
> + if (m_uiDelegate.m_delegateMethods.webViewPrintFrame) {
> + [(id <WKUIDelegatePrivate>)delegate _webView:m_uiDelegate.m_webView
printFrame:wrapper(handle)];
> + completionHandler();
> + } else if
(m_uiDelegate.m_delegateMethods.webViewPrintFrameCompletionHandler) {
> + auto checker = CompletionHandlerCallChecker::create(delegate.get(),
@selector(_webView:printFrame:completionHandler:));
> + [(id <WKUIDelegatePrivate>)delegate _webView:m_uiDelegate.m_webView
printFrame:wrapper(handle) completionHandler:makeBlockPtr([checker =
WTFMove(checker), completionHandler = WTFMove(completionHandler)] () mutable {
> + if (checker->completionHandlerHasBeenCalled())
> + return;
> + checker->didCallCompletionHandler();
> + completionHandler();
> + }).get()];
> + } else
> + completionHandler();
I think you want to do the delegate method check in the opposite order, so the
new API wins if implemented. That way, a client can implement both if they need
to support older WebKits, without doing #ifdef stuff.
More information about the webkit-reviews
mailing list