[Extra zoom mode] Disable fast clicking by default in extra zoom mode
authorwenson_hsieh@apple.com <wenson_hsieh@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 9 Apr 2018 16:10:52 +0000 (16:10 +0000)
committerwenson_hsieh@apple.com <wenson_hsieh@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 9 Apr 2018 16:10:52 +0000 (16:10 +0000)
https://bugs.webkit.org/show_bug.cgi?id=184411
<rdar://problem/38726867>

Reviewed by Andy Estes.

As it turns out, existing fast-clicking heuristics don't work so well in extra zoom mode. Even at device-width,
since the page is scaled to fit within the viewport, having single taps take precedence over double taps leads
to a confusing experience when trying to double tap to zoom further on content that contains links and other
click targets. Revert to legacy behavior here by disabling these heuristics.

* UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@230440 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit/ChangeLog
Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm

index d88c8de..b389037 100644 (file)
@@ -1,3 +1,19 @@
+2018-04-09  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        [Extra zoom mode] Disable fast clicking by default in extra zoom mode
+        https://bugs.webkit.org/show_bug.cgi?id=184411
+        <rdar://problem/38726867>
+
+        Reviewed by Andy Estes.
+
+        As it turns out, existing fast-clicking heuristics don't work so well in extra zoom mode. Even at device-width,
+        since the page is scaled to fit within the viewport, having single taps take precedence over double taps leads
+        to a confusing experience when trying to double tap to zoom further on content that contains links and other
+        click targets. Revert to legacy behavior here by disabling these heuristics.
+
+        * UIProcess/API/Cocoa/WKWebView.mm:
+        (-[WKWebView _initializeWithConfiguration:]):
+
 2018-04-06  Wenson Hsieh  <wenson_hsieh@apple.com>
 
         [Extra zoom mode] Add an SPI hook for clients to opt in to focus overlay UI
index ca28ca8..87d5dc3 100644 (file)
@@ -656,7 +656,16 @@ static void validate(WKWebViewConfiguration *configuration)
 
     _viewportMetaTagWidth = WebCore::ViewportArguments::ValueAuto;
     _initialScaleFactor = 1;
-    _fastClickingIsDisabled = [[NSUserDefaults standardUserDefaults] boolForKey:@"WebKitFastClickingDisabled"];
+
+    if (NSNumber *enabledValue = [[NSUserDefaults standardUserDefaults] objectForKey:@"WebKitFastClickingDisabled"])
+        _fastClickingIsDisabled = enabledValue.boolValue;
+    else {
+#if ENABLE(EXTRA_ZOOM_MODE)
+        _fastClickingIsDisabled = YES;
+#else
+        _fastClickingIsDisabled = NO;
+#endif
+    }
 
     [self _frameOrBoundsChanged];