Diff
Modified: trunk/Source/WebKit2/ChangeLog (192446 => 192447)
--- trunk/Source/WebKit2/ChangeLog 2015-11-13 23:47:01 UTC (rev 192446)
+++ trunk/Source/WebKit2/ChangeLog 2015-11-14 00:00:56 UTC (rev 192447)
@@ -1,3 +1,17 @@
+2015-11-13 Tim Horton <timothy_hor...@apple.com>
+
+ Support printing in WKWebView
+ https://bugs.webkit.org/show_bug.cgi?id=151276
+ <rdar://problem/23525715>
+
+ Reviewed by Beth Dakin.
+
+ * UIProcess/API/Cocoa/WKWebView.mm:
+ (-[WKWebView _printOperationWithPrintInfo:]):
+ (-[WKWebView _printOperationWithPrintInfo:forFrame:]):
+ * UIProcess/API/Cocoa/WKWebViewPrivate.h:
+ Expose SPI similar to what we have on WKView.
+
2015-11-13 Joseph Pecoraro <pecor...@apple.com>
Follow-up to r192437. Add availability macros.
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm (192446 => 192447)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm 2015-11-13 23:47:01 UTC (rev 192446)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm 2015-11-14 00:00:56 UTC (rev 192447)
@@ -76,6 +76,7 @@
#import "_WKDiagnosticLoggingDelegate.h"
#import "_WKFindDelegate.h"
#import "_WKFormDelegate.h"
+#import "_WKFrameHandleInternal.h"
#import "_WKHitTestResultInternal.h"
#import "_WKInputDelegate.h"
#import "_WKRemoteObjectRegistryInternal.h"
@@ -92,7 +93,6 @@
#import <wtf/TemporaryChange.h>
#if PLATFORM(IOS)
-#import "_WKFrameHandleInternal.h"
#import "_WKWebViewPrintFormatter.h"
#import "PrintInfo.h"
#import "ProcessThrottler.h"
@@ -4066,6 +4066,20 @@
_impl->setClipsToVisibleRect(expandsToFit);
}
+- (NSPrintOperation *)_printOperationWithPrintInfo:(NSPrintInfo *)printInfo
+{
+ if (auto webFrameProxy = _page->mainFrame())
+ return _impl->printOperationWithPrintInfo(printInfo, *webFrameProxy);
+ return nil;
+}
+
+- (NSPrintOperation *)_printOperationWithPrintInfo:(NSPrintInfo *)printInfo forFrame:(_WKFrameHandle *)frameHandle
+{
+ if (auto webFrameProxy = _page->process().webFrame(frameHandle._frameID))
+ return _impl->printOperationWithPrintInfo(printInfo, *webFrameProxy);
+ return nil;
+}
+
#endif
@end
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h (192446 => 192447)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h 2015-11-13 23:47:01 UTC (rev 192446)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h 2015-11-14 00:00:56 UTC (rev 192447)
@@ -49,6 +49,7 @@
} WK_AVAILABLE(WK_MAC_TBA, NA);
@class WKBrowsingContextHandle;
+@class _WKFrameHandle;
@class _WKHitTestResult;
@class _WKRemoteObjectRegistry;
@class _WKSessionState;
@@ -188,6 +189,9 @@
@property (nonatomic, setter=_setMinimumLayoutWidth:) CGFloat _minimumLayoutWidth WK_AVAILABLE(WK_MAC_TBA, NA);
+- (NSPrintOperation *)_printOperationWithPrintInfo:(NSPrintInfo *)printInfo;
+- (NSPrintOperation *)_printOperationWithPrintInfo:(NSPrintInfo *)printInfo forFrame:(_WKFrameHandle *)frameHandle WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
+
#endif
- (WKNavigation *)_reloadWithoutContentBlockers WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
Modified: trunk/Tools/ChangeLog (192446 => 192447)
--- trunk/Tools/ChangeLog 2015-11-13 23:47:01 UTC (rev 192446)
+++ trunk/Tools/ChangeLog 2015-11-14 00:00:56 UTC (rev 192447)
@@ -1,5 +1,20 @@
2015-11-13 Tim Horton <timothy_hor...@apple.com>
+ Support printing in WKWebView
+ https://bugs.webkit.org/show_bug.cgi?id=151276
+ <rdar://problem/23525715>
+
+ Reviewed by Beth Dakin.
+
+ * MiniBrowser/mac/MainMenu.xib:
+ * MiniBrowser/mac/WK1BrowserWindowController.m:
+ (-[WK1BrowserWindowController printWebView:]):
+ * MiniBrowser/mac/WK2BrowserWindowController.m:
+ (-[WK2BrowserWindowController printWebView:]):
+ Hook up printing to Minibrowser!
+
+2015-11-13 Tim Horton <timothy_hor...@apple.com>
+
Hardware keyboard spacebar scrolls too far on iOS
https://bugs.webkit.org/show_bug.cgi?id=151227
<rdar://problem/23500681>
Modified: trunk/Tools/MiniBrowser/mac/MainMenu.xib (192446 => 192447)
--- trunk/Tools/MiniBrowser/mac/MainMenu.xib 2015-11-13 23:47:01 UTC (rev 192446)
+++ trunk/Tools/MiniBrowser/mac/MainMenu.xib 2015-11-14 00:00:56 UTC (rev 192447)
@@ -140,7 +140,7 @@
</menuItem>
<menuItem title="Print…" keyEquivalent="p" id="78">
<connections>
- <action selector="print:" target="-1" id="86"/>
+ <action selector="printWebView:" target="-1" id="86"/>
</connections>
</menuItem>
</items>
Modified: trunk/Tools/MiniBrowser/mac/WK1BrowserWindowController.m (192446 => 192447)
--- trunk/Tools/MiniBrowser/mac/WK1BrowserWindowController.m 2015-11-13 23:47:01 UTC (rev 192446)
+++ trunk/Tools/MiniBrowser/mac/WK1BrowserWindowController.m 2015-11-14 00:00:56 UTC (rev 192447)
@@ -283,6 +283,11 @@
}
}
+- (IBAction)printWebView:(id)sender
+{
+ [[[[_webView mainFrame] frameView] printOperationWithPrintInfo:[NSPrintInfo sharedPrintInfo]] runOperationModalForWindow:self.window delegate:nil didRunSelector:nil contextInfo:nil];
+}
+
- (void)webView:(WebView *)sender didLayout:(WebLayoutMilestones)milestones
{
if (milestones & WebDidFirstLayout)
Modified: trunk/Tools/MiniBrowser/mac/WK2BrowserWindowController.m (192446 => 192447)
--- trunk/Tools/MiniBrowser/mac/WK2BrowserWindowController.m 2015-11-13 23:47:01 UTC (rev 192446)
+++ trunk/Tools/MiniBrowser/mac/WK2BrowserWindowController.m 2015-11-14 00:00:56 UTC (rev 192447)
@@ -501,6 +501,11 @@
}];
}
+- (IBAction)printWebView:(id)sender
+{
+ [[_webView _printOperationWithPrintInfo:[NSPrintInfo sharedPrintInfo] forFrame:nil] runOperationModalForWindow:self.window delegate:nil didRunSelector:nil contextInfo:nil];
+}
+
#pragma mark WKNavigationDelegate
- (void)webView:(WKWebView *)webView decidePolicyForNavigationResponse:(WKNavigationResponse *)navigationResponse decisionHandler:(void (^)(WKNavigationResponsePolicy))decisionHandler