Title: [226255] trunk/Source/WebKit
Revision
226255
Author
m...@apple.com
Date
2017-12-21 19:23:18 -0800 (Thu, 21 Dec 2017)

Log Message

WKPreferences doesn’t expose editable link behavior
https://bugs.webkit.org/show_bug.cgi?id=181111

Reviewed by Tim Horton.

* UIProcess/API/Cocoa/WKPreferences.mm:
(toAPI): Added. Converts WebCore::EditableLinkBehavior to _WKEditableLinkBehavior.
(toEditableLinkBehavior): Added. Converts the other way.
(-[WKPreferences _editableLinkBehavior]): Added this getter.
(-[WKPreferences _setEditableLinkBehavior:]): Ditto.
* UIProcess/API/Cocoa/WKPreferencesPrivate.h: Declared new property.

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (226254 => 226255)


--- trunk/Source/WebKit/ChangeLog	2017-12-22 03:05:18 UTC (rev 226254)
+++ trunk/Source/WebKit/ChangeLog	2017-12-22 03:23:18 UTC (rev 226255)
@@ -1,3 +1,17 @@
+2017-12-21  Dan Bernstein  <m...@apple.com>
+
+        WKPreferences doesn’t expose editable link behavior
+        https://bugs.webkit.org/show_bug.cgi?id=181111
+
+        Reviewed by Tim Horton.
+
+        * UIProcess/API/Cocoa/WKPreferences.mm:
+        (toAPI): Added. Converts WebCore::EditableLinkBehavior to _WKEditableLinkBehavior.
+        (toEditableLinkBehavior): Added. Converts the other way.
+        (-[WKPreferences _editableLinkBehavior]): Added this getter.
+        (-[WKPreferences _setEditableLinkBehavior:]): Ditto.
+        * UIProcess/API/Cocoa/WKPreferencesPrivate.h: Declared new property.
+
 2017-12-21  Andy Estes  <aes...@apple.com>
 
         Address additional review feedback after r226182.

Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm (226254 => 226255)


--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm	2017-12-22 03:05:18 UTC (rev 226254)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferences.mm	2017-12-22 03:23:18 UTC (rev 226255)
@@ -34,6 +34,7 @@
 #import "_WKExperimentalFeature.h"
 #import "_WKExperimentalFeatureInternal.h"
 #import <WebCore/SecurityOrigin.h>
+#import <WebCore/Settings.h>
 #import <wtf/RetainPtr.h>
 
 @implementation WKPreferences
@@ -677,6 +678,54 @@
     _preferences->setShouldAllowUserInstalledFonts(_shouldAllowUserInstalledFonts);
 }
 
+static _WKEditableLinkBehavior toAPI(WebCore::EditableLinkBehavior behavior)
+{
+    switch (behavior) {
+    case WebCore::EditableLinkDefaultBehavior:
+        return _WKEditableLinkBehaviorDefault;
+    case WebCore::EditableLinkAlwaysLive:
+        return _WKEditableLinkBehaviorAlwaysLive;
+    case WebCore::EditableLinkOnlyLiveWithShiftKey:
+        return _WKEditableLinkBehaviorOnlyLiveWithShiftKey;
+    case WebCore::EditableLinkLiveWhenNotFocused:
+        return _WKEditableLinkBehaviorLiveWhenNotFocused;
+    case WebCore::EditableLinkNeverLive:
+        return _WKEditableLinkBehaviorNeverLive;
+    }
+    
+    ASSERT_NOT_REACHED();
+    return _WKEditableLinkBehaviorNeverLive;
+}
+
+static WebCore::EditableLinkBehavior toEditableLinkBehavior(_WKEditableLinkBehavior wkBehavior)
+{
+    switch (wkBehavior) {
+    case _WKEditableLinkBehaviorDefault:
+        return WebCore::EditableLinkDefaultBehavior;
+    case _WKEditableLinkBehaviorAlwaysLive:
+        return WebCore::EditableLinkAlwaysLive;
+    case _WKEditableLinkBehaviorOnlyLiveWithShiftKey:
+        return WebCore::EditableLinkOnlyLiveWithShiftKey;
+    case _WKEditableLinkBehaviorLiveWhenNotFocused:
+        return WebCore::EditableLinkLiveWhenNotFocused;
+    case _WKEditableLinkBehaviorNeverLive:
+        return WebCore::EditableLinkNeverLive;
+    }
+    
+    ASSERT_NOT_REACHED();
+    return WebCore::EditableLinkNeverLive;
+}
+
+- (_WKEditableLinkBehavior)_editableLinkBehavior
+{
+    return toAPI(static_cast<WebCore::EditableLinkBehavior>(_preferences->editableLinkBehavior()));
+}
+
+- (void)_setEditableLinkBehavior:(_WKEditableLinkBehavior)editableLinkBehavior
+{
+    _preferences->setEditableLinkBehavior(toEditableLinkBehavior(editableLinkBehavior));
+}
+
 #if PLATFORM(MAC)
 - (void)_setJavaEnabledForLocalFiles:(BOOL)enabled
 {

Modified: trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h (226254 => 226255)


--- trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h	2017-12-22 03:05:18 UTC (rev 226254)
+++ trunk/Source/WebKit/UIProcess/API/Cocoa/WKPreferencesPrivate.h	2017-12-22 03:23:18 UTC (rev 226255)
@@ -46,6 +46,14 @@
     _WKJavaScriptRuntimeFlagsAllEnabled = 0
 } WK_API_AVAILABLE(macosx(10.11), ios(9.0));
 
+typedef NS_ENUM(NSInteger, _WKEditableLinkBehavior) {
+    _WKEditableLinkBehaviorDefault,
+    _WKEditableLinkBehaviorAlwaysLive,
+    _WKEditableLinkBehaviorOnlyLiveWithShiftKey,
+    _WKEditableLinkBehaviorLiveWhenNotFocused,
+    _WKEditableLinkBehaviorNeverLive,
+} WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA));
+
 @class _WKExperimentalFeature;
 
 @interface WKPreferences () <NSCopying>
@@ -118,6 +126,8 @@
 
 @property (nonatomic, setter=_setShouldAllowUserInstalledFonts:) BOOL _shouldAllowUserInstalledFonts WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA));
 
+@property (nonatomic, setter=_setEditableLinkBehavior:) _WKEditableLinkBehavior _editableLinkBehavior WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA));
+
 + (NSArray<_WKExperimentalFeature *> *)_experimentalFeatures WK_API_AVAILABLE(macosx(10.12), ios(10.0));
 - (BOOL)_isEnabledForFeature:(_WKExperimentalFeature *)feature WK_API_AVAILABLE(macosx(10.12), ios(10.0));
 - (void)_setEnabled:(BOOL)value forFeature:(_WKExperimentalFeature *)feature WK_API_AVAILABLE(macosx(10.12), ios(10.0));
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to