Title: [268813] trunk/Source/WebKitLegacy/mac
Revision
268813
Author
[email protected]
Date
2020-10-21 11:43:33 -0700 (Wed, 21 Oct 2020)

Log Message

[macOS WK1] provide a way for Apple-internal clients to disable link preview
https://bugs.webkit.org/show_bug.cgi?id=217984
<rdar://problem/70500022>

Reviewed by Tim Horton.

* WebView/WebViewPrivate.h:
* WebView/WebView.mm:
(-[WebView _allowsLinkPreview]): Added.
(-[WebView _setAllowsLinkPreview:]): Added.

* WebView/WebImmediateActionController.h:
* WebView/WebImmediateActionController.mm:
(-[WebImmediateActionController isEnabled]): Added.
(-[WebImmediateActionController setEnabled:]): Added.
(-[WebImmediateActionController _cancelImmediateAction]):

Modified Paths

Diff

Modified: trunk/Source/WebKitLegacy/mac/ChangeLog (268812 => 268813)


--- trunk/Source/WebKitLegacy/mac/ChangeLog	2020-10-21 18:38:48 UTC (rev 268812)
+++ trunk/Source/WebKitLegacy/mac/ChangeLog	2020-10-21 18:43:33 UTC (rev 268813)
@@ -1,3 +1,22 @@
+2020-10-21  Devin Rousso  <[email protected]>
+
+        [macOS WK1] provide a way for Apple-internal clients to disable link preview
+        https://bugs.webkit.org/show_bug.cgi?id=217984
+        <rdar://problem/70500022>
+
+        Reviewed by Tim Horton.
+
+        * WebView/WebViewPrivate.h:
+        * WebView/WebView.mm:
+        (-[WebView _allowsLinkPreview]): Added.
+        (-[WebView _setAllowsLinkPreview:]): Added.
+
+        * WebView/WebImmediateActionController.h:
+        * WebView/WebImmediateActionController.mm:
+        (-[WebImmediateActionController isEnabled]): Added.
+        (-[WebImmediateActionController setEnabled:]): Added.
+        (-[WebImmediateActionController _cancelImmediateAction]):
+
 2020-10-20  Sihui Liu  <[email protected]>
 
         Add stubs for SpeechRecognition

Modified: trunk/Source/WebKitLegacy/mac/WebView/WebImmediateActionController.h (268812 => 268813)


--- trunk/Source/WebKitLegacy/mac/WebView/WebImmediateActionController.h	2020-10-21 18:38:48 UTC (rev 268812)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebImmediateActionController.h	2020-10-21 18:43:33 UTC (rev 268813)
@@ -58,6 +58,8 @@
 - (instancetype)initWithWebView:(WebView *)webView recognizer:(NSImmediateActionGestureRecognizer *)immediateActionRecognizer;
 - (void)webViewClosed;
 
+@property (nonatomic, getter=isEnabled) BOOL enabled;
+
 - (void)webView:(WebView *)webView didHandleScrollWheel:(NSEvent *)event;
 
 - (NSImmediateActionGestureRecognizer *)immediateActionRecognizer;

Modified: trunk/Source/WebKitLegacy/mac/WebView/WebImmediateActionController.mm (268812 => 268813)


--- trunk/Source/WebKitLegacy/mac/WebView/WebImmediateActionController.mm	2020-10-21 18:38:48 UTC (rev 268812)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebImmediateActionController.mm	2020-10-21 18:43:33 UTC (rev 268813)
@@ -100,6 +100,22 @@
     _currentActionContext = nil;
 }
 
+- (BOOL)isEnabled
+{
+    return [_immediateActionRecognizer isEnabled];
+}
+
+- (void)setEnabled:(BOOL)enabled
+{
+    if (enabled == [_immediateActionRecognizer isEnabled])
+        return;
+
+    [_immediateActionRecognizer setEnabled:enabled];
+
+    if (![_immediateActionRecognizer isEnabled])
+        [self _cancelImmediateAction];
+}
+
 - (void)webView:(WebView *)webView didHandleScrollWheel:(NSEvent *)event
 {
     [_currentQLPreviewMenuItem close];
@@ -115,8 +131,10 @@
 - (void)_cancelImmediateAction
 {
     // Reset the recognizer by turning it off and on again.
-    [_immediateActionRecognizer setEnabled:NO];
-    [_immediateActionRecognizer setEnabled:YES];
+    if ([_immediateActionRecognizer isEnabled]) {
+        [_immediateActionRecognizer setEnabled:NO];
+        [_immediateActionRecognizer setEnabled:YES];
+    }
 
     [self _clearImmediateActionState];
     [_webView _clearTextIndicatorWithAnimation:WebCore::TextIndicatorWindowDismissalAnimation::FadeOut];

Modified: trunk/Source/WebKitLegacy/mac/WebView/WebView.mm (268812 => 268813)


--- trunk/Source/WebKitLegacy/mac/WebView/WebView.mm	2020-10-21 18:38:48 UTC (rev 268812)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebView.mm	2020-10-21 18:43:33 UTC (rev 268813)
@@ -7908,6 +7908,21 @@
         _private->page->resumeAllMediaPlayback();
 }
 
+#if PLATFORM(MAC)
+- (BOOL)_allowsLinkPreview
+{
+    if (WebImmediateActionController *immediateActionController = _private->immediateActionController)
+        return immediateActionController.enabled;
+    return NO;
+}
+
+- (void)_setAllowsLinkPreview:(BOOL)allowsLinkPreview
+{
+    if (WebImmediateActionController *immediateActionController = _private->immediateActionController)
+        immediateActionController.enabled = allowsLinkPreview;
+}
+#endif
+
 - (void)addVisitedLinks:(NSArray *)visitedLinks
 {
     WebVisitedLinkStore& visitedLinkStore = _private->group->visitedLinkStore();

Modified: trunk/Source/WebKitLegacy/mac/WebView/WebViewPrivate.h (268812 => 268813)


--- trunk/Source/WebKitLegacy/mac/WebView/WebViewPrivate.h	2020-10-21 18:38:48 UTC (rev 268812)
+++ trunk/Source/WebKitLegacy/mac/WebView/WebViewPrivate.h	2020-10-21 18:43:33 UTC (rev 268813)
@@ -314,6 +314,10 @@
 - (void)suspendAllMediaPlayback;
 - (void)resumeAllMediaPlayback;
 
+#if !TARGET_OS_IPHONE
+@property (nonatomic, setter=_setAllowsLinkPreview:) BOOL _allowsLinkPreview;
+#endif
+
 // Add visited links
 - (void)addVisitedLinks:(NSArray *)visitedLinks;
 #if TARGET_OS_IPHONE
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to