Open Bug 1927073 Opened 16 hours ago Updated 11 hours ago

"RootTransport._sendCommandToBrowsingContext" fails when browsing context was replaced

Categories

(Remote Protocol :: Agent, defect, P3)

defect
Points:
3

Tracking

(Not tracked)

ASSIGNED

People

(Reporter: whimboo, Assigned: whimboo)

References

(Blocks 2 open bugs)

Details

(Whiteboard: [webdriver:m13])

Attachments

(1 file)

When trying to write a test for bug 1921314 I noticed that RootTransport._sendCommandToBrowsingContext() currently fails when the specified browsing context was replaced by a navigation. This happens because we never update the browsing context within a root module method and will continue using it when forwarding a command to the window global. Specifically root module commands are affected that internally call certain methods from the window global module with a delay.

As result we currently fail here with a webProgress that is null:

   let attempts = 0;
    while (true) {
      try {
        if (!webProgress.browsingContext.currentWindowGlobal) {
          await lazy.waitForCurrentWindowGlobal(webProgress.browsingContext);
        }

In case of retries are allowed for the actual command we should try to retrieve the new top-level browsing context for the associated browser element and use its webProgress instead.

Blocks: 1927144
Attachment #9433313 - Attachment description: WIP: Bug 1927073 - [remote] Retrieve new browsing context if old one was replaced when forwarding a command to the window global. → Bug 1927073 - [remote] Retrieve new browsing context if old one was replaced when forwarding a command to the window global.
Points: --- → 3
Whiteboard: [webdriver:m13]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: