Open Bug 1418995 Opened 7 years ago Updated 1 month ago

WebDriver:ElementSendKeys to use action primitives

Categories

(Remote Protocol :: Marionette, enhancement, P2)

enhancement

Tracking

(Not tracked)

People

(Reporter: whimboo, Unassigned)

References

(Depends on 1 open bug, Blocks 12 open bugs)

Details

The webdriver spec says that send keys has to use the action primitives for synthesizing the key codes. Right now it's using its own implementation.
Blocks: 1419393
Blocks: 1419394
[Mass Change 2018-01-15] Moving bugs to backlog
Priority: -- → P3
Blocks: webdriver
OS: Unspecified → All
Priority: P3 → P2
Hardware: Unspecified → All
Version: Version 3 → Trunk
Summary: sendkeys() has to use the action primitives → Use action primitives for WebDriver:ElementSendKeys
Summary: Use action primitives for WebDriver:ElementSendKeys → WebDriver:ElementSendKeys to use action primitives
Blocks: 1068733
Blocks: 1255260
Depends on: 1405370
Blocks: 1068728
Blocks: 1333069
Blocks: 1494661
To solve this we cannot simply refactor `event.sendKeysToElement()` because this is still in use by the `legacySendKeysToElement()` method. And this we have to keep for a while, until we can be sure to remove the `moz:webdriverClick` compat flag. As such the entry point which would need that change is `interaction.webdriverSendKeysToElement()`. Once we got rid of all the old cruft, we can then remove no longer used methods.
Assignee: nobody → hskupin
Status: NEW → ASSIGNED
Priority: P2 → P1
(In reply to Henrik Skupin (:whimboo) from comment #2) > To solve this we cannot simply refactor > `event.sendKeysToElement()` because this is still in use by the > `legacySendKeysToElement()` method. And this we have to keep for > a while, until we can be sure to remove the `moz:webdriverClick` > compat flag. Would it be easier to duplicate sendKeysToElement inside legacyaction.js to unblock this? It of course depends on how difficult it is to remove legacy actions completely, but I wouldn’t want to block anything related to WebDriver conformance on the count of legacy actions.
(In reply to Andreas Tolfsen ❲:ato❳ from comment #3) > Would it be easier to duplicate sendKeysToElement inside > legacyaction.js to unblock this? I don't see anything related to `sendKeysToElement` for legacy actions. Those only support `keyDown` and `keyUp`. > It of course depends on how difficult it is to remove legacy actions > completely, but I wouldn’t want to block anything related to > WebDriver conformance on the count of legacy actions. I have already made a bit of progress on that bug by Tuesday and the implementation is actually more complex as I have thought. But anyway, nothing from the legacy actions should block it. We will only have to leave `event.sendKeysToElement()` in-place for now, and can remove it later once legacy actions are no longer a thing. For the first implementation here I will drop the part of splitting the string by grapheme clusters, similar what Maja did earlier for the initial actions implemenatation. I will file a follow-up bug to get this implemented afterward, also because it won't be a regression due to we aren't doing it those days.
Blocks: 1496323
Also note that our event.js module is kinda outdated and doesn't contain any of the composition related key ynthesizing methods yet. I will have to sync the file with the latest version of EventUtils.js: https://dxr.mozilla.org/mozilla-central/source/testing/mochitest/tests/SimpleTest/EventUtils.js
James, there is an open action for you from our meeting at TPAC in updating the WebDriver specification for https://github.com/w3c/webdriver/issues/1322. Could you please have a look at it? Thanks.
Flags: needinfo?(james)
Depends on: 1354578

We cannot actually do this switch without having chrome support for Actions (bug 1365886).

Depends on: 1365886
Assignee: hskupin → nobody
Status: ASSIGNED → NEW
Type: defect → enhancement
Priority: P1 → P2
Depends on: 1669169
Blocks: 1673481
Flags: needinfo?(james)

(In reply to Henrik Skupin (:whimboo) [⌚️UTC+1] from comment #6)

James, there is an open action for you from our meeting at TPAC in updating
the WebDriver specification for
https://github.com/w3c/webdriver/issues/1322. Could you please have a look
at it? Thanks.

James, how much work do you think is needed to get that updated? Not sure about our own importance right now, but I wonder how this affects other driver implementations.

Flags: needinfo?(james)

The way I expect this to happen at this point is:

  • Convert actions to BiDi
  • Rewrite WebDriver Classic in terms of BiDi

I don't think it's going to get higher priority than that.

Flags: needinfo?(james)
Severity: normal → S3
Product: Testing → Remote Protocol
Depends on: 1904665
Depends on: 1853179
You need to log in before you can comment on or make changes to this bug.