Title: [248158] branches/safari-608.1-branch/Source/WebKit
Revision
248158
Author
[email protected]
Date
2019-08-02 10:09:52 -0700 (Fri, 02 Aug 2019)

Log Message

Cherry-pick r247875. rdar://problem/53841460

    [iOS] REGRESSION: Keyboard dismisses and reappears when typing 2FA pin on appleid.apple.com
    https://bugs.webkit.org/show_bug.cgi?id=200171
    <rdar://problem/50245251>

    Reviewed by Wenson Hsieh.

    Take out an InputViewUpdateDeferrer token (if we don't already have one) to temporarily defer
    tearing down the input view (keyboard) before bluring the previously focused element as part
    of switching between focused elements. This avoid a noticeable flash caused by UIKit animating
    out and animating in the keyboard should the newly focused element require the keyboard. We
    only take out the InputViewUpdateDeferrer until we fall off the end of _elementDidFocus: (or
    bail early). Once we fall of the end UIKit will update input view UI.

    * UIProcess/ios/WKContentViewInteraction.mm:
    (-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]):

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

Modified Paths

Diff

Modified: branches/safari-608.1-branch/Source/WebKit/ChangeLog (248157 => 248158)


--- branches/safari-608.1-branch/Source/WebKit/ChangeLog	2019-08-02 17:06:01 UTC (rev 248157)
+++ branches/safari-608.1-branch/Source/WebKit/ChangeLog	2019-08-02 17:09:52 UTC (rev 248158)
@@ -1,3 +1,43 @@
+2019-08-02  Kocsen Chung  <[email protected]>
+
+        Cherry-pick r247875. rdar://problem/53841460
+
+    [iOS] REGRESSION: Keyboard dismisses and reappears when typing 2FA pin on appleid.apple.com
+    https://bugs.webkit.org/show_bug.cgi?id=200171
+    <rdar://problem/50245251>
+    
+    Reviewed by Wenson Hsieh.
+    
+    Take out an InputViewUpdateDeferrer token (if we don't already have one) to temporarily defer
+    tearing down the input view (keyboard) before bluring the previously focused element as part
+    of switching between focused elements. This avoid a noticeable flash caused by UIKit animating
+    out and animating in the keyboard should the newly focused element require the keyboard. We
+    only take out the InputViewUpdateDeferrer until we fall off the end of _elementDidFocus: (or
+    bail early). Once we fall of the end UIKit will update input view UI.
+    
+    * UIProcess/ios/WKContentViewInteraction.mm:
+    (-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]):
+    
+    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@247875 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+    2019-07-26  Daniel Bates  <[email protected]>
+
+            [iOS] REGRESSION: Keyboard dismisses and reappears when typing 2FA pin on appleid.apple.com
+            https://bugs.webkit.org/show_bug.cgi?id=200171
+            <rdar://problem/50245251>
+
+            Reviewed by Wenson Hsieh.
+
+            Take out an InputViewUpdateDeferrer token (if we don't already have one) to temporarily defer
+            tearing down the input view (keyboard) before bluring the previously focused element as part
+            of switching between focused elements. This avoid a noticeable flash caused by UIKit animating
+            out and animating in the keyboard should the newly focused element require the keyboard. We
+            only take out the InputViewUpdateDeferrer until we fall off the end of _elementDidFocus: (or
+            bail early). Once we fall of the end UIKit will update input view UI.
+
+            * UIProcess/ios/WKContentViewInteraction.mm:
+            (-[WKContentView _elementDidFocus:userIsInteracting:blurPreviousNode:activityStateChanges:userObject:]):
+
 2019-08-01  Kocsen Chung  <[email protected]>
 
         Cherry-pick r247905. rdar://problem/53820893

Modified: branches/safari-608.1-branch/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm (248157 => 248158)


--- branches/safari-608.1-branch/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm	2019-08-02 17:06:01 UTC (rev 248157)
+++ branches/safari-608.1-branch/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm	2019-08-02 17:09:52 UTC (rev 248158)
@@ -5262,8 +5262,13 @@
         }
     }();
 
-    if (blurPreviousNode)
+    if (blurPreviousNode) {
+        // Defer view updates until the end of this function to avoid a noticeable flash when switching focus
+        // between elements that require the keyboard.
+        if (!inputViewUpdateDeferrer)
+            inputViewUpdateDeferrer = std::make_unique<WebKit::InputViewUpdateDeferrer>(self);
         [self _elementDidBlur];
+    }
 
 #if HAVE(PENCILKIT)
     if (information.elementType == WebKit::InputType::Drawing)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to