[meta] Migrate to JSWindowActor API in Marionette
Categories
(Remote Protocol :: Marionette, task, P3)
Tracking
(Fission Milestone:Future, firefox86 fixed)
Tracking | Status | |
---|---|---|
firefox86 | --- | fixed |
People
(Reporter: ato, Unassigned)
References
Details
(Keywords: meta)
Attachments
(1 obsolete file)
As mentioned in bug 1565162, the message manager API is deprecated.
Marionette must be ported to use the new JSWindowActor
model to continue working.
Reporter | ||
Updated•5 years ago
|
Reporter | ||
Updated•5 years ago
|
Comment 1•5 years ago
|
||
How much work do we think that this will be? A rough guesstimate
Reporter | ||
Comment 2•5 years ago
|
||
I met with whimboo yesterday and we think there are two ways we
could go about this, depending what the priority is for moving
Marionette off the message manager.
The purpose of JSWindowActor
is to load less JS code to improve
the memory footprint of Firefox in an increasingly multiprocess
architecture. The actor model also organises code so that it will
be easier to support in a post-Fission world.
We theorise that moving the entire Marionette content frame script to
a single actor will let us move off the message manager relatively
quicly, but that this approach will not give us any of the Fission
or memory reduction benefits that the actor model offers. We estimate
this will take three man-months.
If we consider applying the principles of the actor model more
rigorously to Marionette, we need to bear in mind the monolithic
nature of the code base. To effectively employ the actor model in
Marionette, we would likely have to move the known web element cache
from the content process to the parent process. The same applies
to session and capabilities state. This is becaue child actors are
typically meant to be short-lived and action-driven, and web elements
in particular is being used throughout different types of action-actors.
It is harder to estimate a large refactoring project, but significant
progress could be made in ~six man-months.
Comment 3•5 years ago
|
||
Tentatively moving all bugs whose summaries mention "Fission" (or other Fission-related keywords) but are not assigned to a Fission Milestone to the "?" triage milestone.
This will generate a lot of bugmail, so you can filter your bugmail for the following UUID and delete them en masse:
0ee3c76a-bc79-4eb2-8d12-05dc0b68e732
Comment 4•5 years ago
|
||
Tracking for Fission milestone M6 because we want to be able to run Marionette tests with Fission before enabling in Nightly.
Comment 5•5 years ago
|
||
As suggested by the Fission team it would be better to first get all the navigation commands migrated from the content to the parent process. I filed bug 1612831 for that.
Updated•5 years ago
|
Comment 6•4 years ago
|
||
Updated•4 years ago
|
Updated•4 years ago
|
Comment 7•4 years ago
|
||
We need the Marionette tests working for Fission and desired but not necessarily ported to JSWindowActor framework.
Comment 8•4 years ago
|
||
Meta bugs shouldn't be assigned.
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Updated•4 years ago
|
Comment 9•4 years ago
|
||
Just to give an update here. Today I pushed a try build with actors enabled for both Fission and non-Fission builds:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=c91d5773c8d01ca7b0d2bf27a4b14c262052b654
As you can see there are still lots of failures. But most of these actually for non-Fission jobs. We will continue with enabling actors for Fission jobs first over on bug 1660168. Once those are stable we will add new blockers here.
Updated•4 years ago
|
Updated•4 years ago
|
Comment 10•4 years ago
|
||
This is now done. All the code in Marionette goes through the JSWindowActors now, and the framescript is no longer used.
Updated•4 years ago
|
Updated•2 years ago
|
Description
•