Changeset 187979 in webkit


Ignore:
Timestamp:
Aug 5, 2015 12:57:19 PM (9 years ago)
Author:
matthew_hanson@apple.com
Message:

Merge r187764. rdar://problem/22077836

Location:
branches/safari-601.1.46-branch/Source/WebKit2
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • branches/safari-601.1.46-branch/Source/WebKit2/ChangeLog

    r187976 r187979  
     12015-08-05  Matthew Hanson  <matthew_hanson@apple.com>
     2
     3        Merge r187764. rdar://problem/22077836
     4
     5    2015-08-03  Beth Dakin  <bdakin@apple.com>
     6
     7            Need WKWebView API to enable/disable link preview
     8            https://bugs.webkit.org/show_bug.cgi?id=147573
     9            -and corresponding-
     10            rdar://problem/22077836
     11
     12            Reviewed by Dan Bernstein.
     13
     14            WKView implementation.
     15            * UIProcess/API/Cocoa/WKViewPrivate.h:
     16
     17            New API. Call into WKView to handle Mac.
     18            * UIProcess/API/Cocoa/WKWebView.h:
     19            * UIProcess/API/Cocoa/WKWebView.mm:
     20            (-[WKWebView initWithFrame:configuration:]):
     21            (-[WKWebView allowsLinkPreview]):
     22            (-[WKWebView setAllowsLinkPreview:]):
     23
     24            Remove the SPI declaration from WKWebViewPrivate in order to make this API.
     25            * UIProcess/API/Cocoa/WKWebViewPrivate.h:
     26
     27            Handle the Mac side.
     28            * UIProcess/API/mac/WKView.mm:
     29            (-[WKView viewDidMoveToWindow]):
     30            (-[WKView initWithFrame:processPool:configuration:webView:]):
     31            (-[WKView allowsBackForwardNavigationGestures]):
     32            (-[WKView allowsLinkPreview]):
     33            (-[WKView setAllowsLinkPreview:]):
     34
     35            Don’t register previews when link preview is prevented.
     36            * UIProcess/ios/WKContentViewInteraction.mm:
     37            (-[WKContentView _registerPreview]):
     38
    1392015-08-05  Matthew Hanson  <matthew_hanson@apple.com>
    240
  • branches/safari-601.1.46-branch/Source/WebKit2/UIProcess/API/Cocoa/WKViewPrivate.h

    r184780 r187979  
    130130- (void)setMagnification:(double)magnification centeredAtPoint:(NSPoint)point;
    131131
     132- (void)setAllowsLinkPreview:(BOOL)allowsLinkPreview;
     133- (BOOL)allowsLinkPreview;
     134
    132135- (void)saveBackForwardSnapshotForCurrentItem;
    133136- (void)saveBackForwardSnapshotForItem:(WKBackForwardListItemRef)item;
  • branches/safari-601.1.46-branch/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.h

    r185876 r187979  
    232232@property (WK_NULLABLE_PROPERTY nonatomic, copy) NSString *customUserAgent WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
    233233
     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
    234240#if TARGET_OS_IPHONE
    235241/*! @abstract The scroll view associated with the web view.
  • branches/safari-601.1.46-branch/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm

    r187390 r187979  
    352352
    353353    _viewportMetaTagWidth = -1;
    354     _allowsLinkPreview = YES;
    355354
    356355    [self _frameOrBoundsChanged];
     
    658657{
    659658    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)
    660688}
    661689
     
    30273055}
    30283056
    3029 - (BOOL)_allowsLinkPreview
    3030 {
    3031     return _allowsLinkPreview;
    3032 }
    3033 
    3034 - (void)_setAllowsLinkPreview:(BOOL)allowsLinkPreview
    3035 {
    3036     if (_allowsLinkPreview == allowsLinkPreview)
    3037         return;
    3038 
    3039     _allowsLinkPreview = allowsLinkPreview;
    3040 }
    3041 
    3042 #else
     3057#else // #if PLATFORM(IOS)
    30433058
    30443059#pragma mark - OS X-specific methods
  • branches/safari-601.1.46-branch/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h

    r187390 r187979  
    132132@property (nonatomic, readonly) _WKWebViewPrintFormatter *_webViewPrintFormatter;
    133133
    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 
    137134- (void)_beginInteractiveObscuredInsetsChange;
    138135- (void)_endInteractiveObscuredInsetsChange;
  • branches/safari-601.1.46-branch/Source/WebKit2/UIProcess/API/mac/WKView.mm

    r186662 r187979  
    262262    BOOL _ignoresAllEvents;
    263263    BOOL _allowsBackForwardNavigationGestures;
     264    BOOL _allowsLinkPreview;
    264265
    265266    RetainPtr<WKViewLayoutStrategy> _layoutStrategy;
     
    27072708
    27082709#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)
    27102711            [self addGestureRecognizer:_data->_immediateActionGestureRecognizer.get()];
    27112712#endif
     
    37983799
    37993800#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101000
     3801    _data->_allowsLinkPreview = YES;
     3802
    38003803    if (Class gestureClass = NSClassFromString(@"NSImmediateActionGestureRecognizer")) {
    38013804        _data->_immediateActionGestureRecognizer = adoptNS([(NSImmediateActionGestureRecognizer *)[gestureClass alloc] init]);
     
    42224225}
    42234226
     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
    42244247- (void)_setIgnoresAllEvents:(BOOL)ignoresAllEvents
    42254248{
     
    42454268    if (ignoresNonWheelEvents)
    42464269        [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    }
    42494274#endif
    42504275}
  • branches/safari-601.1.46-branch/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm

    r187976 r187979  
    32013201- (void)_registerPreview
    32023202{
     3203    if (!_webView.allowsLinkPreview)
     3204        return;
     3205
    32033206    _previewItemController = adoptNS([[UIPreviewItemController alloc] initWithView:self]);
    32043207    [_previewItemController setDelegate:self];
Note: See TracChangeset for help on using the changeset viewer.