Closed Bug 1921314 Opened 1 year ago Closed 1 year ago

Investigate retry logic for calling into child actors when performing and releasing actions

Categories

(Remote Protocol :: WebDriver BiDi, task, P2)

task
Points:
3

Tracking

(firefox134 fixed)

RESOLVED FIXED
134 Branch
Tracking Status
firefox134 --- fixed

People

(Reporter: whimboo, Assigned: whimboo)

References

(Blocks 1 open bug)

Details

(Whiteboard: [webdriver:m13][wptsync upstream][webdriver:relnote])

Attachments

(1 file, 1 obsolete file)

Once bug 1904665 is done we need to strengthen the action commands that call into child actors and may face an AbortError.

Via bug 1854942 I've made updates recently as well but this is for one call into the window global for BiDi. Given that for actions we have a call into content for deserialization, and then individual ones for dispatching the action we need to wrap all action logic into a try/catch so that we can restart from the beginning.

It would be good to also have a webdriver test for this which should be Mozilla-specific again.

As per discussion today we maybe should not retry to dispatch actions if the underlying document got replaced.

I'll see which tests I can provide to handle different scenarios.

Points: --- → 3
Priority: -- → P2
Whiteboard: [webdriver:m13]
Depends on: 1927073

It turns out that we do not have to abort the action when the browsing context changes. That is a result from a test with Chrome and some new wdspec tests that I'm going to add soon to this bug. This is mainly the case because actually dispatching actions is happening in the parent process for Chrome and soon as well for Firefox (with widget events enabled). In those cases we do not have to care about the content processes because there is no JSWindowActor communication anymore.

The only exception is actually getting the center point of the element origin, but that will be racy anyway. If there is a navigation that early during a input.performActions execution we would fail with no such element. Not sure if there is a way to reliably test that.

I'm going to add new wdspec tests so we can verify the behavior.

Assignee: nobody → hskupin
Status: NEW → ASSIGNED
Summary: Fix retry logic for calling into child actors when performing and releasing actions → Investigate retry logic for calling into child actors when performing and releasing actions

While I was able to create tests for key and pointer input sources for the input.performActions command I do not see a possibility to do the same for input.releaseActions. Mainly because there is no chance to delay the execution of individual actions.

Tests for "input.releaseActions" cannot be created
because there is no way to delay processing certain
actions from the action chain.

Tests for "input.releaseActions" cannot be created
because there is no way to delay processing certain
actions from the action chain.

Attachment #9434024 - Attachment is obsolete: true
Pushed by hskupin@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/6fb4c720d554 [wdspec] Tests for "input.performActions" to check that dispatching actions finishes even with an active navigation. r=webdriver-reviewers,jgraham,jdescottes
Created web-platform-tests PR https://github.com/web-platform-tests/wpt/pull/48880 for changes under testing/web-platform/tests
Whiteboard: [webdriver:m13] → [webdriver:m13], [wptsync upstream]
Status: ASSIGNED → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 134 Branch
Upstream PR merged by moz-wptsync-bot
Regressions: 1928802
Whiteboard: [webdriver:m13], [wptsync upstream] → [webdriver:m13][wptsync upstream][webdriver:relnote]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: