Diff
Modified: branches/safari-613-branch/LayoutTests/ChangeLog (290707 => 290708)
--- branches/safari-613-branch/LayoutTests/ChangeLog 2022-03-02 00:20:55 UTC (rev 290707)
+++ branches/safari-613-branch/LayoutTests/ChangeLog 2022-03-02 00:27:11 UTC (rev 290708)
@@ -1,5 +1,9 @@
2022-03-01 Russell Epstein <repst...@apple.com>
+ Revert r289282. rdar://problem/88876661
+
+2022-03-01 Russell Epstein <repst...@apple.com>
+
Cherry-pick r290087. rdar://problem/88713302
Source/ThirdParty/ANGLE:
Deleted: branches/safari-613-branch/LayoutTests/editing/selection/ios/scroll-to-reveal-selection-with-keyboard-avoidance-disabled-expected.txt (290707 => 290708)
--- branches/safari-613-branch/LayoutTests/editing/selection/ios/scroll-to-reveal-selection-with-keyboard-avoidance-disabled-expected.txt 2022-03-02 00:20:55 UTC (rev 290707)
+++ branches/safari-613-branch/LayoutTests/editing/selection/ios/scroll-to-reveal-selection-with-keyboard-avoidance-disabled-expected.txt 2022-03-02 00:27:11 UTC (rev 290708)
@@ -1,10 +0,0 @@
-This test verifies that focusing an editable element causes us to scroll to reveal the selection, even if first responder keyboard avoidance is disabled on the web view's scroller. This test requires WebKitTestRunner.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-PASS document.scrollingElement.scrollTop became different from 0
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
Deleted: branches/safari-613-branch/LayoutTests/editing/selection/ios/scroll-to-reveal-selection-with-keyboard-avoidance-disabled.html (290707 => 290708)
--- branches/safari-613-branch/LayoutTests/editing/selection/ios/scroll-to-reveal-selection-with-keyboard-avoidance-disabled.html 2022-03-02 00:20:55 UTC (rev 290707)
+++ branches/safari-613-branch/LayoutTests/editing/selection/ios/scroll-to-reveal-selection-with-keyboard-avoidance-disabled.html 2022-03-02 00:27:11 UTC (rev 290708)
@@ -1,34 +0,0 @@
-<!DOCTYPE html> <!-- webkit-test-runner [ useFlexibleViewport=true ] -->
-<html>
-<head>
-<meta name="viewport" content="width=device-width, initial-scale=1">
-<script src=""
-<script src=""
-<script>
-jsTestIsAsync = true;
-
-addEventListener("load", async () => {
- document.designMode = "on";
- description("This test verifies that focusing an editable element causes us to scroll to reveal the selection, even if first responder keyboard avoidance is disabled on the web view's scroller. This test requires WebKitTestRunner.");
-
- await UIHelper.setScrollViewKeyboardAvoidanceEnabled(false);
- await UIHelper.setHardwareKeyboardAttached(false);
- await UIHelper.activateAndWaitForInputSessionAt(160, innerHeight - 50);
-
- shouldBecomeDifferent("document.scrollingElement.scrollTop", "0", () => {
- document.getElementById("content").remove();
- finishJSTest();
- });
-});
-</script>
-</head>
-<body>
-<pre id="console"></pre>
-<div id="content" style="font-size: 24px;">
- <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
- <p>Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
- <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
- <p>Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
-</div>
-</body>
-</html>
\ No newline at end of file
Modified: branches/safari-613-branch/LayoutTests/resources/ui-helper.js (290707 => 290708)
--- branches/safari-613-branch/LayoutTests/resources/ui-helper.js 2022-03-02 00:20:55 UTC (rev 290707)
+++ branches/safari-613-branch/LayoutTests/resources/ui-helper.js 2022-03-02 00:27:11 UTC (rev 290708)
@@ -1154,14 +1154,6 @@
return new Promise(resolve => testRunner.runUIScript(`uiController.setViewScale(${scale})`, resolve));
}
- static setScrollViewKeyboardAvoidanceEnabled(enabled)
- {
- if (!this.isWebKit2())
- return Promise.resolve();
-
- return new Promise(resolve => testRunner.runUIScript(`uiController.setScrollViewKeyboardAvoidanceEnabled(${enabled})`, resolve));
- }
-
static resignFirstResponder()
{
if (!this.isWebKit2())
Modified: branches/safari-613-branch/Source/WebKit/ChangeLog (290707 => 290708)
--- branches/safari-613-branch/Source/WebKit/ChangeLog 2022-03-02 00:20:55 UTC (rev 290707)
+++ branches/safari-613-branch/Source/WebKit/ChangeLog 2022-03-02 00:27:11 UTC (rev 290708)
@@ -1,5 +1,9 @@
2022-03-01 Russell Epstein <repst...@apple.com>
+ Revert r289282. rdar://problem/88876661
+
+2022-03-01 Russell Epstein <repst...@apple.com>
+
Cherry-pick r290066. rdar://problem/89072361
[macOS][WP] Add required syscall to sandbox
Modified: branches/safari-613-branch/Source/WebKit/Platform/spi/ios/UIKitSPI.h (290707 => 290708)
--- branches/safari-613-branch/Source/WebKit/Platform/spi/ios/UIKitSPI.h 2022-03-02 00:20:55 UTC (rev 290707)
+++ branches/safari-613-branch/Source/WebKit/Platform/spi/ios/UIKitSPI.h 2022-03-02 00:27:11 UTC (rev 290708)
@@ -515,7 +515,6 @@
@property (nonatomic, readonly) UIEdgeInsets _systemContentInset;
@property (nonatomic, readonly) UIEdgeInsets _effectiveContentInset;
@property (nonatomic, getter=_allowsAsyncScrollEvent, setter=_setAllowsAsyncScrollEvent:) BOOL _allowsAsyncScrollEvent;
-@property (nonatomic, getter=_isFirstResponderKeyboardAvoidanceEnabled, setter=_setFirstResponderKeyboardAvoidanceEnabled:) BOOL firstResponderKeyboardAvoidanceEnabled;
@end
typedef NS_ENUM(NSUInteger, UIScrollPhase) {
Modified: branches/safari-613-branch/Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm (290707 => 290708)
--- branches/safari-613-branch/Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm 2022-03-02 00:20:55 UTC (rev 290707)
+++ branches/safari-613-branch/Source/WebKit/UIProcess/API/ios/WKWebViewIOS.mm 2022-03-02 00:27:11 UTC (rev 290708)
@@ -2492,7 +2492,6 @@
- (void)_keyboardDidShow:(NSNotification *)notification
{
_page->setIsKeyboardAnimatingIn(false);
- [_contentView _keyboardDidShow];
}
- (void)_keyboardWillHide:(NSNotification *)notification
Modified: branches/safari-613-branch/Source/WebKit/UIProcess/WebPageProxy.h (290707 => 290708)
--- branches/safari-613-branch/Source/WebKit/UIProcess/WebPageProxy.h 2022-03-02 00:20:55 UTC (rev 290707)
+++ branches/safari-613-branch/Source/WebKit/UIProcess/WebPageProxy.h 2022-03-02 00:27:11 UTC (rev 290708)
@@ -1619,7 +1619,6 @@
#if PLATFORM(IOS_FAMILY)
void setIsKeyboardAnimatingIn(bool isKeyboardAnimatingIn) { m_isKeyboardAnimatingIn = isKeyboardAnimatingIn; }
- bool isKeyboardAnimatingIn() const { return m_isKeyboardAnimatingIn; }
void setWaitingForPostLayoutEditorStateUpdateAfterFocusingElement(bool waitingForPostLayoutEditorStateUpdateAfterFocusingElement) { m_waitingForPostLayoutEditorStateUpdateAfterFocusingElement = waitingForPostLayoutEditorStateUpdateAfterFocusingElement; }
bool waitingForPostLayoutEditorStateUpdateAfterFocusingElement() const { return m_waitingForPostLayoutEditorStateUpdateAfterFocusingElement; }
Modified: branches/safari-613-branch/Source/WebKit/UIProcess/ios/WKContentViewInteraction.h (290707 => 290708)
--- branches/safari-613-branch/Source/WebKit/UIProcess/ios/WKContentViewInteraction.h 2022-03-02 00:20:55 UTC (rev 290707)
+++ branches/safari-613-branch/Source/WebKit/UIProcess/ios/WKContentViewInteraction.h 2022-03-02 00:27:11 UTC (rev 290708)
@@ -462,7 +462,6 @@
BOOL _isRelinquishingFirstResponderToFocusedElement;
BOOL _unsuppressSoftwareKeyboardAfterNextAutocorrectionContextUpdate;
BOOL _isUnsuppressingSoftwareKeyboardUsingLastAutocorrectionContext;
- BOOL _shouldZoomToFocusRectAfterShowingKeyboard;
BOOL _focusRequiresStrongPasswordAssistance;
BOOL _waitingForEditDragSnapshot;
@@ -601,8 +600,6 @@
- (BOOL)_hasFocusedElement;
- (void)_zoomToRevealFocusedElement;
-- (void)_keyboardDidShow;
-
- (void)cancelPointersForGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer;
- (std::optional<unsigned>)activeTouchIdentifierForGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer;
Modified: branches/safari-613-branch/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm (290707 => 290708)
--- branches/safari-613-branch/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm 2022-03-02 00:20:55 UTC (rev 290707)
+++ branches/safari-613-branch/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm 2022-03-02 00:27:11 UTC (rev 290708)
@@ -1216,8 +1216,6 @@
_pointerInteraction = nil;
#endif
- [self resetShouldZoomToFocusRectAfterShowingKeyboard];
-
#if HAVE(PENCILKIT_TEXT_INPUT)
[self cleanUpScribbleInteraction];
#endif
@@ -2346,32 +2344,11 @@
return boundingRect;
}
-- (void)_keyboardDidShow
-{
- if (!_shouldZoomToFocusRectAfterShowingKeyboard)
- return;
-
- // FIXME: This deferred call to -_zoomToRevealFocusedElement works around the fact that Mail compose
- // disables automatic content inset adjustment using the keyboard height, and instead has logic to
- // explicitly set WKScrollView's contentScrollInset after receiving UIKeyboardDidShowNotification.
- // This means that if we -_zoomToRevealFocusedElement immediately after focusing the body field in
- // Mail, we won't take the keyboard height into account when scrolling.
- // Mitigate this by deferring the call to -_zoomToRevealFocusedElement in this case until after the
- // keyboard has finished animating. We can revert this once rdar://87733414 is fixed.
- [self resetShouldZoomToFocusRectAfterShowingKeyboard];
- [self performSelector:@selector(_zoomToRevealFocusedElement) withObject:nil afterDelay:0];
-}
-
- (void)_zoomToRevealFocusedElement
{
if (_suppressSelectionAssistantReasons || _activeTextInteractionCount)
return;
- if (!self._scroller.firstResponderKeyboardAvoidanceEnabled && _page->isKeyboardAnimatingIn()) {
- _shouldZoomToFocusRectAfterShowingKeyboard = YES;
- return;
- }
-
// In case user scaling is force enabled, do not use that scaling when zooming in with an input field.
// Zooming above the page's default scale factor should only happen when the user performs it.
[self _zoomToFocusRect:_focusedElementInformation.interactionRect
@@ -2383,12 +2360,6 @@
forceScroll:[self requiresAccessoryView]];
}
-- (void)resetShouldZoomToFocusRectAfterShowingKeyboard
-{
- _shouldZoomToFocusRectAfterShowingKeyboard = NO;
- [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(_zoomToRevealFocusedElement) object:nil];
-}
-
- (UIView *)inputView
{
return [_webView inputView];
@@ -6604,8 +6575,6 @@
_focusRequiresStrongPasswordAssistance = NO;
_additionalContextForStrongPasswordAssistance = nil;
- [self resetShouldZoomToFocusRectAfterShowingKeyboard];
-
// When defocusing an editable element reset a seen keydown before calling -_hideKeyboard so that we
// re-evaluate whether we still need a keyboard when UIKit calls us back in -_requiresKeyboardWhenFirstResponder.
if (editableChanged)
Modified: branches/safari-613-branch/Tools/ChangeLog (290707 => 290708)
--- branches/safari-613-branch/Tools/ChangeLog 2022-03-02 00:20:55 UTC (rev 290707)
+++ branches/safari-613-branch/Tools/ChangeLog 2022-03-02 00:27:11 UTC (rev 290708)
@@ -1,3 +1,7 @@
+2022-03-01 Russell Epstein <repst...@apple.com>
+
+ Revert r289282. rdar://problem/88876661
+
2022-02-28 Russell Epstein <repst...@apple.com>
Cherry-pick r289502. rdar://problem/88528286
Modified: branches/safari-613-branch/Tools/TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl (290707 => 290708)
--- branches/safari-613-branch/Tools/TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl 2022-03-02 00:20:55 UTC (rev 290707)
+++ branches/safari-613-branch/Tools/TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl 2022-03-02 00:27:11 UTC (rev 290708)
@@ -285,8 +285,6 @@
undefined setMinimumEffectiveWidth(double effectiveWidth);
undefined setAllowsViewportShrinkToFit(boolean allows);
- undefined setScrollViewKeyboardAvoidanceEnabled(boolean enabled);
-
undefined becomeFirstResponder();
undefined resignFirstResponder();
readonly attribute boolean isPresentingModally;
Modified: branches/safari-613-branch/Tools/TestRunnerShared/UIScriptContext/UIScriptController.h (290707 => 290708)
--- branches/safari-613-branch/Tools/TestRunnerShared/UIScriptContext/UIScriptController.h 2022-03-02 00:20:55 UTC (rev 290707)
+++ branches/safari-613-branch/Tools/TestRunnerShared/UIScriptContext/UIScriptController.h 2022-03-02 00:27:11 UTC (rev 290708)
@@ -97,8 +97,6 @@
virtual void setMinimumEffectiveWidth(double) { notImplemented(); }
virtual void setAllowsViewportShrinkToFit(bool) { notImplemented(); }
- virtual void setScrollViewKeyboardAvoidanceEnabled(bool) { notImplemented(); }
-
virtual std::optional<bool> stableStateOverride() const { notImplemented(); return std::nullopt; }
virtual void setStableStateOverride(std::optional<bool>) { notImplemented(); }
Modified: branches/safari-613-branch/Tools/WebKitTestRunner/ios/TestControllerIOS.mm (290707 => 290708)
--- branches/safari-613-branch/Tools/WebKitTestRunner/ios/TestControllerIOS.mm 2022-03-02 00:20:55 UTC (rev 290707)
+++ branches/safari-613-branch/Tools/WebKitTestRunner/ios/TestControllerIOS.mm 2022-03-02 00:27:11 UTC (rev 290708)
@@ -227,7 +227,6 @@
UIScrollView *scrollView = webView.scrollView;
[scrollView _removeAllAnimations:YES];
[scrollView setZoomScale:1 animated:NO];
- scrollView.firstResponderKeyboardAvoidanceEnabled = YES;
auto currentContentInset = scrollView.contentInset;
auto contentInsetTop = options.contentInsetTop();
Modified: branches/safari-613-branch/Tools/WebKitTestRunner/ios/UIScriptControllerIOS.h (290707 => 290708)
--- branches/safari-613-branch/Tools/WebKitTestRunner/ios/UIScriptControllerIOS.h 2022-03-02 00:20:55 UTC (rev 290707)
+++ branches/safari-613-branch/Tools/WebKitTestRunner/ios/UIScriptControllerIOS.h 2022-03-02 00:27:11 UTC (rev 290708)
@@ -146,7 +146,6 @@
void copyText(JSStringRef) override;
void installTapGestureOnWindow(JSValueRef) override;
void setSpellCheckerResults(JSValueRef) override { }
- void setScrollViewKeyboardAvoidanceEnabled(bool) override;
bool mayContainEditableElementsInRect(unsigned x, unsigned y, unsigned width, unsigned height) override;
Modified: branches/safari-613-branch/Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm (290707 => 290708)
--- branches/safari-613-branch/Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm 2022-03-02 00:20:55 UTC (rev 290707)
+++ branches/safari-613-branch/Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm 2022-03-02 00:27:11 UTC (rev 290708)
@@ -1272,11 +1272,6 @@
webView()._allowsViewportShrinkToFit = allows;
}
-void UIScriptControllerIOS::setScrollViewKeyboardAvoidanceEnabled(bool enabled)
-{
- webView().scrollView.firstResponderKeyboardAvoidanceEnabled = enabled;
-}
-
void UIScriptControllerIOS::doAfterDoubleTapDelay(JSValueRef callback)
{
unsigned callbackID = m_context->prepareForAsyncTask(callback, CallbackTypeNonPersistent);