Bug 329451
| Summary: | [WebDriver BiDi] input.performActions: refresh the target frame's viewport during an action sequence | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Razvan Caliman <rcaliman> |
| Component: | WebDriver | Assignee: | Nobody <webkit-unassigned> |
| Status: | NEW | ||
| Severity: | Normal | CC: | bburg, webkit-bug-importer |
| Priority: | P2 | ||
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| See Also: | https://bugs.webkit.org/show_bug.cgi?id=326378 | ||
| Bug Depends on: | |||
| Bug Blocks: | 281949 | ||
Razvan Caliman
Follow-up for bug 326378
WebAutomationSession::runBidiInteractionSequence gets the target frame's viewport (its origin and size in main-frame coordinates) only once, before the action sequence starts. The whole sequence then runs with that SimulatedInputViewport.
If an earlier action scrolls the page, re-lays it out or moves the frame, later actions in the same sequence use a stale viewport. That breaks:
- viewport-origin moves in an iframe, which land at the old frame origin;
- "move target out of bounds" checks, which test against the old viewport size.
Fix: get the viewport again before each tick (or each viewport-origin move), or have the web process resolve viewport coordinates when it dispatches the action.
Reported in review of https://github.com/WebKit/WebKit/pull/75927#discussion_r4373370438
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |