Diff
Modified: trunk/LayoutTests/ChangeLog (202115 => 202116)
--- trunk/LayoutTests/ChangeLog 2016-06-15 23:34:07 UTC (rev 202115)
+++ trunk/LayoutTests/ChangeLog 2016-06-15 23:44:57 UTC (rev 202116)
@@ -1,3 +1,23 @@
+2016-06-13 Simon Fraser <[email protected]>
+
+ [iOS WK2] Make it possible to test the Next/Previous buttons in the keyboard accessory bar
+ https://bugs.webkit.org/show_bug.cgi?id=158714
+
+ Reviewed by Enrica Casucci.
+
+ Add UIScriptController.keyboardAccessoryBar{Next,Previous} and hook it up to the WKContentView
+ method that gets called from UIKit.
+
+ Add a test that exercises it.
+
+ * TestExpectations:
+ * fast/forms/ios/accessory-bar-navigation-expected.txt: Added.
+ * fast/forms/ios/accessory-bar-navigation.html: Added.
+ * fast/forms/ios/resources/zooming-test-utils.js: Added.
+ (testZoomAfterTap):
+ (tableFromJSON):
+ * platform/ios-simulator-wk2/TestExpectations:
+
2016-06-15 Dean Jackson <[email protected]>
[mac] LayoutTest transforms/undecomposable.html is a flaky timeout
Added: trunk/LayoutTests/fast/forms/ios/accessory-bar-navigation-expected.txt (0 => 202116)
--- trunk/LayoutTests/fast/forms/ios/accessory-bar-navigation-expected.txt (rev 0)
+++ trunk/LayoutTests/fast/forms/ios/accessory-bar-navigation-expected.txt 2016-06-15 23:44:57 UTC (rev 202116)
@@ -0,0 +1,16 @@
+Tests zooming into a text input on tap.
+
+
+After focus first field
+
+tap location { x: 38.000, y: 446.000 }
+scale 0.749
+visibleRect { left: 0.000, top: 266.208, width: 427.000, height: 640.500 }
+After move to second field
+
+scale 0.749
+visibleRect { left: 0.000, top: 687.203, width: 427.000, height: 640.500 }
+After move to first field
+
+scale 0.749
+visibleRect { left: 0.000, top: 266.208, width: 427.000, height: 640.500 }
Added: trunk/LayoutTests/fast/forms/ios/accessory-bar-navigation.html (0 => 202116)
--- trunk/LayoutTests/fast/forms/ios/accessory-bar-navigation.html (rev 0)
+++ trunk/LayoutTests/fast/forms/ios/accessory-bar-navigation.html 2016-06-15 23:44:57 UTC (rev 202116)
@@ -0,0 +1,110 @@
+<!DOCTYPE html> <!-- webkit-test-runner [ useFlexibleViewport=true ] -->
+
+<html>
+<head>
+ <meta name="viewport" content="initial-scale=0.75, user-scalable=no">
+ <style>
+ input[type="text"] {
+ display: block;
+ margin: 400px 20px;
+ }
+ button {
+ display: block;
+ }
+ </style>
+
+ <script src=""
+ <script>
+ if (window.testRunner) {
+ testRunner.dumpAsText();
+ testRunner.waitUntilDone();
+ }
+
+ function getMoveUIScript(nextOrPrevious)
+ {
+ return `
+ (function() {
+ uiController.didEndZoomingCallback = function() {
+ var result = {
+ 'scale' : uiController.zoomScale,
+ 'visibleRect' : uiController.contentVisibleRect
+ };
+
+ var result = JSON.stringify(result, function(key, value) {
+ if (typeof value === "number")
+ return value.toFixed(3);
+ return value;
+ });
+
+ uiController.uiScriptComplete(result);
+ };
+ uiController.keyboardAccessoryBar${nextOrPrevious}();
+ })();`
+ }
+
+ function moveToNextField()
+ {
+ var uiScript = getMoveUIScript('Next');
+ testRunner.runUIScript(uiScript, function(result) {
+ var header = document.createElement('h1');
+ header.textContent = 'After move to second field';
+ document.body.appendChild(header);
+
+ var results = tableFromJSON(result);
+ document.body.appendChild(results);
+
+ moveToPreviousField();
+ });
+ }
+
+ function moveToPreviousField()
+ {
+ var uiScript = getMoveUIScript('Previous');
+ testRunner.runUIScript(uiScript, function(result) {
+ var header = document.createElement('h1');
+ header.textContent = 'After move to first field';
+ document.body.appendChild(header);
+
+ var results = tableFromJSON(result);
+ document.body.appendChild(results);
+ testRunner.notifyDone();
+ });
+ }
+
+ function tapOnElement(targetElement, xOffset, yOffset)
+ {
+ var point = getPointInsideElement(targetElement, xOffset, yOffset);
+
+ var uiScript = zoomAfterSingleTapUIScript(point.x, point.y);
+ testRunner.runUIScript(uiScript, function(result) {
+ var header = document.createElement('h1');
+ header.textContent = 'After focus first field';
+ document.body.appendChild(header);
+
+ var results = tableFromJSON(result);
+ document.body.appendChild(results);
+
+ moveToNextField();
+ });
+ }
+
+ function doTest()
+ {
+ if (!window.testRunner || !testRunner.runUIScript)
+ return;
+
+ tapOnElement(document.getElementById('input'), 10, 10);
+ }
+
+ window.addEventListener('load', doTest, false);
+ </script>
+</head>
+<body>
+
+<p>Tests zooming into a text input on tap.</p>
+
+<input id="input" type="text">
+<input id="input2" type="text">
+
+</body>
+</html>
Modified: trunk/LayoutTests/fast/forms/ios/resources/zooming-test-utils.js (202115 => 202116)
--- trunk/LayoutTests/fast/forms/ios/resources/zooming-test-utils.js 2016-06-15 23:34:07 UTC (rev 202115)
+++ trunk/LayoutTests/fast/forms/ios/resources/zooming-test-utils.js 2016-06-15 23:44:57 UTC (rev 202116)
@@ -4,9 +4,8 @@
if (!window.testRunner || !testRunner.runUIScript)
return;
- // Tap near the right end of the text.
var point = getPointInsideElement(targetElement, xOffset, yOffset);
-
+
var uiScript = zoomAfterSingleTapUIScript(point.x, point.y);
testRunner.runUIScript(uiScript, function(result) {
var results = tableFromJSON(result);
@@ -25,7 +24,7 @@
'scale' : uiController.zoomScale,
'visibleRect' : uiController.contentVisibleRect
};
-
+
var result = JSON.stringify(result, function(key, value) {
if (typeof value === "number")
return value.toFixed(3);
Modified: trunk/Source/WebKit2/ChangeLog (202115 => 202116)
--- trunk/Source/WebKit2/ChangeLog 2016-06-15 23:34:07 UTC (rev 202115)
+++ trunk/Source/WebKit2/ChangeLog 2016-06-15 23:44:57 UTC (rev 202116)
@@ -1,3 +1,20 @@
+2016-06-13 Simon Fraser <[email protected]>
+
+ [iOS WK2] Make it possible to test the Next/Previous buttons in the keyboard accessory bar
+ https://bugs.webkit.org/show_bug.cgi?id=158714
+
+ Reviewed by Enrica Casucci.
+
+ Add UIScriptController.keyboardAccessoryBar{Next,Previous} and hook it up to the WKContentView
+ method that gets called from UIKit.
+
+ Add a test that exercises it.
+
+ * UIProcess/API/Cocoa/WKWebView.mm:
+ (-[WKWebView keyboardAssistantBarNext]):
+ (-[WKWebView keyboardAssistantBarPrevious]):
+ * UIProcess/API/Cocoa/WKWebViewPrivate.h:
+
2016-06-15 Dean Jackson <[email protected]>
RTL <select> forms are misplaced
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm (202115 => 202116)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm 2016-06-15 23:34:07 UTC (rev 202115)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm 2016-06-15 23:44:57 UTC (rev 202116)
@@ -4438,6 +4438,16 @@
return [self convertPoint:point toView:self._currentContentView];
}
+- (void)keyboardAccessoryBarNext
+{
+ [_contentView accessoryTab:YES];
+}
+
+- (void)keyboardAccessoryBarPrevious
+{
+ [_contentView accessoryTab:NO];
+}
+
#endif // PLATFORM(IOS)
#if PLATFORM(MAC)
Modified: trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h (202115 => 202116)
--- trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h 2016-06-15 23:34:07 UTC (rev 202115)
+++ trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h 2016-06-15 23:44:57 UTC (rev 202116)
@@ -250,6 +250,9 @@
@property (nonatomic, readonly) CGRect _contentVisibleRect WK_AVAILABLE(WK_MAC_TBA, WK_IOS_TBA);
- (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;
#endif
#if !TARGET_OS_IPHONE
Modified: trunk/Tools/ChangeLog (202115 => 202116)
--- trunk/Tools/ChangeLog 2016-06-15 23:34:07 UTC (rev 202115)
+++ trunk/Tools/ChangeLog 2016-06-15 23:44:57 UTC (rev 202116)
@@ -1,3 +1,24 @@
+2016-06-13 Simon Fraser <[email protected]>
+
+ [iOS WK2] Make it possible to test the Next/Previous buttons in the keyboard accessory bar
+ https://bugs.webkit.org/show_bug.cgi?id=158714
+
+ Reviewed by Enrica Casucci.
+
+ Add UIScriptController.keyboardAccessoryBar{Next,Previous} and hook it up to the WKContentView
+ method that gets called from UIKit.
+
+ Add a test that exercises it.
+
+ * WebKitTestRunner/UIScriptContext/Bindings/UIScriptController.idl:
+ * WebKitTestRunner/UIScriptContext/UIScriptController.cpp:
+ (WTR::UIScriptController::keyboardAccessoryBarNext):
+ (WTR::UIScriptController::keyboardAccessoryBarPrevious):
+ * WebKitTestRunner/UIScriptContext/UIScriptController.h:
+ * WebKitTestRunner/ios/UIScriptControllerIOS.mm:
+ (WTR::UIScriptController::keyboardAccessoryBarNext):
+ (WTR::UIScriptController::keyboardAccessoryBarPrevious):
+
2016-06-15 Sam Weinig <[email protected]>
Improve HashMap and HashSet support for Ref
Modified: trunk/Tools/WebKitTestRunner/UIScriptContext/Bindings/UIScriptController.idl (202115 => 202116)
--- trunk/Tools/WebKitTestRunner/UIScriptContext/Bindings/UIScriptController.idl 2016-06-15 23:34:07 UTC (rev 202115)
+++ trunk/Tools/WebKitTestRunner/UIScriptContext/Bindings/UIScriptController.idl 2016-06-15 23:44:57 UTC (rev 202116)
@@ -42,6 +42,9 @@
void keyDownUsingHardwareKeyboard(DOMString character, object callback);
void keyUpUsingHardwareKeyboard(DOMString character, object callback);
+ void keyboardAccessoryBarNext();
+ void keyboardAccessoryBarPrevious();
+
attribute object didShowKeyboardCallback;
attribute object didHideKeyboardCallback;
Modified: trunk/Tools/WebKitTestRunner/UIScriptContext/UIScriptController.cpp (202115 => 202116)
--- trunk/Tools/WebKitTestRunner/UIScriptContext/UIScriptController.cpp 2016-06-15 23:34:07 UTC (rev 202115)
+++ trunk/Tools/WebKitTestRunner/UIScriptContext/UIScriptController.cpp 2016-06-15 23:44:57 UTC (rev 202116)
@@ -150,6 +150,14 @@
{
}
+void UIScriptController::keyboardAccessoryBarNext()
+{
+}
+
+void UIScriptController::keyboardAccessoryBarPrevious()
+{
+}
+
double UIScriptController::zoomScale() const
{
return 1;
Modified: trunk/Tools/WebKitTestRunner/UIScriptContext/UIScriptController.h (202115 => 202116)
--- trunk/Tools/WebKitTestRunner/UIScriptContext/UIScriptController.h 2016-06-15 23:34:07 UTC (rev 202115)
+++ trunk/Tools/WebKitTestRunner/UIScriptContext/UIScriptController.h 2016-06-15 23:44:57 UTC (rev 202116)
@@ -57,6 +57,9 @@
void keyDownUsingHardwareKeyboard(JSStringRef character, JSValueRef callback);
void keyUpUsingHardwareKeyboard(JSStringRef character, JSValueRef callback);
+ void keyboardAccessoryBarNext();
+ void keyboardAccessoryBarPrevious();
+
void setWillBeginZoomingCallback(JSValueRef);
JSValueRef willBeginZoomingCallback() const;
Modified: trunk/Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm (202115 => 202116)
--- trunk/Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm 2016-06-15 23:34:07 UTC (rev 202115)
+++ trunk/Tools/WebKitTestRunner/ios/UIScriptControllerIOS.mm 2016-06-15 23:44:57 UTC (rev 202116)
@@ -175,6 +175,18 @@
}];
}
+void UIScriptController::keyboardAccessoryBarNext()
+{
+ TestRunnerWKWebView *webView = TestController::singleton().mainWebView()->platformView();
+ [webView keyboardAccessoryBarNext];
+}
+
+void UIScriptController::keyboardAccessoryBarPrevious()
+{
+ TestRunnerWKWebView *webView = TestController::singleton().mainWebView()->platformView();
+ [webView keyboardAccessoryBarPrevious];
+}
+
double UIScriptController::minimumZoomScale() const
{
TestRunnerWKWebView *webView = TestController::singleton().mainWebView()->platformView();