Diff
Modified: trunk/LayoutTests/ChangeLog (230509 => 230510)
--- trunk/LayoutTests/ChangeLog 2018-04-11 01:52:40 UTC (rev 230509)
+++ trunk/LayoutTests/ChangeLog 2018-04-11 02:08:16 UTC (rev 230510)
@@ -1,3 +1,14 @@
+2018-04-10 Nan Wang <n_w...@apple.com>
+
+ AX: Expose strong password fields on iOS
+ https://bugs.webkit.org/show_bug.cgi?id=184465
+ <rdar://problem/39325104>
+
+ Reviewed by Chris Fleizach.
+
+ * accessibility/ios-simulator/strong-password-field-expected.txt: Added.
+ * accessibility/ios-simulator/strong-password-field.html: Added.
+
2018-04-10 Per Arne Vollan <pvol...@apple.com>
Mark legacy-animation-engine/compositing tests as failures on Windows.
Added: trunk/LayoutTests/accessibility/ios-simulator/strong-password-field-expected.txt (0 => 230510)
--- trunk/LayoutTests/accessibility/ios-simulator/strong-password-field-expected.txt (rev 0)
+++ trunk/LayoutTests/accessibility/ios-simulator/strong-password-field-expected.txt 2018-04-11 02:08:16 UTC (rev 230510)
@@ -0,0 +1,16 @@
+
+This tests the strong password fields on iOS
+
+On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
+
+
+PASS axPw1.boolAttributeValue('AXIsStrongPasswordField') is false
+PASS axPw2.boolAttributeValue('AXIsStrongPasswordField') is true
+PASS axPw3.boolAttributeValue('AXIsStrongPasswordField') is true
+PASS axPw1.stringValue is 'AXValue: ••••••••'
+PASS axPw2.stringValue is 'AXValue: strong password'
+PASS axPw3.stringValue is 'AXValue: strong confirmation password'
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
Added: trunk/LayoutTests/accessibility/ios-simulator/strong-password-field.html (0 => 230510)
--- trunk/LayoutTests/accessibility/ios-simulator/strong-password-field.html (rev 0)
+++ trunk/LayoutTests/accessibility/ios-simulator/strong-password-field.html 2018-04-11 02:08:16 UTC (rev 230510)
@@ -0,0 +1,52 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
+<html>
+<head>
+<script src=""
+<meta charset="UTF-8">
+</head>
+<body id="body">
+
+<div id="container">
+<input id="pw1" type="password" value="password">
+<input id="pw2" type="password" value="strong password">
+<input id="pw3" type="password" value="strong confirmation password">
+</div>
+
+<p id="description"></p>
+<div id="console"></div>
+
+<script>
+
+ description("This tests the strong password fields on iOS");
+
+ var pw1 = document.getElementById("pw1");
+ var pw2 = document.getElementById("pw2");
+ var pw3 = document.getElementById("pw3");
+
+ if (window.internals) {
+ window.internals.setAutofilled(pw2, true);
+ window.internals.setShowAutoFillButton(pw2, "StrongConfirmationPassword");
+
+ window.internals.setAutofilled(pw3, true);
+ window.internals.setShowAutoFillButton(pw3, "StrongPassword");
+ }
+
+ if (window.accessibilityController) {
+ var axPw1 = accessibilityController.accessibleElementById("pw1");
+ var axPw2 = accessibilityController.accessibleElementById("pw2");
+ var axPw3 = accessibilityController.accessibleElementById("pw3");
+
+ shouldBeFalse("axPw1.boolAttributeValue('AXIsStrongPasswordField')");
+ shouldBeTrue("axPw2.boolAttributeValue('AXIsStrongPasswordField')");
+ shouldBeTrue("axPw3.boolAttributeValue('AXIsStrongPasswordField')");
+
+ shouldBe("axPw1.stringValue", "'AXValue: ••••••••'");
+ shouldBe("axPw2.stringValue", "'AXValue: strong password'");
+ shouldBe("axPw3.stringValue", "'AXValue: strong confirmation password'");
+ }
+
+</script>
+
+<script src=""
+</body>
+</html>
Modified: trunk/Source/WebCore/ChangeLog (230509 => 230510)
--- trunk/Source/WebCore/ChangeLog 2018-04-11 01:52:40 UTC (rev 230509)
+++ trunk/Source/WebCore/ChangeLog 2018-04-11 02:08:16 UTC (rev 230510)
@@ -1,3 +1,20 @@
+2018-04-10 Nan Wang <n_w...@apple.com>
+
+ AX: Expose strong password fields on iOS
+ https://bugs.webkit.org/show_bug.cgi?id=184465
+ <rdar://problem/39325104>
+
+ Reviewed by Chris Fleizach.
+
+ Exposed the strong password field on iOS. And made sure
+ we are returning its actual value in accessibilityValue.
+
+ Test: accessibility/ios-simulator/strong-password-field.html
+
+ * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
+ (-[WebAccessibilityObjectWrapper _accessibilityIsStrongPasswordField]):
+ (-[WebAccessibilityObjectWrapper accessibilityValue]):
+
2018-04-10 Fujii Hironori <hironori.fu...@sony.com>
[Win] Add UserAgentWin.cpp
Modified: trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm (230509 => 230510)
--- trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm 2018-04-11 01:52:40 UTC (rev 230509)
+++ trunk/Source/WebCore/accessibility/ios/WebAccessibilityObjectWrapperIOS.mm 2018-04-11 02:08:16 UTC (rev 230510)
@@ -1084,6 +1084,18 @@
return m_object->isValueAutofilled();
}
+- (BOOL)_accessibilityIsStrongPasswordField
+{
+ if (![self _prepareAccessibilityCall])
+ return NO;
+
+ if (!m_object->isPasswordField())
+ return NO;
+
+ AutoFillButtonType type = m_object->valueAutofillButtonType();
+ return type == AutoFillButtonType::StrongConfirmationPassword || type == AutoFillButtonType::StrongPassword;
+}
+
- (CGFloat)_accessibilityMinValue
{
if (![self _prepareAccessibilityCall])
@@ -1408,7 +1420,7 @@
return [NSString stringWithFormat:@"%d", 1];
// rdar://8131388 WebKit should expose the same info as UIKit for its password fields.
- if (m_object->isPasswordField()) {
+ if (m_object->isPasswordField() && ![self _accessibilityIsStrongPasswordField]) {
int passwordLength = m_object->accessibilityPasswordFieldLength();
NSMutableString* string = [NSMutableString string];
for (int k = 0; k < passwordLength; ++k)
Modified: trunk/Tools/ChangeLog (230509 => 230510)
--- trunk/Tools/ChangeLog 2018-04-11 01:52:40 UTC (rev 230509)
+++ trunk/Tools/ChangeLog 2018-04-11 02:08:16 UTC (rev 230510)
@@ -1,3 +1,16 @@
+2018-04-10 Nan Wang <n_w...@apple.com>
+
+ AX: Expose strong password fields on iOS
+ https://bugs.webkit.org/show_bug.cgi?id=184465
+ <rdar://problem/39325104>
+
+ Reviewed by Chris Fleizach.
+
+ * DumpRenderTree/ios/AccessibilityUIElementIOS.mm:
+ (AccessibilityUIElement::boolAttributeValue):
+ * WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
+ (WTR::AccessibilityUIElement::boolAttributeValue):
+
2018-04-10 Zalan Bujtas <za...@apple.com>
[LayoutReloaded] Add support for out-of-flow descendants in inline formatting context.
Modified: trunk/Tools/DumpRenderTree/ios/AccessibilityUIElementIOS.mm (230509 => 230510)
--- trunk/Tools/DumpRenderTree/ios/AccessibilityUIElementIOS.mm 2018-04-11 01:52:40 UTC (rev 230509)
+++ trunk/Tools/DumpRenderTree/ios/AccessibilityUIElementIOS.mm 2018-04-11 02:08:16 UTC (rev 230510)
@@ -102,6 +102,7 @@
- (NSUInteger)accessibilityBlockquoteLevel;
- (NSArray *)accessibilityFindMatchingObjects:(NSDictionary *)parameters;
- (NSArray *)accessibilitySpeechHint;
+- (BOOL)_accessibilityIsStrongPasswordField;
// TextMarker related
- (NSArray *)textMarkerRange;
@@ -715,6 +716,8 @@
{
if (JSStringIsEqualToUTF8CString(attribute, "AXHasTouchEventListener"))
return [m_element _accessibilityHasTouchEventListener];
+ if (JSStringIsEqualToUTF8CString(attribute, "AXIsStrongPasswordField"))
+ return [m_element _accessibilityIsStrongPasswordField];
return false;
}
Modified: trunk/Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm (230509 => 230510)
--- trunk/Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm 2018-04-11 01:52:40 UTC (rev 230509)
+++ trunk/Tools/WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm 2018-04-11 02:08:16 UTC (rev 230510)
@@ -80,6 +80,7 @@
- (NSUInteger)accessibilityBlockquoteLevel;
- (NSArray *)accessibilityFindMatchingObjects:(NSDictionary *)parameters;
- (NSArray<NSString *> *)accessibilitySpeechHint;
+- (BOOL)_accessibilityIsStrongPasswordField;
// TextMarker related
- (NSArray *)textMarkerRange;
@@ -400,6 +401,8 @@
{
if (JSStringIsEqualToUTF8CString(attribute, "AXHasTouchEventListener"))
return [m_element _accessibilityHasTouchEventListener];
+ if (JSStringIsEqualToUTF8CString(attribute, "AXIsStrongPasswordField"))
+ return [m_element _accessibilityIsStrongPasswordField];
return false;
}