Changeset 187764 in webkit
- Timestamp:
- Aug 3, 2015 2:27:19 PM (9 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r187756 r187764 1 2015-08-03 Beth Dakin <bdakin@apple.com> 2 3 Need WKWebView API to enable/disable link preview 4 https://bugs.webkit.org/show_bug.cgi?id=147573 5 -and corresponding- 6 rdar://problem/22077836 7 8 Reviewed by Dan Bernstein. 9 10 WKView implementation. 11 * UIProcess/API/Cocoa/WKViewPrivate.h: 12 13 New API. Call into WKView to handle Mac. 14 * UIProcess/API/Cocoa/WKWebView.h: 15 * UIProcess/API/Cocoa/WKWebView.mm: 16 (-[WKWebView initWithFrame:configuration:]): 17 (-[WKWebView allowsLinkPreview]): 18 (-[WKWebView setAllowsLinkPreview:]): 19 20 Remove the SPI declaration from WKWebViewPrivate in order to make this API. 21 * UIProcess/API/Cocoa/WKWebViewPrivate.h: 22 23 Handle the Mac side. 24 * UIProcess/API/mac/WKView.mm: 25 (-[WKView viewDidMoveToWindow]): 26 (-[WKView initWithFrame:processPool:configuration:webView:]): 27 (-[WKView allowsBackForwardNavigationGestures]): 28 (-[WKView allowsLinkPreview]): 29 (-[WKView setAllowsLinkPreview:]): 30 31 Don’t register previews when link preview is prevented. 32 * UIProcess/ios/WKContentViewInteraction.mm: 33 (-[WKContentView _registerPreview]): 34 1 35 2015-08-03 Tim Horton <timothy_horton@apple.com> 2 36 -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKViewPrivate.h
r184780 r187764 130 130 - (void)setMagnification:(double)magnification centeredAtPoint:(NSPoint)point; 131 131 132 - (void)setAllowsLinkPreview:(BOOL)allowsLinkPreview; 133 - (BOOL)allowsLinkPreview; 134 132 135 - (void)saveBackForwardSnapshotForCurrentItem; 133 136 - (void)saveBackForwardSnapshotForItem:(WKBackForwardListItemRef)item; -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.h
r185876 r187764 232 232 @property (WK_NULLABLE_PROPERTY nonatomic, copy) NSString *customUserAgent WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA); 233 233 234 /*! @abstract A Boolean value indicating whether link preview is allowed for any 235 links inside this WKWebView. 236 @discussion The default value is NO on iOS and YES on Mac. 237 */ 238 @property (nonatomic) BOOL allowsLinkPreview WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA); 239 234 240 #if TARGET_OS_IPHONE 235 241 /*! @abstract The scroll view associated with the web view. -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm
r187383 r187764 352 352 353 353 _viewportMetaTagWidth = -1; 354 _allowsLinkPreview = YES;355 354 356 355 [self _frameOrBoundsChanged]; … … 658 657 { 659 658 return toAPI(_page.get()); 659 } 660 661 - (BOOL)allowsLinkPreview 662 { 663 #if PLATFORM(MAC) 664 return [_wkView allowsLinkPreview]; 665 #elif PLATFORM(IOS) 666 return _allowsLinkPreview; 667 #endif 668 } 669 670 - (void)setAllowsLinkPreview:(BOOL)allowsLinkPreview 671 { 672 #if PLATFORM(MAC) 673 [_wkView setAllowsLinkPreview:allowsLinkPreview]; 674 return; 675 #elif PLATFORM(IOS) 676 if (_allowsLinkPreview == allowsLinkPreview) 677 return; 678 679 _allowsLinkPreview = allowsLinkPreview; 680 681 #if HAVE(LINK_PREVIEW) 682 if (_allowsLinkPreview) 683 [_contentView _registerPreview]; 684 else 685 [_contentView _unregisterPreview]; 686 #endif // HAVE(LINK_PREVIEW) 687 #endif // PLATFORM(IOS) 660 688 } 661 689 … … 3030 3058 } 3031 3059 3032 - (BOOL)_allowsLinkPreview 3033 { 3034 return _allowsLinkPreview; 3035 } 3036 3037 - (void)_setAllowsLinkPreview:(BOOL)allowsLinkPreview 3038 { 3039 if (_allowsLinkPreview == allowsLinkPreview) 3040 return; 3041 3042 _allowsLinkPreview = allowsLinkPreview; 3043 } 3044 3045 #else 3060 #else // #if PLATFORM(IOS) 3046 3061 3047 3062 #pragma mark - OS X-specific methods -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h
r187252 r187764 132 132 @property (nonatomic, readonly) _WKWebViewPrintFormatter *_webViewPrintFormatter; 133 133 134 // Indicating whether link preview is allowed. The default value is YES.135 @property (nonatomic, getter=_allowsLinkPreview, setter=_setAllowsLinkPreview:) BOOL _allowsLinkPreview WK_AVAILABLE(NA, WK_IOS_TBA);136 137 134 - (void)_beginInteractiveObscuredInsetsChange; 138 135 - (void)_endInteractiveObscuredInsetsChange; -
trunk/Source/WebKit2/UIProcess/API/mac/WKView.mm
r187135 r187764 262 262 BOOL _ignoresAllEvents; 263 263 BOOL _allowsBackForwardNavigationGestures; 264 BOOL _allowsLinkPreview; 264 265 265 266 RetainPtr<WKViewLayoutStrategy> _layoutStrategy; … … 2707 2708 2708 2709 #if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101000 2709 if (_data->_immediateActionGestureRecognizer && ![[self gestureRecognizers] containsObject:_data->_immediateActionGestureRecognizer.get()] && !_data->_ignoresNonWheelEvents )2710 if (_data->_immediateActionGestureRecognizer && ![[self gestureRecognizers] containsObject:_data->_immediateActionGestureRecognizer.get()] && !_data->_ignoresNonWheelEvents && _data->_allowsLinkPreview) 2710 2711 [self addGestureRecognizer:_data->_immediateActionGestureRecognizer.get()]; 2711 2712 #endif … … 3798 3799 3799 3800 #if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101000 3801 _data->_allowsLinkPreview = YES; 3802 3800 3803 if (Class gestureClass = NSClassFromString(@"NSImmediateActionGestureRecognizer")) { 3801 3804 _data->_immediateActionGestureRecognizer = adoptNS([(NSImmediateActionGestureRecognizer *)[gestureClass alloc] init]); … … 4222 4225 } 4223 4226 4227 - (BOOL)allowsLinkPreview 4228 { 4229 return _data->_allowsLinkPreview; 4230 } 4231 4232 - (void)setAllowsLinkPreview:(BOOL)allowsLinkPreview 4233 { 4234 if (_data->_allowsLinkPreview == allowsLinkPreview) 4235 return; 4236 4237 _data->_allowsLinkPreview = allowsLinkPreview; 4238 4239 #if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101000 4240 if (!allowsLinkPreview) 4241 [self removeGestureRecognizer:_data->_immediateActionGestureRecognizer.get()]; 4242 else if (NSGestureRecognizer *immediateActionRecognizer = _data->_immediateActionGestureRecognizer.get()) 4243 [self addGestureRecognizer:immediateActionRecognizer]; 4244 #endif 4245 } 4246 4224 4247 - (void)_setIgnoresAllEvents:(BOOL)ignoresAllEvents 4225 4248 { … … 4245 4268 if (ignoresNonWheelEvents) 4246 4269 [self removeGestureRecognizer:_data->_immediateActionGestureRecognizer.get()]; 4247 else if (NSGestureRecognizer *immediateActionRecognizer = _data->_immediateActionGestureRecognizer.get()) 4248 [self addGestureRecognizer:immediateActionRecognizer]; 4270 else if (NSGestureRecognizer *immediateActionRecognizer = _data->_immediateActionGestureRecognizer.get()) { 4271 if (_data->_allowsLinkPreview) 4272 [self addGestureRecognizer:immediateActionRecognizer]; 4273 } 4249 4274 #endif 4250 4275 } -
trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm
r187756 r187764 3212 3212 - (void)_registerPreview 3213 3213 { 3214 if (!_webView.allowsLinkPreview) 3215 return; 3216 3214 3217 _previewItemController = adoptNS([[UIPreviewItemController alloc] initWithView:self]); 3215 3218 [_previewItemController setDelegate:self];
Note: See TracChangeset
for help on using the changeset viewer.