Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 6307bfc19c3c851e7111b98b858683697b96e37b
https://github.com/WebKit/WebKit/commit/6307bfc19c3c851e7111b98b858683697b96e37b
Author: Alejandro G. Castro <[email protected]>
Date: 2026-09-11 (Fri, 11 Sep 2026)
Changed paths:
M Source/WebKit/UIProcess/Automation/libwpe/WebAutomationSessionWPE.cpp
M WebDriverTests/TestExpectations.json
Log Message:
-----------
[WPE] WebDriver cannot type shifted or unmapped characters
https://bugs.webkit.org/show_bug.cgi?id=323765
Reviewed by Carlos Garcia Campos.
doKeyStrokeEvent() looks the requested keysym in the keymap, takes the
keycode of the first entry and it overwrites the keysym with the result of
translating that keycode with the modifiers. Nothing adds shift for a
keysym that is shifted, since modifiersForKeyVal() only maps modifier
keys, so the entry's level is ignored and the translation maps the keycode
back to its unshifted keysym. Typing "World1!" produces "world11". Add
shift when the matched entry needs it, so the requested character survives
the round trip.
A character the layout cannot produce, an accented letter or an emoji, has no
entry in the keymap at all, and the event was dropped. Send it with a keycode
of 0 instead: WebDriver is expected to be able to type any character, and
discarding the event leaves the caller waiting for a key that never arrives.
A failed keymap translation no longer drops the event either; the keysym is
sent as requested.
This makes 24 WebDriver subtests pass on WPE, mostly in typing_tests.py,
form_handling_tests.py, key_events.py and key_special_keys.py, whose
expectations are removed here.
* Source/WebKit/UIProcess/Automation/libwpe/WebAutomationSessionWPE.cpp:
(WebKit::doKeyStrokeEvent):
* WebDriverTests/TestExpectations.json:
Canonical link: https://commits.webkit.org/320915@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications