Open Bug 1565162 Opened 2 years ago Updated 2 months ago

[meta] Use JSWindowActor API instead of framescripts for the partial CDP implementation

Categories

(Remote Protocol :: Agent, task, P2)

task

Tracking

(Fission Milestone:Future)

Fission Milestone Future

People

(Reporter: ochameau, Unassigned)

References

(Depends on 1 open bug, Blocks 3 open bugs)

Details

(Keywords: meta, Whiteboard: devtools-fission-future)

Attachments

(1 file)

For now, /remote/ codebase uses the to-be-deprecated message manager API. (if that's not already deprecated?)
This is being done between TabSession and ContentProcessSession.
A replacement API has been implemented and is already usable: JSWindowActor.
https://searchfox.org/mozilla-central/source/dom/chrome-webidl/JSWindowActor.webidl

We should switch to this API in order to:

  • prevent /remote/ be the last codebase to still use message manager API (in case there is an intent to remove it completly)
  • ease supporting fission (remoted web page iframes) and tab process switches

Personnaly, that would help me understand this API in order to apply the same work against the DevTools codebase.

Blocks: fission
Priority: -- → P2
See Also: → 1565197

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

Fission Milestone: --- → ?

Alex, is the patch still being worked on? I'm moving this to a later milestone but let me know if this is expected to be complete sooner.

Fission Milestone: M6 → ---
Flags: needinfo?(poirot.alex)

I am not. I moved back to DevTools. I don't know if anyone is planning to work on that.

Status: ASSIGNED → NEW
Flags: needinfo?(poirot.alex)

I spoke briefly with AutomatedTester about the remote agent’s lack
of Fission compatibility earlier this week. We have some lose
intention of addressing some of these concerns early/mid next
quarter, and that will in all likelihood be based on the approach
ochameau has outlined in the WIP patch.

Attachment #9077338 - Attachment is obsolete: true

So I'm considering to pick-up this bug right now, even with the fact in mind that we originally wanted to do it next year. But after speaking with Alexandre it's clear that the amount of work, which would be necessary to do next year, is much larger due to all the rewrites of additional code added until then.

Reason is that the work for eg. bug 1599413 and bug 1599773 is way easier to do with the JSWindowActor approach. Also other methods and events could benefit from it.

As such I've tested Alexandre's patch and with some modifications I got it already working. The page navigation tests even with Fission enabled are passing, which is a good sign given that those are the most problematic ones in terms of process switches. There is only a leak remaining maybe because of the use of Map. Nevertheless I will upload a recent version, to be safe that it's not getting lost.

Next is to clean-up all the work starting from the child processes, the parent process, and all the domains...

Assignee: poirot.alex → hskupin
Blocks: 1599413, 1599773
Status: NEW → ASSIGNED
Priority: P2 → P1
Whiteboard: [puppeteer-alpha-reserve]
Attachment #9077338 - Attachment is obsolete: false

As informed I should not get started with that yet. So I will leave the patch as is, and will pick it up again in Q1 2020. Sorry for the noise.

Note that I will add dependencies to all the features, which I think would need a rewrite with this patch being landed.

Assignee: hskupin → nobody
Status: ASSIGNED → NEW
Priority: P1 → P3
Priority: P3 → P2
Whiteboard: [puppeteer-alpha-reserve] → [puppeteer-beta-mvp]

Tracking for Fission Nightly (M6)

Whiteboard: [puppeteer-beta-mvp] → [puppeteer-beta-mvp] [fission:m6]
See Also: → 1604259
Fission Milestone: --- → M6
Whiteboard: [puppeteer-beta-mvp] [fission:m6] → [puppeteer-beta-mvp]
Assignee: nobody → hskupin
Status: NEW → ASSIGNED
Priority: P2 → P1
Whiteboard: [puppeteer-beta-mvp] → [puppeteer-beta-mvp][puppeteer-high-priority]
Assignee: hskupin → nobody
Status: ASSIGNED → NEW
Priority: P1 → P2
Priority: P2 → P3
Whiteboard: [puppeteer-beta-mvp][puppeteer-high-priority] → [puppeteer-beta-reserve]
Priority: P3 → P2

This is more likely a meta bug given that several steps will be necessary to get this done.

Keywords: meta
Summary: Use JSWindowActor API instead of message manager in the Remote Agent → [meta] Use JSWindowActor API instead of message manager in the Remote Agent

Tracking for Fission M6b Nightly milestone.

Fission Milestone: M6 → M6b
Fission Milestone: M6b → M6c

Moving Remote Protocol bugs to Fission Beta milestone (M7).

Fission Milestone: M6c → M7

Henrik, what are the next steps here and who can work on this for M7 (Fx88)? Thanks!

Flags: needinfo?(hskupin)
Whiteboard: [puppeteer-beta-reserve]

DevTools meta bugs don't need to block Fission MVP. However, we will continue to monitor these meta bugs for any new bugs blocking them as potential blockers for Fission MVP.

Fission Milestone: M7 → Future

Most likely we are not going to add Fission support for our CDP implementation, but will keep focus on Fission for the WebDriver BiDi implementation. As such this might become a wontfix.

Flags: needinfo?(hskupin)
Summary: [meta] Use JSWindowActor API instead of message manager in the Remote Agent → [meta] Use JSWindowActor API instead of framescripts for the partial CDP implementation
Whiteboard: devtools-fission-future
No longer blocks: 1641221
You need to log in before you can comment on or make changes to this bug.