Changeset 235245 in webkit
- Timestamp:
- Aug 23, 2018 2:24:42 PM (6 years ago)
- Location:
- trunk
- Files:
-
- 4 added
- 18 edited
- 4 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r235243 r235245 1 2018-08-23 Aditya Keerthi <akeerthi@apple.com> 2 3 [iOS] Support the inputmode attribute on contenteditable elements 4 https://bugs.webkit.org/show_bug.cgi?id=188878 5 6 Reviewed by Ryosuke Niwa. 7 8 Added additional tests to verify the inputmode attribute is accessible on 9 HTMLElements. 10 11 * fast/forms/inputmode-attribute-contenteditable-expected.txt: Added. 12 * fast/forms/inputmode-attribute-contenteditable.html: Added. 13 * fast/forms/inputmode-attribute-input-expected.txt: Renamed from LayoutTests/fast/forms/inputmode-attribute-expected.txt. 14 * fast/forms/inputmode-attribute-input.html: Renamed from LayoutTests/fast/forms/inputmode-attribute.html. 15 * fast/forms/inputmode-attribute-textarea-expected.txt: Added. 16 * fast/forms/inputmode-attribute-textarea.html: Added. 17 * js/dom/dom-static-property-for-in-iteration-expected.txt: Rebaseline. 18 1 19 2018-08-22 Ryosuke Niwa <rniwa@webkit.org> 2 20 -
trunk/LayoutTests/fast/forms/inputmode-attribute-input-expected.txt
r235243 r235245 1 Test inputmode attribute 1 Test inputmode attribute on input 2 2 3 3 -
trunk/LayoutTests/fast/forms/inputmode-attribute-input.html
r235243 r235245 3 3 <body> 4 4 <script src="../../resources/js-test-pre.js"></script> 5 <p>Test inputmode attribute </p>5 <p>Test inputmode attribute on input</p> 6 6 <input id="input"> 7 7 <div id=console></div> -
trunk/LayoutTests/imported/w3c/ChangeLog
r235234 r235245 1 2018-08-23 Aditya Keerthi <akeerthi@apple.com> 2 3 [iOS] Support the inputmode attribute on contenteditable elements 4 https://bugs.webkit.org/show_bug.cgi?id=188878 5 6 Reviewed by Ryosuke Niwa. 7 8 * web-platform-tests/html/dom/reflection-misc-expected.txt: Rebaseline. 9 1 10 2018-08-23 Youenn Fablet <youenn@apple.com> 2 11 -
trunk/LayoutTests/imported/w3c/web-platform-tests/html/dom/reflection-misc-expected.txt
r230445 r235245 3617 3617 PASS undefinedelement.tabIndex: IDL set to 2147483647 3618 3618 PASS undefinedelement.tabIndex: IDL set to -2147483648 3619 FAIL undefinedelement.inputMode: typeof IDL attribute assert_equals: expected "string" but got "undefined" 3620 FAIL undefinedelement.inputMode: IDL get with DOM attribute unset assert_equals: expected (string) "" but got (undefined) undefined 3621 FAIL undefinedelement.inputMode: setAttribute() to "" assert_equals: IDL get expected (string) "" but got (undefined) undefined 3622 FAIL undefinedelement.inputMode: setAttribute() to " \0\x01\x02\x03\x04\x05\x06\x07 \b\t\n\v\f\r\x0e\x0f \x10\x11\x12\x13\x14\x15\x16\x17 \x18\x19\x1a\x1b\x1c\x1d\x1e\x1f foo " assert_equals: IDL get expected (string) "" but got (undefined) undefined 3623 FAIL undefinedelement.inputMode: setAttribute() to undefined assert_equals: IDL get expected (string) "" but got (undefined) undefined 3624 FAIL undefinedelement.inputMode: setAttribute() to 7 assert_equals: IDL get expected (string) "" but got (undefined) undefined 3625 FAIL undefinedelement.inputMode: setAttribute() to 1.5 assert_equals: IDL get expected (string) "" but got (undefined) undefined 3626 FAIL undefinedelement.inputMode: setAttribute() to true assert_equals: IDL get expected (string) "" but got (undefined) undefined 3627 FAIL undefinedelement.inputMode: setAttribute() to false assert_equals: IDL get expected (string) "" but got (undefined) undefined 3628 FAIL undefinedelement.inputMode: setAttribute() to object "[object Object]" assert_equals: IDL get expected (string) "" but got (undefined) undefined 3629 FAIL undefinedelement.inputMode: setAttribute() to NaN assert_equals: IDL get expected (string) "" but got (undefined) undefined 3630 FAIL undefinedelement.inputMode: setAttribute() to Infinity assert_equals: IDL get expected (string) "" but got (undefined) undefined 3631 FAIL undefinedelement.inputMode: setAttribute() to -Infinity assert_equals: IDL get expected (string) "" but got (undefined) undefined 3632 FAIL undefinedelement.inputMode: setAttribute() to "\0" assert_equals: IDL get expected (string) "" but got (undefined) undefined 3633 FAIL undefinedelement.inputMode: setAttribute() to null assert_equals: IDL get expected (string) "" but got (undefined) undefined 3634 FAIL undefinedelement.inputMode: setAttribute() to object "test-toString" assert_equals: IDL get expected (string) "" but got (undefined) undefined 3635 FAIL undefinedelement.inputMode: setAttribute() to object "test-valueOf" assert_equals: IDL get expected (string) "" but got (undefined) undefined 3636 FAIL undefinedelement.inputMode: setAttribute() to "none" assert_equals: IDL get expected (string) "none" but got (undefined) undefined3637 FAIL undefinedelement.inputMode: setAttribute() to "xnone" assert_equals: IDL get expected (string) "" but got (undefined) undefined 3638 FAIL undefinedelement.inputMode: setAttribute() to "none\0" assert_equals: IDL get expected (string) "" but got (undefined) undefined 3639 FAIL undefinedelement.inputMode: setAttribute() to "one" assert_equals: IDL get expected (string) "" but got (undefined) undefined 3640 FAIL undefinedelement.inputMode: setAttribute() to "NONE" assert_equals: IDL get expected (string) "none" but got (undefined) undefined3641 FAIL undefinedelement.inputMode: setAttribute() to "text" assert_equals: IDL get expected (string) "text" but got (undefined) undefined 3642 FAIL undefinedelement.inputMode: setAttribute() to "xtext" assert_equals: IDL get expected (string) "" but got (undefined) undefined 3643 FAIL undefinedelement.inputMode: setAttribute() to "text\0" assert_equals: IDL get expected (string) "" but got (undefined) undefined 3644 FAIL undefinedelement.inputMode: setAttribute() to "ext" assert_equals: IDL get expected (string) "" but got (undefined) undefined 3645 FAIL undefinedelement.inputMode: setAttribute() to "TEXT" assert_equals: IDL get expected (string) "text" but got (undefined) undefined 3646 FAIL undefinedelement.inputMode: setAttribute() to "tel" assert_equals: IDL get expected (string) "tel" but got (undefined) undefined 3647 FAIL undefinedelement.inputMode: setAttribute() to "xtel" assert_equals: IDL get expected (string) "" but got (undefined) undefined 3648 FAIL undefinedelement.inputMode: setAttribute() to "tel\0" assert_equals: IDL get expected (string) "" but got (undefined) undefined 3649 FAIL undefinedelement.inputMode: setAttribute() to "el" assert_equals: IDL get expected (string) "" but got (undefined) undefined 3650 FAIL undefinedelement.inputMode: setAttribute() to "TEL" assert_equals: IDL get expected (string) "tel" but got (undefined) undefined 3651 FAIL undefinedelement.inputMode: setAttribute() to "url" assert_equals: IDL get expected (string) "url" but got (undefined) undefined 3652 FAIL undefinedelement.inputMode: setAttribute() to "xurl" assert_equals: IDL get expected (string) "" but got (undefined) undefined 3653 FAIL undefinedelement.inputMode: setAttribute() to "url\0" assert_equals: IDL get expected (string) "" but got (undefined) undefined 3654 FAIL undefinedelement.inputMode: setAttribute() to "rl" assert_equals: IDL get expected (string) "" but got (undefined) undefined 3655 FAIL undefinedelement.inputMode: setAttribute() to "URL" assert_equals: IDL get expected (string) "url" but got (undefined) undefined 3656 FAIL undefinedelement.inputMode: setAttribute() to "email" assert_equals: IDL get expected (string) "email" but got (undefined) undefined 3657 FAIL undefinedelement.inputMode: setAttribute() to "xemail" assert_equals: IDL get expected (string) "" but got (undefined) undefined 3658 FAIL undefinedelement.inputMode: setAttribute() to "email\0" assert_equals: IDL get expected (string) "" but got (undefined) undefined 3659 FAIL undefinedelement.inputMode: setAttribute() to "mail" assert_equals: IDL get expected (string) "" but got (undefined) undefined 3660 FAIL undefinedelement.inputMode: setAttribute() to "EMAIL" assert_equals: IDL get expected (string) "email" but got (undefined) undefined 3661 FAIL undefinedelement.inputMode: setAttribute() to "numeric" assert_equals: IDL get expected (string) "numeric" but got (undefined) undefined 3662 FAIL undefinedelement.inputMode: setAttribute() to "xnumeric" assert_equals: IDL get expected (string) "" but got (undefined) undefined 3663 FAIL undefinedelement.inputMode: setAttribute() to "numeric\0" assert_equals: IDL get expected (string) "" but got (undefined) undefined 3664 FAIL undefinedelement.inputMode: setAttribute() to "umeric" assert_equals: IDL get expected (string) "" but got (undefined) undefined 3665 FAIL undefinedelement.inputMode: setAttribute() to "NUMERIC" assert_equals: IDL get expected (string) "numeric" but got (undefined) undefined 3666 FAIL undefinedelement.inputMode: setAttribute() to "decimal" assert_equals: IDL get expected (string) "decimal" but got (undefined) undefined 3667 FAIL undefinedelement.inputMode: setAttribute() to "xdecimal" assert_equals: IDL get expected (string) "" but got (undefined) undefined 3668 FAIL undefinedelement.inputMode: setAttribute() to "decimal\0" assert_equals: IDL get expected (string) "" but got (undefined) undefined 3669 FAIL undefinedelement.inputMode: setAttribute() to "ecimal" assert_equals: IDL get expected (string) "" but got (undefined) undefined 3670 FAIL undefinedelement.inputMode: setAttribute() to "DECIMAL" assert_equals: IDL get expected (string) "decimal" but got (undefined) undefined 3671 FAIL undefinedelement.inputMode: setAttribute() to "search" assert_equals: IDL get expected (string) "search" but got (undefined) undefined 3672 FAIL undefinedelement.inputMode: setAttribute() to "xsearch" assert_equals: IDL get expected (string) "" but got (undefined) undefined 3673 FAIL undefinedelement.inputMode: setAttribute() to "search\0" assert_equals: IDL get expected (string) "" but got (undefined) undefined 3674 FAIL undefinedelement.inputMode: setAttribute() to "earch" assert_equals: IDL get expected (string) "" but got (undefined) undefined 3675 FAIL undefinedelement.inputMode: setAttribute() to "SEARCH" assert_equals: IDL get expected (string) "search" but got (undefined) undefined 3676 FAIL undefinedelement.inputMode: IDL set to "" assert_equals: getAttribute() expected "" but got "SEARCH" 3677 FAIL undefinedelement.inputMode: IDL set to " \0\x01\x02\x03\x04\x05\x06\x07 \b\t\n\v\f\r\x0e\x0f \x10\x11\x12\x13\x14\x15\x16\x17 \x18\x19\x1a\x1b\x1c\x1d\x1e\x1f foo " assert_equals: getAttribute() expected " \0\x01\x02\x03\x04\x05\x06\x07 \b\t\n\v\f\r\x0e\x0f \x10\x11\x12\x13\x14\x15\x16\x17 \x18\x19\x1a\x1b\x1c\x1d\x1e\x1f foo " but got "SEARCH" 3678 FAIL undefinedelement.inputMode: IDL set to undefined assert_equals: getAttribute() expected "undefined" but got "SEARCH" 3679 FAIL undefinedelement.inputMode: IDL set to 7 assert_equals: getAttribute() expected "7" but got "SEARCH" 3680 FAIL undefinedelement.inputMode: IDL set to 1.5 assert_equals: getAttribute() expected "1.5" but got "SEARCH" 3681 FAIL undefinedelement.inputMode: IDL set to true assert_equals: getAttribute() expected "true" but got "SEARCH" 3682 FAIL undefinedelement.inputMode: IDL set to false assert_equals: getAttribute() expected "false" but got "SEARCH" 3683 FAIL undefinedelement.inputMode: IDL set to object "[object Object]" assert_equals: getAttribute() expected "[object Object]" but got "SEARCH" 3684 FAIL undefinedelement.inputMode: IDL set to NaN assert_equals: getAttribute() expected "NaN" but got "SEARCH" 3685 FAIL undefinedelement.inputMode: IDL set to Infinity assert_equals: getAttribute() expected "Infinity" but got "SEARCH" 3686 FAIL undefinedelement.inputMode: IDL set to -Infinity assert_equals: getAttribute() expected "-Infinity" but got "SEARCH" 3687 FAIL undefinedelement.inputMode: IDL set to "\0" assert_equals: getAttribute() expected "\0" but got "SEARCH" 3688 FAIL undefinedelement.inputMode: IDL set to null assert_equals: IDL get expected (string) "" but got (object) null 3689 FAIL undefinedelement.inputMode: IDL set to object "test-toString" assert_equals: getAttribute() expected "test-toString" but got "SEARCH" 3690 FAIL undefinedelement.inputMode: IDL set to object "test-valueOf" assert_equals: getAttribute() expected "test-valueOf" but got "SEARCH" 3691 FAIL undefinedelement.inputMode: IDL set to "none" assert_equals: getAttribute() expected "none" but got "SEARCH"3692 FAIL undefinedelement.inputMode: IDL set to "xnone" assert_equals: getAttribute() expected "xnone" but got "SEARCH" 3693 FAIL undefinedelement.inputMode: IDL set to "none\0" assert_equals: getAttribute() expected "none\0" but got "SEARCH" 3694 FAIL undefinedelement.inputMode: IDL set to "one" assert_equals: getAttribute() expected "one" but got "SEARCH" 3695 FAIL undefinedelement.inputMode: IDL set to "NONE" assert_equals: getAttribute() expected "NONE" but got "SEARCH"3696 FAIL undefinedelement.inputMode: IDL set to "text" assert_equals: getAttribute() expected "text" but got "SEARCH" 3697 FAIL undefinedelement.inputMode: IDL set to "xtext" assert_equals: getAttribute() expected "xtext" but got "SEARCH" 3698 FAIL undefinedelement.inputMode: IDL set to "text\0" assert_equals: getAttribute() expected "text\0" but got "SEARCH" 3699 FAIL undefinedelement.inputMode: IDL set to "ext" assert_equals: getAttribute() expected "ext" but got "SEARCH" 3700 FAIL undefinedelement.inputMode: IDL set to "TEXT" assert_equals: getAttribute() expected "TEXT" but got "SEARCH" 3701 FAIL undefinedelement.inputMode: IDL set to "tel" assert_equals: getAttribute() expected "tel" but got "SEARCH" 3702 FAIL undefinedelement.inputMode: IDL set to "xtel" assert_equals: getAttribute() expected "xtel" but got "SEARCH" 3703 FAIL undefinedelement.inputMode: IDL set to "tel\0" assert_equals: getAttribute() expected "tel\0" but got "SEARCH" 3704 FAIL undefinedelement.inputMode: IDL set to "el" assert_equals: getAttribute() expected "el" but got "SEARCH" 3705 FAIL undefinedelement.inputMode: IDL set to "TEL" assert_equals: getAttribute() expected "TEL" but got "SEARCH" 3706 FAIL undefinedelement.inputMode: IDL set to "url" assert_equals: getAttribute() expected "url" but got "SEARCH" 3707 FAIL undefinedelement.inputMode: IDL set to "xurl" assert_equals: getAttribute() expected "xurl" but got "SEARCH" 3708 FAIL undefinedelement.inputMode: IDL set to "url\0" assert_equals: getAttribute() expected "url\0" but got "SEARCH" 3709 FAIL undefinedelement.inputMode: IDL set to "rl" assert_equals: getAttribute() expected "rl" but got "SEARCH" 3710 FAIL undefinedelement.inputMode: IDL set to "URL" assert_equals: getAttribute() expected "URL" but got "SEARCH" 3711 FAIL undefinedelement.inputMode: IDL set to "email" assert_equals: getAttribute() expected "email" but got "SEARCH" 3712 FAIL undefinedelement.inputMode: IDL set to "xemail" assert_equals: getAttribute() expected "xemail" but got "SEARCH" 3713 FAIL undefinedelement.inputMode: IDL set to "email\0" assert_equals: getAttribute() expected "email\0" but got "SEARCH" 3714 FAIL undefinedelement.inputMode: IDL set to "mail" assert_equals: getAttribute() expected "mail" but got "SEARCH" 3715 FAIL undefinedelement.inputMode: IDL set to "EMAIL" assert_equals: getAttribute() expected "EMAIL" but got "SEARCH" 3716 FAIL undefinedelement.inputMode: IDL set to "numeric" assert_equals: getAttribute() expected "numeric" but got "SEARCH" 3717 FAIL undefinedelement.inputMode: IDL set to "xnumeric" assert_equals: getAttribute() expected "xnumeric" but got "SEARCH" 3718 FAIL undefinedelement.inputMode: IDL set to "numeric\0" assert_equals: getAttribute() expected "numeric\0" but got "SEARCH" 3719 FAIL undefinedelement.inputMode: IDL set to "umeric" assert_equals: getAttribute() expected "umeric" but got "SEARCH" 3720 FAIL undefinedelement.inputMode: IDL set to "NUMERIC" assert_equals: getAttribute() expected "NUMERIC" but got "SEARCH" 3721 FAIL undefinedelement.inputMode: IDL set to "decimal" assert_equals: getAttribute() expected "decimal" but got "SEARCH" 3722 FAIL undefinedelement.inputMode: IDL set to "xdecimal" assert_equals: getAttribute() expected "xdecimal" but got "SEARCH" 3723 FAIL undefinedelement.inputMode: IDL set to "decimal\0" assert_equals: getAttribute() expected "decimal\0" but got "SEARCH" 3724 FAIL undefinedelement.inputMode: IDL set to "ecimal" assert_equals: getAttribute() expected "ecimal" but got "SEARCH" 3725 FAIL undefinedelement.inputMode: IDL set to "DECIMAL" assert_equals: getAttribute() expected "DECIMAL" but got "SEARCH" 3726 FAIL undefinedelement.inputMode: IDL set to "search" assert_equals: getAttribute() expected "search" but got "SEARCH" 3727 FAIL undefinedelement.inputMode: IDL set to "xsearch" assert_equals: getAttribute() expected "xsearch" but got "SEARCH" 3728 FAIL undefinedelement.inputMode: IDL set to "search\0" assert_equals: getAttribute() expected "search\0" but got "SEARCH" 3729 FAIL undefinedelement.inputMode: IDL set to "earch" assert_equals: getAttribute() expected "earch" but got "SEARCH" 3730 FAIL undefinedelement.inputMode: IDL set to "SEARCH" assert_equals: IDL get expected "search" but got "SEARCH" 3619 PASS undefinedelement.inputMode: typeof IDL attribute 3620 PASS undefinedelement.inputMode: IDL get with DOM attribute unset 3621 PASS undefinedelement.inputMode: setAttribute() to "" 3622 PASS undefinedelement.inputMode: setAttribute() to " \0\x01\x02\x03\x04\x05\x06\x07 \b\t\n\v\f\r\x0e\x0f \x10\x11\x12\x13\x14\x15\x16\x17 \x18\x19\x1a\x1b\x1c\x1d\x1e\x1f foo " 3623 PASS undefinedelement.inputMode: setAttribute() to undefined 3624 PASS undefinedelement.inputMode: setAttribute() to 7 3625 PASS undefinedelement.inputMode: setAttribute() to 1.5 3626 PASS undefinedelement.inputMode: setAttribute() to true 3627 PASS undefinedelement.inputMode: setAttribute() to false 3628 PASS undefinedelement.inputMode: setAttribute() to object "[object Object]" 3629 PASS undefinedelement.inputMode: setAttribute() to NaN 3630 PASS undefinedelement.inputMode: setAttribute() to Infinity 3631 PASS undefinedelement.inputMode: setAttribute() to -Infinity 3632 PASS undefinedelement.inputMode: setAttribute() to "\0" 3633 PASS undefinedelement.inputMode: setAttribute() to null 3634 PASS undefinedelement.inputMode: setAttribute() to object "test-toString" 3635 PASS undefinedelement.inputMode: setAttribute() to object "test-valueOf" 3636 FAIL undefinedelement.inputMode: setAttribute() to "none" assert_equals: IDL get expected "none" but got "" 3637 PASS undefinedelement.inputMode: setAttribute() to "xnone" 3638 PASS undefinedelement.inputMode: setAttribute() to "none\0" 3639 PASS undefinedelement.inputMode: setAttribute() to "one" 3640 FAIL undefinedelement.inputMode: setAttribute() to "NONE" assert_equals: IDL get expected "none" but got "" 3641 PASS undefinedelement.inputMode: setAttribute() to "text" 3642 PASS undefinedelement.inputMode: setAttribute() to "xtext" 3643 PASS undefinedelement.inputMode: setAttribute() to "text\0" 3644 PASS undefinedelement.inputMode: setAttribute() to "ext" 3645 PASS undefinedelement.inputMode: setAttribute() to "TEXT" 3646 PASS undefinedelement.inputMode: setAttribute() to "tel" 3647 PASS undefinedelement.inputMode: setAttribute() to "xtel" 3648 PASS undefinedelement.inputMode: setAttribute() to "tel\0" 3649 PASS undefinedelement.inputMode: setAttribute() to "el" 3650 PASS undefinedelement.inputMode: setAttribute() to "TEL" 3651 PASS undefinedelement.inputMode: setAttribute() to "url" 3652 PASS undefinedelement.inputMode: setAttribute() to "xurl" 3653 PASS undefinedelement.inputMode: setAttribute() to "url\0" 3654 PASS undefinedelement.inputMode: setAttribute() to "rl" 3655 PASS undefinedelement.inputMode: setAttribute() to "URL" 3656 PASS undefinedelement.inputMode: setAttribute() to "email" 3657 PASS undefinedelement.inputMode: setAttribute() to "xemail" 3658 PASS undefinedelement.inputMode: setAttribute() to "email\0" 3659 PASS undefinedelement.inputMode: setAttribute() to "mail" 3660 PASS undefinedelement.inputMode: setAttribute() to "EMAIL" 3661 PASS undefinedelement.inputMode: setAttribute() to "numeric" 3662 PASS undefinedelement.inputMode: setAttribute() to "xnumeric" 3663 PASS undefinedelement.inputMode: setAttribute() to "numeric\0" 3664 PASS undefinedelement.inputMode: setAttribute() to "umeric" 3665 PASS undefinedelement.inputMode: setAttribute() to "NUMERIC" 3666 PASS undefinedelement.inputMode: setAttribute() to "decimal" 3667 PASS undefinedelement.inputMode: setAttribute() to "xdecimal" 3668 PASS undefinedelement.inputMode: setAttribute() to "decimal\0" 3669 PASS undefinedelement.inputMode: setAttribute() to "ecimal" 3670 PASS undefinedelement.inputMode: setAttribute() to "DECIMAL" 3671 PASS undefinedelement.inputMode: setAttribute() to "search" 3672 PASS undefinedelement.inputMode: setAttribute() to "xsearch" 3673 PASS undefinedelement.inputMode: setAttribute() to "search\0" 3674 PASS undefinedelement.inputMode: setAttribute() to "earch" 3675 PASS undefinedelement.inputMode: setAttribute() to "SEARCH" 3676 PASS undefinedelement.inputMode: IDL set to "" 3677 PASS undefinedelement.inputMode: IDL set to " \0\x01\x02\x03\x04\x05\x06\x07 \b\t\n\v\f\r\x0e\x0f \x10\x11\x12\x13\x14\x15\x16\x17 \x18\x19\x1a\x1b\x1c\x1d\x1e\x1f foo " 3678 PASS undefinedelement.inputMode: IDL set to undefined 3679 PASS undefinedelement.inputMode: IDL set to 7 3680 PASS undefinedelement.inputMode: IDL set to 1.5 3681 PASS undefinedelement.inputMode: IDL set to true 3682 PASS undefinedelement.inputMode: IDL set to false 3683 PASS undefinedelement.inputMode: IDL set to object "[object Object]" 3684 PASS undefinedelement.inputMode: IDL set to NaN 3685 PASS undefinedelement.inputMode: IDL set to Infinity 3686 PASS undefinedelement.inputMode: IDL set to -Infinity 3687 PASS undefinedelement.inputMode: IDL set to "\0" 3688 PASS undefinedelement.inputMode: IDL set to null 3689 PASS undefinedelement.inputMode: IDL set to object "test-toString" 3690 PASS undefinedelement.inputMode: IDL set to object "test-valueOf" 3691 FAIL undefinedelement.inputMode: IDL set to "none" assert_equals: IDL get expected "none" but got "" 3692 PASS undefinedelement.inputMode: IDL set to "xnone" 3693 PASS undefinedelement.inputMode: IDL set to "none\0" 3694 PASS undefinedelement.inputMode: IDL set to "one" 3695 FAIL undefinedelement.inputMode: IDL set to "NONE" assert_equals: IDL get expected "none" but got "" 3696 PASS undefinedelement.inputMode: IDL set to "text" 3697 PASS undefinedelement.inputMode: IDL set to "xtext" 3698 PASS undefinedelement.inputMode: IDL set to "text\0" 3699 PASS undefinedelement.inputMode: IDL set to "ext" 3700 PASS undefinedelement.inputMode: IDL set to "TEXT" 3701 PASS undefinedelement.inputMode: IDL set to "tel" 3702 PASS undefinedelement.inputMode: IDL set to "xtel" 3703 PASS undefinedelement.inputMode: IDL set to "tel\0" 3704 PASS undefinedelement.inputMode: IDL set to "el" 3705 PASS undefinedelement.inputMode: IDL set to "TEL" 3706 PASS undefinedelement.inputMode: IDL set to "url" 3707 PASS undefinedelement.inputMode: IDL set to "xurl" 3708 PASS undefinedelement.inputMode: IDL set to "url\0" 3709 PASS undefinedelement.inputMode: IDL set to "rl" 3710 PASS undefinedelement.inputMode: IDL set to "URL" 3711 PASS undefinedelement.inputMode: IDL set to "email" 3712 PASS undefinedelement.inputMode: IDL set to "xemail" 3713 PASS undefinedelement.inputMode: IDL set to "email\0" 3714 PASS undefinedelement.inputMode: IDL set to "mail" 3715 PASS undefinedelement.inputMode: IDL set to "EMAIL" 3716 PASS undefinedelement.inputMode: IDL set to "numeric" 3717 PASS undefinedelement.inputMode: IDL set to "xnumeric" 3718 PASS undefinedelement.inputMode: IDL set to "numeric\0" 3719 PASS undefinedelement.inputMode: IDL set to "umeric" 3720 PASS undefinedelement.inputMode: IDL set to "NUMERIC" 3721 PASS undefinedelement.inputMode: IDL set to "decimal" 3722 PASS undefinedelement.inputMode: IDL set to "xdecimal" 3723 PASS undefinedelement.inputMode: IDL set to "decimal\0" 3724 PASS undefinedelement.inputMode: IDL set to "ecimal" 3725 PASS undefinedelement.inputMode: IDL set to "DECIMAL" 3726 PASS undefinedelement.inputMode: IDL set to "search" 3727 PASS undefinedelement.inputMode: IDL set to "xsearch" 3728 PASS undefinedelement.inputMode: IDL set to "search\0" 3729 PASS undefinedelement.inputMode: IDL set to "earch" 3730 PASS undefinedelement.inputMode: IDL set to "SEARCH" 3731 3731 (Note: missing tests for types tokenlist.) -
trunk/LayoutTests/js/dom/dom-static-property-for-in-iteration-expected.txt
r229818 r235245 52 52 PASS a["outerText"] is nerget 53 53 PASS a["webkitdropzone"] is 54 PASS a["inputMode"] is 54 55 PASS a["style"] is [object CSSStyleDeclaration] 55 56 PASS a["onabort"] is null -
trunk/Source/WebCore/ChangeLog
r235233 r235245 1 2018-08-23 Aditya Keerthi <akeerthi@apple.com> 2 3 [iOS] Support the inputmode attribute on contenteditable elements 4 https://bugs.webkit.org/show_bug.cgi?id=188878 5 6 Reviewed by Ryosuke Niwa. 7 8 The inputmode attribute should apply to contenteditable elements, in addition to 9 textfield inputs and textareas. 10 11 Moved the inputmode attribute from HTMLInputElement.idl and 12 HTMLTextAreaElement.idl to HTMLElement.idl to reflect the specification. 13 14 Also moved all logic to convert between the InputMode enum and string values 15 into InputMode.cpp to avoid exposing unnecessary details to WebKit. Furthermore, 16 InputMode::Auto was renamed to InputMode::Unspecified to avoid confusion with the 17 specification. 18 19 Spec: https://html.spec.whatwg.org/multipage/interaction.html#input-modalities:-the-inputmode-attribute 20 21 Tests: fast/forms/inputmode-attribute-contenteditable.html 22 fast/forms/inputmode-attribute-input.html 23 fast/forms/inputmode-attribute-textarea.html 24 25 * Sources.txt: 26 * WebCore.xcodeproj/project.pbxproj: 27 * html/HTMLElement.cpp: 28 (WebCore::HTMLElement::canonicalInputMode const): 29 (WebCore::HTMLElement::inputMode const): 30 (WebCore::HTMLElement::setInputMode): 31 * html/HTMLElement.h: 32 * html/HTMLElement.idl: 33 * html/HTMLInputElement.idl: 34 * html/HTMLTextAreaElement.idl: 35 * html/HTMLTextFormControlElement.cpp: 36 * html/HTMLTextFormControlElement.h: 37 * html/InputMode.cpp: Renamed from Source/WebCore/html/InputModeNames.cpp. 38 (WebCore::inputModeForAttributeValue): 39 (WebCore::stringForInputMode): 40 * html/InputMode.h: Renamed from Source/WebCore/html/InputModeNames.h. 41 1 42 2018-08-23 Eric Carlson <eric.carlson@apple.com> 2 43 -
trunk/Source/WebCore/Sources.txt
r235223 r235245 1057 1057 html/ImageDocument.cpp 1058 1058 html/ImageInputType.cpp 1059 html/InputMode Names.cpp1059 html/InputMode.cpp 1060 1060 html/InputType.cpp 1061 1061 html/InputTypeNames.cpp -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r235230 r235245 4793 4793 E52CF54D20A268AC00DADA27 /* DataListSuggestionsClient.h in Headers */ = {isa = PBXBuildFile; fileRef = E52CF54C20A268AC00DADA27 /* DataListSuggestionsClient.h */; settings = {ATTRIBUTES = (Private, ); }; }; 4794 4794 E52CF54F20A35A2800DADA27 /* DataListSuggestionPicker.h in Headers */ = {isa = PBXBuildFile; fileRef = E52CF54E20A35A2800DADA27 /* DataListSuggestionPicker.h */; settings = {ATTRIBUTES = (Private, ); }; }; 4795 E52EFDF42112875A00AD282A /* InputMode Names.h in Headers */ = {isa = PBXBuildFile; fileRef = E52EFDF22112875A00AD282A /* InputModeNames.h */; settings = {ATTRIBUTES = (Private, ); }; };4795 E52EFDF42112875A00AD282A /* InputMode.h in Headers */ = {isa = PBXBuildFile; fileRef = E52EFDF22112875A00AD282A /* InputMode.h */; settings = {ATTRIBUTES = (Private, ); }; }; 4796 4796 E58B45BA20AD07DD00991025 /* DataListButtonElement.h in Headers */ = {isa = PBXBuildFile; fileRef = E58B45B820AD07DD00991025 /* DataListButtonElement.h */; }; 4797 4797 E58B45BB20AD07DD00991025 /* DataListButtonElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E58B45B920AD07DD00991025 /* DataListButtonElement.cpp */; }; … … 14441 14441 E52CF54C20A268AC00DADA27 /* DataListSuggestionsClient.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DataListSuggestionsClient.h; sourceTree = "<group>"; }; 14442 14442 E52CF54E20A35A2800DADA27 /* DataListSuggestionPicker.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DataListSuggestionPicker.h; sourceTree = "<group>"; }; 14443 E52EFDF22112875A00AD282A /* InputMode Names.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InputModeNames.h; sourceTree = "<group>"; };14444 E52EFDF32112875A00AD282A /* InputMode Names.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = InputModeNames.cpp; sourceTree = "<group>"; };14443 E52EFDF22112875A00AD282A /* InputMode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InputMode.h; sourceTree = "<group>"; }; 14444 E52EFDF32112875A00AD282A /* InputMode.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = InputMode.cpp; sourceTree = "<group>"; }; 14445 14445 E55F4979151B888000BB67DB /* LengthFunctions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LengthFunctions.cpp; sourceTree = "<group>"; }; 14446 14446 E58B45B820AD07DD00991025 /* DataListButtonElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DataListButtonElement.h; sourceTree = "<group>"; }; … … 20645 20645 F55B3D8D1251F12D003EF269 /* ImageInputType.cpp */, 20646 20646 F55B3D8E1251F12D003EF269 /* ImageInputType.h */, 20647 E52EFDF32112875A00AD282A /* InputMode Names.cpp */,20648 E52EFDF22112875A00AD282A /* InputMode Names.h */,20647 E52EFDF32112875A00AD282A /* InputMode.cpp */, 20648 E52EFDF22112875A00AD282A /* InputMode.h */, 20649 20649 37E3524A12450C5200BAF5D9 /* InputType.cpp */, 20650 20650 37E3524C12450C6600BAF5D9 /* InputType.h */, … … 28279 28279 510A58E51BAA40B100C19282 /* InProcessIDBServer.h in Headers */, 28280 28280 2EB767571DA19BDF003E23B5 /* InputEvent.h in Headers */, 28281 E52EFDF42112875A00AD282A /* InputMode Names.h in Headers */,28281 E52EFDF42112875A00AD282A /* InputMode.h in Headers */, 28282 28282 37E3524D12450C6600BAF5D9 /* InputType.h in Headers */, 28283 28283 C348612415FDE21E007A1CC9 /* InputTypeNames.h in Headers */, -
trunk/Source/WebCore/html/HTMLElement.cpp
r234808 r235245 1087 1087 #endif 1088 1088 1089 InputMode HTMLElement::canonicalInputMode() const 1090 { 1091 return inputModeForAttributeValue(attributeWithoutSynchronization(inputmodeAttr)); 1092 } 1093 1094 const AtomicString& HTMLElement::inputMode() const 1095 { 1096 return stringForInputMode(canonicalInputMode()); 1097 } 1098 1099 void HTMLElement::setInputMode(const AtomicString& value) 1100 { 1101 setAttributeWithoutSynchronization(inputmodeAttr, value); 1102 } 1103 1089 1104 } // namespace WebCore 1090 1105 -
trunk/Source/WebCore/html/HTMLElement.h
r229694 r235245 27 27 #endif 28 28 29 #include "InputMode.h" 29 30 #include "StyledElement.h" 30 31 … … 108 109 #endif 109 110 111 WEBCORE_EXPORT InputMode canonicalInputMode() const; 112 const AtomicString& inputMode() const; 113 void setInputMode(const AtomicString& value); 114 110 115 protected: 111 116 HTMLElement(const QualifiedName& tagName, Document&, ConstructionType); -
trunk/Source/WebCore/html/HTMLElement.idl
r222429 r235245 68 68 // FIXME: We are the only browser to support this now that Blink dropped it (http://crbug.com/688943). 69 69 [CEReactions, Reflect] attribute DOMString webkitdropzone; 70 71 attribute DOMString inputMode; 70 72 }; 71 73 -
trunk/Source/WebCore/html/HTMLInputElement.idl
r235201 r235245 43 43 attribute unsigned long height; 44 44 attribute boolean indeterminate; 45 attribute DOMString inputMode;46 45 [Conditional=DATALIST_ELEMENT] readonly attribute HTMLElement list; 47 46 [Reflect] attribute DOMString max; -
trunk/Source/WebCore/html/HTMLTextAreaElement.idl
r235201 r235245 60 60 61 61 attribute DOMString autocomplete; 62 attribute DOMString inputMode;63 62 }; -
trunk/Source/WebCore/html/HTMLTextFormControlElement.cpp
r235201 r235245 40 40 #include "HTMLNames.h" 41 41 #include "HTMLParserIdioms.h" 42 #include "InputModeNames.h"43 42 #include "LayoutDisallowedScope.h" 44 43 #include "Logging.h" … … 675 674 } 676 675 #endif 677 678 String HTMLTextFormControlElement::inputMode() const679 {680 const AtomicString& inputMode = attributeWithoutSynchronization(inputmodeAttr);681 if (equalIgnoringASCIICase(inputMode, InputModeNames::text()))682 return InputModeNames::text();683 if (equalIgnoringASCIICase(inputMode, InputModeNames::tel()))684 return InputModeNames::tel();685 if (equalIgnoringASCIICase(inputMode, InputModeNames::url()))686 return InputModeNames::url();687 if (equalIgnoringASCIICase(inputMode, InputModeNames::email()))688 return InputModeNames::email();689 if (equalIgnoringASCIICase(inputMode, InputModeNames::numeric()))690 return InputModeNames::numeric();691 if (equalIgnoringASCIICase(inputMode, InputModeNames::decimal()))692 return InputModeNames::decimal();693 if (equalIgnoringASCIICase(inputMode, InputModeNames::search()))694 return InputModeNames::search();695 696 return emptyString();697 }698 699 void HTMLTextFormControlElement::setInputMode(const String& value)700 {701 setAttributeWithoutSynchronization(inputmodeAttr, value);702 }703 676 704 677 static void getNextSoftBreak(RootInlineBox*& line, Node*& breakNode, unsigned& breakOffset) -
trunk/Source/WebCore/html/HTMLTextFormControlElement.h
r235201 r235245 99 99 #endif 100 100 101 WEBCORE_EXPORT String inputMode() const;102 void setInputMode(const String&);103 104 101 protected: 105 102 HTMLTextFormControlElement(const QualifiedName&, Document&, HTMLFormElement*); -
trunk/Source/WebCore/html/InputMode.cpp
r235243 r235245 25 25 26 26 #include "config.h" 27 #include "InputMode Names.h"27 #include "InputMode.h" 28 28 29 29 #include <wtf/NeverDestroyed.h> 30 30 31 31 namespace WebCore { 32 33 InputMode inputModeForAttributeValue(const AtomicString& value) 34 { 35 if (equalIgnoringASCIICase(value, InputModeNames::text())) 36 return InputMode::Text; 37 if (equalIgnoringASCIICase(value, InputModeNames::tel())) 38 return InputMode::Telephone; 39 if (equalIgnoringASCIICase(value, InputModeNames::url())) 40 return InputMode::Url; 41 if (equalIgnoringASCIICase(value, InputModeNames::email())) 42 return InputMode::Email; 43 if (equalIgnoringASCIICase(value, InputModeNames::numeric())) 44 return InputMode::Numeric; 45 if (equalIgnoringASCIICase(value, InputModeNames::decimal())) 46 return InputMode::Decimal; 47 if (equalIgnoringASCIICase(value, InputModeNames::search())) 48 return InputMode::Search; 49 50 return InputMode::Unspecified; 51 } 52 53 const AtomicString& stringForInputMode(InputMode mode) 54 { 55 switch (mode) { 56 case InputMode::Unspecified: 57 return emptyAtom(); 58 case InputMode::Text: 59 return InputModeNames::text(); 60 case InputMode::Telephone: 61 return InputModeNames::tel(); 62 case InputMode::Url: 63 return InputModeNames::url(); 64 case InputMode::Email: 65 return InputModeNames::email(); 66 case InputMode::Numeric: 67 return InputModeNames::numeric(); 68 case InputMode::Decimal: 69 return InputModeNames::decimal(); 70 case InputMode::Search: 71 return InputModeNames::search(); 72 } 73 } 32 74 33 75 namespace InputModeNames { -
trunk/Source/WebCore/html/InputMode.h
r235243 r235245 30 30 namespace WebCore { 31 31 32 enum class InputMode : uint8_t { 33 Unspecified, 34 Text, 35 Telephone, 36 Url, 37 Email, 38 Numeric, 39 Decimal, 40 Search 41 }; 42 43 InputMode inputModeForAttributeValue(const AtomicString&); 44 const AtomicString& stringForInputMode(InputMode); 45 32 46 namespace InputModeNames { 33 47 34 WEBCORE_EXPORTconst AtomicString& text();35 WEBCORE_EXPORTconst AtomicString& tel();36 WEBCORE_EXPORTconst AtomicString& url();37 WEBCORE_EXPORTconst AtomicString& email();38 WEBCORE_EXPORTconst AtomicString& numeric();39 WEBCORE_EXPORTconst AtomicString& decimal();40 WEBCORE_EXPORTconst AtomicString& search();48 const AtomicString& text(); 49 const AtomicString& tel(); 50 const AtomicString& url(); 51 const AtomicString& email(); 52 const AtomicString& numeric(); 53 const AtomicString& decimal(); 54 const AtomicString& search(); 41 55 42 56 } // namespace InputModeNames -
trunk/Source/WebKit/ChangeLog
r235243 r235245 1 2018-08-23 Aditya Keerthi <akeerthi@apple.com> 2 3 [iOS] Support the inputmode attribute on contenteditable elements 4 https://bugs.webkit.org/show_bug.cgi?id=188878 5 6 Reviewed by Ryosuke Niwa. 7 8 Ensured that the assistedNodeInformation for a contenteditable element reflects 9 the value of the element's inputmode attribute. 10 11 Moved logic to obtain the InputMode from the attribute value into WebCore. 12 13 * Shared/AssistedNodeInformation.h: 14 * UIProcess/ios/WKContentViewInteraction.mm: 15 * WebProcess/WebPage/ios/WebPageIOS.mm: 16 (WebKit::WebPage::getAssistedNodeInformation): 17 1 18 2018-08-22 Ryosuke Niwa <rniwa@webkit.org> 2 19 -
trunk/Source/WebKit/Shared/AssistedNodeInformation.h
r235201 r235245 30 30 #include <WebCore/Autofill.h> 31 31 #include <WebCore/Color.h> 32 #include <WebCore/InputMode.h> 32 33 #include <WebCore/IntRect.h> 33 34 #include <WebCore/URL.h> … … 58 59 Color 59 60 #endif 60 };61 62 enum class InputMode : uint8_t {63 Auto,64 Text,65 Telephone,66 Url,67 Email,68 Numeric,69 Decimal,70 Search71 61 }; 72 62 … … 122 112 AutocapitalizeType autocapitalizeType { AutocapitalizeTypeDefault }; 123 113 InputType elementType { InputType::None }; 124 InputMode inputMode { InputMode::Auto};114 WebCore::InputMode inputMode { WebCore::InputMode::Unspecified }; 125 115 String formAction; 126 116 Vector<OptionItem> selectOptions; -
trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm
r235201 r235245 76 76 #import <WebCore/DataDetection.h> 77 77 #import <WebCore/FloatQuad.h> 78 #import <WebCore/InputMode.h> 78 79 #import <WebCore/LocalizedStrings.h> 79 80 #import <WebCore/NotImplemented.h> … … 3549 3550 3550 3551 switch (_assistedNodeInformation.inputMode) { 3551 case InputMode:: Auto:3552 case InputMode::Unspecified: 3552 3553 switch (_assistedNodeInformation.elementType) { 3553 3554 case InputType::Phone: -
trunk/Source/WebKit/WebProcess/WebPage/ios/WebPageIOS.mm
r235205 r235245 88 88 #import <WebCore/HistoryItem.h> 89 89 #import <WebCore/HitTestResult.h> 90 #import <WebCore/InputMode Names.h>90 #import <WebCore/InputMode.h> 91 91 #import <WebCore/KeyboardEvent.h> 92 92 #import <WebCore/LibWebRTCProvider.h> … … 2315 2315 } 2316 2316 2317 static InputMode inputModeForAssistedNode(const Node& node)2318 {2319 const AtomicString& inputMode = downcast<HTMLTextFormControlElement>(node).inputMode();2320 if (inputMode == InputModeNames::text())2321 return InputMode::Text;2322 if (inputMode == InputModeNames::tel())2323 return InputMode::Telephone;2324 if (inputMode == InputModeNames::url())2325 return InputMode::Url;2326 if (inputMode == InputModeNames::email())2327 return InputMode::Email;2328 if (inputMode == InputModeNames::numeric())2329 return InputMode::Numeric;2330 if (inputMode == InputModeNames::decimal())2331 return InputMode::Decimal;2332 if (inputMode == InputModeNames::search())2333 return InputMode::Search;2334 2335 return InputMode::Auto;2336 }2337 2338 2317 void WebPage::getAssistedNodeInformation(AssistedNodeInformation& information) 2339 2318 { … … 2441 2420 information.autofillFieldName = WebCore::toAutofillFieldName(element.autofillData().fieldName); 2442 2421 information.placeholder = element.attributeWithoutSynchronization(HTMLNames::placeholderAttr); 2443 information.inputMode = inputModeForAssistedNode(element);2422 information.inputMode = element.canonicalInputMode(); 2444 2423 } else if (is<HTMLInputElement>(*m_assistedNode)) { 2445 2424 HTMLInputElement& element = downcast<HTMLInputElement>(*m_assistedNode); … … 2499 2478 #endif 2500 2479 2501 information.inputMode = inputModeForAssistedNode(element);2480 information.inputMode = element.canonicalInputMode(); 2502 2481 information.isReadOnly = element.isReadOnly(); 2503 2482 information.value = element.value(); … … 2510 2489 information.isAutocorrect = assistedElement.shouldAutocorrect(); 2511 2490 information.autocapitalizeType = assistedElement.autocapitalizeType(); 2491 information.inputMode = assistedElement.canonicalInputMode(); 2512 2492 } else { 2513 2493 information.isAutocorrect = true;
Note: See TracChangeset
for help on using the changeset viewer.