Summary: | WebDriver: pressed virtual keys not correctly handled in action sequences | ||||||
---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Carlos Garcia Campos <cgarcia> | ||||
Component: | WebDriver | Assignee: | Nobody <webkit-unassigned> | ||||
Status: | RESOLVED FIXED | ||||||
Severity: | Normal | CC: | bburg, clopez, dino, webkit-bug-importer | ||||
Priority: | P2 | Keywords: | InRadar | ||||
Version: | WebKit Nightly Build | ||||||
Hardware: | Unspecified | ||||||
OS: | Unspecified | ||||||
Attachments: |
|
Description
Carlos Garcia Campos
2020-01-09 06:19:08 PST
Created attachment 387216 [details]
Patch
Comment on attachment 387216 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=387216&action=review Can this be tested? > Source/WebDriver/Session.cpp:2613 > + virtualKeys->pushString(virtualKey); Where does currentState.pressedVirtualKeys get emptied? > Source/WebDriver/Session.h:206 > + HashSet<String> pressedVirtualKeys; Would this be better off as a Vector? Do you want the keys replayed in order? > Source/WebKit/ChangeLog:8 > + When modifiers are present we need to translate the keys that might be affected by the modifiers. I'm not sure how this is related. (In reply to Dean Jackson from comment #2) > Comment on attachment 387216 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=387216&action=review > > Can this be tested? It's already tested, this fixes imported/w3c/webdriver/tests/perform_actions/key_modifiers.py::test_shift_modifier_generates_capital_letters[\ue008] and imported/w3c/webdriver/tests/perform_actions/key_modifiers.py::test_shift_modifier_generates_capital_letters[\ue050] > > Source/WebDriver/Session.cpp:2613 > > + virtualKeys->pushString(virtualKey); > > Where does currentState.pressedVirtualKeys get emptied? The keys are removed when the keyup happens for them. > > Source/WebDriver/Session.h:206 > > + HashSet<String> pressedVirtualKeys; > > Would this be better off as a Vector? Do you want the keys replayed in order? You can get keyDown(Shift), keyDown(Control), keyUp(Shift), keyUp(Control) for example. > > Source/WebKit/ChangeLog:8 > > + When modifiers are present we need to translate the keys that might be affected by the modifiers. > > I'm not sure how this is related. There are actually two issues the tests, one is that the virtual key pressed is lost when any other keyup happens, and the other is that we don't translate the keyvals when modifiers are present. I need both changes to fix those tests. I can split the patch, but I think they are related enough. Comment on attachment 387216 [details]
Patch
r=me
Committed r254424: <https://trac.webkit.org/changeset/254424> |