Closed Bug 1930616 Opened 1 year ago Closed 11 months ago

Add optional NavigationManager using parent process ProgressListener

Categories

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

task
Points:
3

Tracking

(firefox140 fixed)

RESOLVED FIXED
140 Branch
Tracking Status
firefox140 --- fixed

People

(Reporter: jdescottes, Assigned: jdescottes)

References

(Blocks 2 open bugs)

Details

(Whiteboard: [webdriver:m16])

Attachments

(2 files)

We initially implemented the NavigationManager by listener to progresslistener notifications in the content process, via JSWindowActors. However this leads to additional STOP_STATE notification with NS_BINDING_ABORTED when there is a process switch, which we have to manually ignore. This makes it hard to differentiate between the final STOP_STATE for a navigation and an intermediary one. For instance, for a 204 HTTP response, the final state will be STOP_STATE with NS_BINDING_ABORTED as well, but this one should not be ignored.

The goal of this bug is to reimplement the NavigationManager using parent process progress listeners, and allow to toggle between the two implementations using a preference. We initially had issues with the parent process approach, with some edge cases such as data:uri iframe loads not being picked up.

See Also: → 1914407
Points: --- → 3
Priority: -- → P2
Whiteboard: [webdriver:backlog]
Blocks: 1914407
Blocks: 1914409
Blocks: 1908515
Whiteboard: [webdriver:backlog] → [webdriver:m15]
Assignee: nobody → jdescottes
Status: NEW → ASSIGNED
Whiteboard: [webdriver:m15] → [webdriver:m16]
Blocks: 1837949

For the record my initial patch for a parent process navigation listener was at https://phabricator.services.mozilla.com/D163993?id=656417

See Also: → 1959073
Blocks: 1963189

The goal is to reduce the confusion between the high level navigation manager/listener which
provide events about the navigation to WebDriver BiDi with some logic specific to BiDi and the underlying
listeners directly monitoring the platform notifications.

In the next patch in the stack we need to introduce an alternate way to listen to those platform
notifications so having more distinct names could be useful.

Pushed by jdescottes@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/cd4869f3e372 [remote] Rename NavigationListener actors to WebProgressListener r=webdriver-reviewers,whimboo https://hg.mozilla.org/integration/autoland/rev/c606c4205607 [remote] Prototype parent process NavigationListener r=webdriver-reviewers,Sasha
Status: ASSIGNED → RESOLVED
Closed: 11 months ago
Resolution: --- → FIXED
Target Milestone: --- → 140 Branch
Summary: Implement NavigationManager using parent process ProgressListener → Add optional NavigationManager using parent process ProgressListener

Julian, would you mind filing a bug to enable the parent process navigation manager by default? That way we can add dependencies and know how much work is left to do. Thanks.

Flags: needinfo?(jdescottes)
Blocks: 1964369
Flags: needinfo?(jdescottes)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: