Title: [164455] trunk/Source/WebKit2
- Revision
- 164455
- Author
- [email protected]
- Date
- 2014-02-20 15:46:18 -0800 (Thu, 20 Feb 2014)
Log Message
Add magnification and swiping properties to WKWebView
https://bugs.webkit.org/show_bug.cgi?id=129117
Reviewed by Dan Bernstein.
* UIProcess/API/Cocoa/WKViewPrivate.h:
Move allowsBackForwardNavigationGestures out of a Mac-only block.
* UIProcess/API/Cocoa/WKWebView.h:
Add allowsBackForwardNavigationGestures to WKWebView for both platforms.
Add magnification properties to WKWebView for Mac.
* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView contentView:didCommitLayerTree:WebKit::]):
(-[WKWebView setAllowsBackForwardNavigationGestures:]):
(-[WKWebView allowsBackForwardNavigationGestures]):
(-[WKWebView setAllowsMagnification:]):
(-[WKWebView allowsMagnification]):
(-[WKWebView setMagnification:]):
(-[WKWebView magnification]):
(-[WKWebView setMagnification:centeredAtPoint:]):
For iOS, copy implementations from WKViewIOS.
For Mac, forward to the inner WKView.
* UIProcess/API/ios/WKViewIOS.mm:
(-[WKView setAllowsBackForwardNavigationGestures:]):
Fix the logic to tear down the ViewGestureController.
* UIProcess/API/mac/WKView.mm:
(-[WKView setMagnification:centeredAtPoint:]):
(-[WKView setMagnification:]):
(-[WKView magnification]):
Use CG types for API.
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (164454 => 164455)
--- trunk/Source/WebKit2/ChangeLog 2014-02-20 23:34:21 UTC (rev 164454)
+++ trunk/Source/WebKit2/ChangeLog 2014-02-20 23:46:18 UTC (rev 164455)
@@ -1 +1,37 @@
+2014-02-20 Tim Horton <[email protected]>
+
+ Add magnification and swiping properties to WKWebView
+ https://bugs.webkit.org/show_bug.cgi?id=129117
+
+ Reviewed by Dan Bernstein.
+
+ * UIProcess/API/Cocoa/WKViewPrivate.h:
+ Move allowsBackForwardNavigationGestures out of a Mac-only block.
+
+ * UIProcess/API/Cocoa/WKWebView.h:
+ Add allowsBackForwardNavigationGestures to WKWebView for both platforms.
+ Add magnification properties to WKWebView for Mac.
+
+ * UIProcess/API/Cocoa/WKWebView.mm:
+ (-[WKWebView contentView:didCommitLayerTree:WebKit::]):
+ (-[WKWebView setAllowsBackForwardNavigationGestures:]):
+ (-[WKWebView allowsBackForwardNavigationGestures]):
+ (-[WKWebView setAllowsMagnification:]):
+ (-[WKWebView allowsMagnification]):
+ (-[WKWebView setMagnification:]):
+ (-[WKWebView magnification]):
+ (-[WKWebView setMagnification:centeredAtPoint:]):
+ For iOS, copy implementations from WKViewIOS.
+ For Mac, forward to the inner WKView.
+
+ * UIProcess/API/ios/WKViewIOS.mm:
+ (-[WKView setAllowsBackForwardNavigationGestures:]):
+ Fix the logic to tear down the ViewGestureController.
+
+ * UIProcess/API/mac/WKView.mm:
+ (-[WKView setMagnification:centeredAtPoint:]):
+ (-[WKView setMagnification:]):
+ (-[WKView magnification]):
+ Use CG types for API.
+
== Rolled over to ChangeLog-2014-02-20 ==
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.h (164454 => 164455)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.h 2014-02-20 23:34:21 UTC (rev 164454)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.h 2014-02-20 23:46:18 UTC (rev 164455)
@@ -117,8 +117,15 @@
- (void)goBack;
- (void)goForward;
+@property (nonatomic) BOOL allowsBackForwardNavigationGestures;
+
#if TARGET_OS_IPHONE
@property (nonatomic, readonly) UIScrollView *scrollView;
+#else
+@property (nonatomic) BOOL allowsMagnification;
+@property (nonatomic) CGFloat magnification;
+
+- (void)setMagnification:(CGFloat)magnification centeredAtPoint:(CGPoint)point;
#endif
@end
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm (164454 => 164455)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm 2014-02-20 23:34:21 UTC (rev 164454)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm 2014-02-20 23:46:18 UTC (rev 164455)
@@ -32,6 +32,7 @@
#import "RemoteLayerTreeTransaction.h"
#import "RemoteObjectRegistry.h"
#import "RemoteObjectRegistryMessages.h"
+#import "ViewGestureController.h"
#import "WKBackForwardListInternal.h"
#import "WKBackForwardListItemInternal.h"
#import "WKBrowsingContextHandleInternal.h"
@@ -83,6 +84,8 @@
UIEdgeInsets _obscuredInsets;
bool _isChangingObscuredInsetsInteractively;
CGFloat _lastAdjustmentForScroller;
+
+ std::unique_ptr<WebKit::ViewGestureController> _gestureController;
#endif
#if PLATFORM(MAC)
RetainPtr<WKView> _wkView;
@@ -307,6 +310,9 @@
if (![_scrollView isZooming] && ![_scrollView isZoomBouncing])
[_scrollView setZoomScale:layerTreeTransaction.pageScaleFactor()];
+ if (_gestureController)
+ _gestureController->setRenderTreeSize(layerTreeTransaction.renderTreeSize());
+
if (_isWaitingForNewLayerTreeAfterDidCommitLoad) {
UIEdgeInsets inset = [_scrollView contentInset];
[_scrollView setContentOffset:CGPointMake(-inset.left, -inset.top)];
@@ -438,6 +444,41 @@
[_wkView setFrame:self.bounds];
}
+- (void)setAllowsBackForwardNavigationGestures:(BOOL)allowsBackForwardNavigationGestures
+{
+ [_wkView setAllowsBackForwardNavigationGestures:allowsBackForwardNavigationGestures];
+}
+
+- (BOOL)allowsBackForwardNavigationGestures
+{
+ return [_wkView allowsBackForwardNavigationGestures];
+}
+
+- (void)setAllowsMagnification:(BOOL)allowsMagnification
+{
+ [_wkView setAllowsMagnification:allowsMagnification];
+}
+
+- (BOOL)allowsMagnification
+{
+ return [_wkView allowsMagnification];
+}
+
+- (void)setMagnification:(CGFloat)magnification
+{
+ [_wkView setMagnification:magnification];
+}
+
+- (CGFloat)magnification
+{
+ return [_wkView magnification];
+}
+
+- (void)setMagnification:(CGFloat)magnification centeredAtPoint:(CGPoint)point
+{
+ [_wkView setMagnification:magnification centeredAtPoint:NSPointFromCGPoint(point)];
+}
+
#endif
@end
@@ -627,6 +668,29 @@
_isChangingObscuredInsetsInteractively = NO;
}
+- (void)setAllowsBackForwardNavigationGestures:(BOOL)allowsBackForwardNavigationGestures
+{
+ if (_allowsBackForwardNavigationGestures == allowsBackForwardNavigationGestures)
+ return;
+
+ _allowsBackForwardNavigationGestures = allowsBackForwardNavigationGestures;
+
+ if (allowsBackForwardNavigationGestures) {
+ if (!_gestureController) {
+ _gestureController = std::make_unique<WebKit::ViewGestureController>(*_page);
+ _gestureController->installSwipeHandler(self, [self scrollView]);
+ }
+ } else
+ _gestureController = nullptr;
+
+ _page->setShouldRecordNavigationSnapshots(allowsBackForwardNavigationGestures);
+}
+
+- (BOOL)allowsBackForwardNavigationGestures
+{
+ return _allowsBackForwardNavigationGestures;
+}
+
#endif
@end
Modified: trunk/Source/WebKit2/UIProcess/API/ios/WKViewIOS.mm (164454 => 164455)
--- trunk/Source/WebKit2/UIProcess/API/ios/WKViewIOS.mm 2014-02-20 23:34:21 UTC (rev 164454)
+++ trunk/Source/WebKit2/UIProcess/API/ios/WKViewIOS.mm 2014-02-20 23:46:18 UTC (rev 164455)
@@ -125,13 +125,18 @@
- (void)setAllowsBackForwardNavigationGestures:(BOOL)allowsBackForwardNavigationGestures
{
+ if (_allowsBackForwardNavigationGestures == allowsBackForwardNavigationGestures)
+ return;
+
_allowsBackForwardNavigationGestures = allowsBackForwardNavigationGestures;
WebPageProxy *webPageProxy = toImpl([_contentView _pageRef]);
- if (allowsBackForwardNavigationGestures && !_gestureController) {
- _gestureController = std::make_unique<ViewGestureController>(*webPageProxy);
- _gestureController->installSwipeHandler(self, [self scrollView]);
+ if (allowsBackForwardNavigationGestures) {
+ if (!_gestureController) {
+ _gestureController = std::make_unique<ViewGestureController>(*webPageProxy);
+ _gestureController->installSwipeHandler(self, [self scrollView]);
+ }
} else
_gestureController = nullptr;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes