Diff
Modified: trunk/LayoutTests/ChangeLog (202131 => 202132)
--- trunk/LayoutTests/ChangeLog 2016-06-16 18:25:54 UTC (rev 202131)
+++ trunk/LayoutTests/ChangeLog 2016-06-16 18:49:14 UTC (rev 202132)
@@ -1,3 +1,22 @@
+2016-06-15 Simon Fraser <[email protected]>
+
+ [iOS WK2] On iPad, indirect focussing of a text field doesn't always scroll to the correct location
+ https://bugs.webkit.org/show_bug.cgi?id=158828
+
+ Reviewed by Enrica Casucci.
+
+ Add various tests for focusing form fields. focus-input-via-button-ipad.html tests
+ the change in the current patch.
+
+ * fast/forms/ios/focus-input-in-fixed-expected.txt: Added.
+ * fast/forms/ios/focus-input-in-fixed.html: Added.
+ * fast/forms/ios/focus-input-via-button-ipad-expected.txt: Added.
+ * fast/forms/ios/focus-input-via-button-ipad.html: Added.
+ * fast/forms/ios/focus-long-textarea-expected.txt: Added.
+ * fast/forms/ios/focus-long-textarea.html: Added.
+ * fast/forms/ios/resources/zooming-test-utils.js:
+ (testZoomAfterTap):
+
2016-06-16 Adam Bergkvist <[email protected]>
WebRTC: Check type of this in RTCPeerConnection JS built-in functions
Added: trunk/LayoutTests/fast/forms/ios/focus-input-in-fixed-expected.txt (0 => 202132)
--- trunk/LayoutTests/fast/forms/ios/focus-input-in-fixed-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/forms/ios/focus-input-in-fixed-expected.txt 2016-06-16 18:49:14 UTC (rev 202132)
@@ -0,0 +1,4 @@
+
+tap location { x: 40.000, y: 130.000 }
+scale 1.455
+visibleRect { left: 0.000, top: 37.809, width: 219.979, height: 329.968 }
Added: trunk/LayoutTests/fast/forms/ios/focus-input-in-fixed.html (0 => 202132)
--- trunk/LayoutTests/fast/forms/ios/focus-input-in-fixed.html (rev 0)
+++ trunk/LayoutTests/fast/forms/ios/focus-input-in-fixed.html 2016-06-16 18:49:14 UTC (rev 202132)
@@ -0,0 +1,43 @@
+<!DOCTYPE html> <!-- webkit-test-runner [ useFlexibleViewport=true ] -->
+
+<html>
+<head>
+ <meta name="viewport" content="initial-scale=0.5">
+ <style>
+ .fixed {
+ position: fixed;
+ height: 200px;
+ width: 400px;
+ top: 100px;
+ left: 10px;
+ background-color: silver;
+ }
+
+ input[type="text"] {
+ margin: 20px;
+ }
+ </style>
+
+ <script src=""
+ <script>
+ if (window.testRunner) {
+ testRunner.dumpAsText();
+ testRunner.waitUntilDone();
+ }
+
+ function doTest()
+ {
+ testZoomAfterTap(document.getElementById('input'), 10, 10);
+ }
+
+ window.addEventListener('load', doTest, false);
+ </script>
+</head>
+<body>
+
+<div class="fixed">
+ <input id="input" type="text">
+</div>
+
+</body>
+</html>
Added: trunk/LayoutTests/fast/forms/ios/focus-input-via-button-ipad-expected.txt (0 => 202132)
--- trunk/LayoutTests/fast/forms/ios/focus-input-via-button-ipad-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/forms/ios/focus-input-via-button-ipad-expected.txt 2016-06-16 18:49:14 UTC (rev 202132)
@@ -0,0 +1,7 @@
+Tests zooming into a text input on tap.
+
+Click to focus input
+
+tap location { x: 20.000, y: 62.000 }
+scale 1.455
+visibleRect { left: 0.000, top: 791.923, width: 219.979, height: 329.968 }
Added: trunk/LayoutTests/fast/forms/ios/focus-input-via-button-ipad.html (0 => 202132)
--- trunk/LayoutTests/fast/forms/ios/focus-input-via-button-ipad.html (rev 0)
+++ trunk/LayoutTests/fast/forms/ios/focus-input-via-button-ipad.html 2016-06-16 18:49:14 UTC (rev 202132)
@@ -0,0 +1,44 @@
+<!DOCTYPE html> <!-- webkit-test-runner [ useFlexibleViewport=true ] -->
+
+<html>
+<head>
+ <meta name="viewport" content="initial-scale=0.5">
+ <style>
+ input[type="text"] {
+ margin: 800px 20px;
+ }
+ button {
+ display: block;
+ }
+ </style>
+
+ <script src=""
+ <script>
+ if (window.testRunner) {
+ testRunner.dumpAsText();
+ testRunner.waitUntilDone();
+ }
+
+ function buttonClicked()
+ {
+ document.getElementById('input').focus();
+ }
+
+ function doTest()
+ {
+ const useIPadZoomingBehavior = true;
+ testZoomAfterTap(document.getElementById('target'), 10, 10, useIPadZoomingBehavior);
+ }
+
+ window.addEventListener('load', doTest, false);
+ </script>
+</head>
+<body>
+
+<p>Tests zooming into a text input on tap.</p>
+<button id="target" _onclick_="buttonClicked()">Click to focus input</button>
+
+<input id="input" type="text">
+
+</body>
+</html>
Added: trunk/LayoutTests/fast/forms/ios/focus-long-textarea-expected.txt (0 => 202132)
--- trunk/LayoutTests/fast/forms/ios/focus-long-textarea-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/forms/ios/focus-long-textarea-expected.txt 2016-06-16 18:49:14 UTC (rev 202132)
@@ -0,0 +1,6 @@
+Tests zooming into a tall textarea on tap.
+
+
+tap location { x: 38.000, y: 664.000 }
+scale 1.455
+visibleRect { left: 0.000, top: 492.546, width: 219.979, height: 329.968 }
Added: trunk/LayoutTests/fast/forms/ios/focus-long-textarea.html (0 => 202132)
--- trunk/LayoutTests/fast/forms/ios/focus-long-textarea.html (rev 0)
+++ trunk/LayoutTests/fast/forms/ios/focus-long-textarea.html 2016-06-16 18:49:14 UTC (rev 202132)
@@ -0,0 +1,66 @@
+<!DOCTYPE html> <!-- webkit-test-runner [ useFlexibleViewport=true ] -->
+
+<html>
+<head>
+ <meta name="viewport" content="initial-scale=0.5">
+ <style>
+ textarea {
+ margin: 400px 20px;
+ }
+ </style>
+
+ <script src=""
+ <script>
+ if (window.testRunner) {
+ testRunner.dumpAsText();
+ testRunner.waitUntilDone();
+ }
+
+ function doTest()
+ {
+ var textarea = document.getElementById('input');
+ var verticalPoint = textarea.clientHeight / 2;
+ testZoomAfterTap(textarea, 10, verticalPoint);
+ }
+
+ window.addEventListener('load', doTest, false);
+ </script>
+</head>
+<body>
+
+<p>Tests zooming into a tall textarea on tap.</p>
+<textarea id="input" rows="30">
+A
+A
+A
+A
+A
+A
+A
+A
+A
+A
+A
+A
+A
+A
+A
+A
+A
+A
+A
+A
+A
+A
+A
+A
+A
+A
+A
+A
+A
+A
+</textarea>
+
+</body>
+</html>
Modified: trunk/LayoutTests/fast/forms/ios/resources/zooming-test-utils.js (202131 => 202132)
--- trunk/LayoutTests/fast/forms/ios/resources/zooming-test-utils.js 2016-06-16 18:25:54 UTC (rev 202131)
+++ trunk/LayoutTests/fast/forms/ios/resources/zooming-test-utils.js 2016-06-16 18:49:14 UTC (rev 202132)
@@ -1,12 +1,12 @@
-function testZoomAfterTap(targetElement, xOffset, yOffset)
+function testZoomAfterTap(targetElement, xOffset, yOffset, useIPadBehavior)
{
if (!window.testRunner || !testRunner.runUIScript)
return;
var point = getPointInsideElement(targetElement, xOffset, yOffset);
- var uiScript = zoomAfterSingleTapUIScript(point.x, point.y);
+ var uiScript = zoomAfterSingleTapUIScript(point.x, point.y, useIPadBehavior);
testRunner.runUIScript(uiScript, function(result) {
var results = tableFromJSON(result);
document.body.appendChild(results);
@@ -14,7 +14,7 @@
});
}
-function zoomAfterSingleTapUIScript(x, y)
+function zoomAfterSingleTapUIScript(x, y, useIPadBehavior)
{
return `
(function() {
@@ -34,6 +34,8 @@
uiController.uiScriptComplete(result);
};
+ if (${useIPadBehavior})
+ uiController.forceIPadStyleZoomOnInputFocus = true;
uiController.singleTapAtPoint(${x}, ${y}, function() {});
})();`
}
Modified: trunk/Source/WebKit2/ChangeLog (202131 => 202132)
--- trunk/Source/WebKit2/ChangeLog 2016-06-16 18:25:54 UTC (rev 202131)
+++ trunk/Source/WebKit2/ChangeLog 2016-06-16 18:49:14 UTC (rev 202132)
@@ -1,3 +1,41 @@
+2016-06-15 Simon Fraser <[email protected]>
+
+ [iOS WK2] On iPad, indirect focussing of a text field doesn't always scroll to the correct location
+ https://bugs.webkit.org/show_bug.cgi?id=158828
+
+ Reviewed by Enrica Casucci.
+
+ WebPage::getAssistedNodeInformation() unconditionally set information.selectionRect()
+ to a 1x1 rect at the last interaction location. This caused -[WKWebView _zoomToFocusRect:...]
+ to early return under the !forceScroll clause if the last interaction rect was visible, but
+ the elementRect was not. This would happen, for example, if a click in a <button> focussed
+ an input on some other portion of the page. This behavior is iPad-only, because forceScroll
+ is only NO there.
+
+ Fix by making getAssistedNodeInformation() only set the selectionRect to the last interaction
+ location if that is inside of the elementRect (this caters to the case where a tap is inside
+ an input which is larger than the screen). Otherwise, set it to the empty rect.
+
+ Make this testable by allowing a test to opt into the iPad-style scrolling/zooming behavior
+ in this code path (essentially, making forceScroll NO for testing), via testing SPI on WKWebView,
+ plumbed through to WKContentView.
+
+ * UIProcess/API/Cocoa/WKWebView.mm:
+ (-[WKWebView forceIPadStyleZoomOnInputFocus]):
+ (-[WKWebView setForceIPadStyleZoomOnInputFocus:]):
+ * UIProcess/API/Cocoa/WKWebViewPrivate.h:
+ * UIProcess/ios/WKContentViewInteraction.h:
+ * UIProcess/ios/WKContentViewInteraction.mm:
+ (-[WKContentView _displayFormNodeInputView]):
+ (-[WKContentView requiresAccessoryView:]):
+ (-[WKContentView inputAccessoryView]):
+ (-[WKContentView forceIPadStyleZoomOnInputFocus]):
+ (-[WKContentView setForceIPadStyleZoomOnInputFocus:]):
+ (-[WKContentView requiresAccessoryView]): Remove redundant returns, and allow testing to
+ override the "isIPad" condition.
+ * WebProcess/WebPage/ios/WebPageIOS.mm:
+ (WebKit::WebPage::getAssistedNodeInformation):
+
2016-06-15 Sam Weinig <[email protected]>
Forward/Back keyboard shortcuts need to flip for RTL
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm (202131 => 202132)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm 2016-06-16 18:25:54 UTC (rev 202131)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm 2016-06-16 18:49:14 UTC (rev 202132)
@@ -4486,6 +4486,16 @@
[_contentView accessoryTab:NO];
}
+- (BOOL)forceIPadStyleZoomOnInputFocus
+{
+ return [_contentView forceIPadStyleZoomOnInputFocus];
+}
+
+- (void)setForceIPadStyleZoomOnInputFocus:(BOOL)forceIPadStyleZoom
+{
+ [_contentView setForceIPadStyleZoomOnInputFocus:forceIPadStyleZoom];
+}
+
#endif // PLATFORM(IOS)
#if PLATFORM(MAC)
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h (202131 => 202132)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h 2016-06-16 18:25:54 UTC (rev 202131)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h 2016-06-16 18:49:14 UTC (rev 202132)
@@ -255,8 +255,10 @@
- (CGPoint)_convertPointFromContentsToView:(CGPoint)point WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
- (CGPoint)_convertPointFromViewToContents:(CGPoint)point WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
-- (void)keyboardAccessoryBarNext;
-- (void)keyboardAccessoryBarPrevious;
+- (void)keyboardAccessoryBarNext WK_AVAILABLE(NA, WK_IOS_TBA);
+- (void)keyboardAccessoryBarPrevious WK_AVAILABLE(NA, WK_IOS_TBA);
+
+@property (nonatomic) BOOL forceIPadStyleZoomOnInputFocus WK_AVAILABLE(NA, WK_IOS_TBA);
#endif
#if !TARGET_OS_IPHONE
Modified: trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.h (202131 => 202132)
--- trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.h 2016-06-16 18:25:54 UTC (rev 202131)
+++ trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.h 2016-06-16 18:49:14 UTC (rev 202132)
@@ -171,6 +171,9 @@
BOOL _showDebugTapHighlightsForFastClicking;
BOOL _resigningFirstResponder;
+
+ // For testing.
+ BOOL _forceIPadStyleZoomOnInputFocus;
}
@end
@@ -231,4 +234,10 @@
@end
#endif
+@interface WKContentView (WKInteractionTesting)
+
+@property (nonatomic) BOOL forceIPadStyleZoomOnInputFocus;
+
+@end
+
#endif // PLATFORM(IOS)
Modified: trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm (202131 => 202132)
--- trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm 2016-06-16 18:25:54 UTC (rev 202131)
+++ trunk/Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm 2016-06-16 18:49:14 UTC (rev 202132)
@@ -1067,8 +1067,9 @@
fontSize:_assistedNodeInformation.nodeFontSize
minimumScale:_assistedNodeInformation.minimumScaleFactor
maximumScale:_assistedNodeInformation.maximumScaleFactor
- allowScaling:(_assistedNodeInformation.allowsUserScalingIgnoringForceAlwaysScaling && !UICurrentUserInterfaceIdiomIsPad())
- forceScroll:[self requiresAccessoryView]];
+ allowScaling:(_assistedNodeInformation.allowsUserScalingIgnoringForceAlwaysScaling && (!UICurrentUserInterfaceIdiomIsPad() || _forceIPadStyleZoomOnInputFocus))
+ forceScroll:[self requiresAccessoryView:_forceIPadStyleZoomOnInputFocus]];
+
_didAccessoryTabInitiateFocus = NO;
[self _ensureFormAccessoryView];
[self _updateAccessory];
@@ -1579,7 +1580,7 @@
[_textSelectionAssistant didEndScrollingOverflow];
}
-- (BOOL)requiresAccessoryView
+- (BOOL)requiresAccessoryView:(BOOL)forceIPadBehavior
{
if ([_formInputSession accessoryViewShouldNotShow])
return NO;
@@ -1595,10 +1596,8 @@
case InputType::Phone:
case InputType::Number:
case InputType::NumberPad:
- return !UICurrentUserInterfaceIdiomIsPad();
case InputType::ContentEditable:
case InputType::TextArea:
- return !UICurrentUserInterfaceIdiomIsPad();
case InputType::Select:
case InputType::Date:
case InputType::DateTime:
@@ -1606,7 +1605,7 @@
case InputType::Month:
case InputType::Week:
case InputType::Time:
- return !UICurrentUserInterfaceIdiomIsPad();
+ return !(UICurrentUserInterfaceIdiomIsPad() || forceIPadBehavior);
}
}
@@ -1621,7 +1620,7 @@
- (UIView *)inputAccessoryView
{
- if (![self requiresAccessoryView])
+ if (![self requiresAccessoryView:NO])
return nil;
return self.formAccessoryView;
@@ -4112,6 +4111,21 @@
#endif
+@implementation WKContentView (WKInteractionTesting)
+
+- (BOOL)forceIPadStyleZoomOnInputFocus
+{
+ return _forceIPadStyleZoomOnInputFocus;
+}
+
+- (void)setForceIPadStyleZoomOnInputFocus:(BOOL)forceIPadStyleZoom
+{
+ _forceIPadStyleZoomOnInputFocus = forceIPadStyleZoom;
+}
+
+@end
+
+
// UITextRange, UITextPosition and UITextSelectionRect implementations for WK2
@implementation WKTextRange (UITextInputAdditions)
Modified: trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm (202131 => 202132)
--- trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm 2016-06-16 18:25:54 UTC (rev 202131)
+++ trunk/Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm 2016-06-16 18:49:14 UTC (rev 202132)
@@ -2516,9 +2516,8 @@
{
layoutIfNeeded();
- // FIXME: This should return the selection rect, but when this is called at focus time
+ // FIXME: information.selectionRect should be set to the actual selection rect, but when this is called at focus time
// we don't have a selection yet. Using the last interaction location is a reasonable approximation for now.
- // FIXME: should the selection rect always be inside the elementRect?
information.selectionRect = IntRect(m_lastInteractionLocation, IntSize(1, 1));
if (RenderObject* renderer = m_assistedNode->renderer()) {
@@ -2538,8 +2537,12 @@
information.elementRect = frameView->contentsToRootView(renderer->absoluteBoundingBoxRect());
frameView->setCustomFixedPositionLayoutRect(currentFixedPositionRect);
- if (!information.elementRect.contains(information.selectionRect))
+ if (!information.elementRect.contains(m_lastInteractionLocation))
information.selectionRect.setLocation(information.elementRect.location());
+ } else {
+ // Don't use the selection rect if interaction was outside the element rect.
+ if (!information.elementRect.contains(m_lastInteractionLocation))
+ information.selectionRect = IntRect();
}
} else
information.elementRect = IntRect();
Modified: trunk/Tools/ChangeLog (202131 => 202132)
--- trunk/Tools/ChangeLog 2016-06-16 18:25:54 UTC (rev 202131)
+++ trunk/Tools/ChangeLog 2016-06-16 18:49:14 UTC (rev 202132)
@@ -1,3 +1,24 @@
+2016-06-15 Simon Fraser <[email protected]>
+
+ [iOS WK2] On iPad, indirect focussing of a text field doesn't always scroll to the correct location
+ https://bugs.webkit.org/show_bug.cgi?id=158828
+
+ Reviewed by Enrica Casucci.
+
+ Expose "forceIPadStyleZoomOnInputFocus" on UIScriptController, which allows iPad-style
+ zooming behavior on <input> focus in the iPhone simulator, which is used for testing.
+
+ * WebKitTestRunner/UIScriptContext/Bindings/UIScriptController.idl:
+ * WebKitTestRunner/UIScriptContext/UIScriptController.cpp:
+ (WTR::UIScriptController::forceIPadStyleZoomOnInputFocus):
+ (WTR::UIScriptController::setForceIPadStyleZoomOnInputFocus):
+ * WebKitTestRunner/UIScriptContext/UIScriptController.h:
+ * WebKitTestRunner/ios/TestControllerIOS.mm:
+ (WTR::TestController::platformResetStateToConsistentValues):
+ * WebKitTestRunner/ios/UIScriptControllerIOS.mm:
+ (WTR::UIScriptController::forceIPadStyleZoomOnInputFocus):
+ (WTR::UIScriptController::setForceIPadStyleZoomOnInputFocus):
+
2016-06-15 Sam Weinig <[email protected]>
Forward/Back keyboard shortcuts need to flip for RTL
Modified: trunk/Tools/WebKitTestRunner/UIScriptContext/Bindings/UIScriptController.idl (202131 => 202132)
--- trunk/Tools/WebKitTestRunner/UIScriptContext/Bindings/UIScriptController.idl 2016-06-16 18:25:54 UTC (rev 202131)
+++ trunk/Tools/WebKitTestRunner/UIScriptContext/Bindings/UIScriptController.idl 2016-06-16 18:49:14 UTC (rev 202132)
@@ -60,5 +60,8 @@
readonly attribute object contentVisibleRect; // Returned object has 'left', 'top', 'width', 'height' properties.
+ // Behavior
+ attribute boolean forceIPadStyleZoomOnInputFocus;
+
void uiScriptComplete(DOMString result);
};
Modified: trunk/Tools/WebKitTestRunner/UIScriptContext/UIScriptController.cpp (202131 => 202132)
--- trunk/Tools/WebKitTestRunner/UIScriptContext/UIScriptController.cpp 2016-06-16 18:25:54 UTC (rev 202131)
+++ trunk/Tools/WebKitTestRunner/UIScriptContext/UIScriptController.cpp 2016-06-16 18:49:14 UTC (rev 202132)
@@ -178,6 +178,15 @@
return nullptr;
}
+bool UIScriptController::forceIPadStyleZoomOnInputFocus() const
+{
+ return false;
+}
+
+void UIScriptController::setForceIPadStyleZoomOnInputFocus(bool)
+{
+}
+
void UIScriptController::platformSetWillBeginZoomingCallback()
{
}
Modified: trunk/Tools/WebKitTestRunner/UIScriptContext/UIScriptController.h (202131 => 202132)
--- trunk/Tools/WebKitTestRunner/UIScriptContext/UIScriptController.h 2016-06-16 18:25:54 UTC (rev 202131)
+++ trunk/Tools/WebKitTestRunner/UIScriptContext/UIScriptController.h 2016-06-16 18:49:14 UTC (rev 202132)
@@ -80,6 +80,9 @@
double maximumZoomScale() const;
JSObjectRef contentVisibleRect() const;
+
+ bool forceIPadStyleZoomOnInputFocus() const;
+ void setForceIPadStyleZoomOnInputFocus(bool);
void uiScriptComplete(JSStringRef result);
Modified: trunk/Tools/WebKitTestRunner/ios/TestControllerIOS.mm (202131 => 202132)
--- trunk/Tools/WebKitTestRunner/ios/TestControllerIOS.mm 2016-06-16 18:25:54 UTC (rev 202131)
+++ trunk/Tools/WebKitTestRunner/ios/TestControllerIOS.mm 2016-06-16 18:49:14 UTC (rev 202132)
@@ -29,13 +29,13 @@
#import "PlatformWebView.h"
#import "TestInvocation.h"
#import <Foundation/Foundation.h>
+#import <UIKit/UIKit.h>
#import <WebKit/WKPreferencesRefPrivate.h>
#import <WebKit/WKProcessPoolPrivate.h>
#import <WebKit/WKStringCF.h>
#import <WebKit/WKUserContentControllerPrivate.h>
-#import <WebKit/WKWebView.h>
-#import <WebKit/WKWebViewConfiguration.h>
#import <WebKit/WKWebViewConfigurationPrivate.h>
+#import <WebKit/WKWebViewPrivate.h>
#import <wtf/MainThread.h>
namespace WTR {
@@ -83,6 +83,7 @@
void TestController::platformResetStateToConsistentValues()
{
cocoaResetStateToConsistentValues();
+ [mainWebView()->platformView() setForceIPadStyleZoomOnInputFocus:NO];
}
void TestController::platformConfigureViewForTest(const TestInvocation& test)
Modified: trunk/Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm (202131 => 202132)
--- trunk/Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm 2016-06-16 18:25:54 UTC (rev 202131)
+++ trunk/Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm 2016-06-16 18:49:14 UTC (rev 202132)
@@ -209,6 +209,18 @@
return m_context->objectFromRect(wkRect);
}
+bool UIScriptController::forceIPadStyleZoomOnInputFocus() const
+{
+ TestRunnerWKWebView *webView = TestController::singleton().mainWebView()->platformView();
+ return webView.forceIPadStyleZoomOnInputFocus;
+}
+
+void UIScriptController::setForceIPadStyleZoomOnInputFocus(bool value)
+{
+ TestRunnerWKWebView *webView = TestController::singleton().mainWebView()->platformView();
+ webView.forceIPadStyleZoomOnInputFocus = value;
+}
+
void UIScriptController::platformSetWillBeginZoomingCallback()
{
TestRunnerWKWebView *webView = TestController::singleton().mainWebView()->platformView();