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