Suspension and throttling decisions will depend on whether or not a page has an attached web workers / service worker / etc. We need to add corresponding node types to the GRC graph.
Notes from email conversation:
- A service worker lives in a single renderer process. It can talk to multiple frames in either local or remote processes. It can even live without any frames (e.g., it wake up if a push message arrives). It's terminated when it's been idle for a while (i.e., it's had no events for a while).
- A shared worker lives in a single renderer process. It can be attached to multiple frames in either local or remote processes. It's terminated once there are no frames connected to it.
- There can be multiple service workers and multiple shared workers in a single renderer process.
- In representing either of the S*W in GRC, we'd want to know the origin to which the S*W is bound, as well as the process in which it is hosted.
- We want the URL as well eg. foo.com vs. foo.com/bar
- Ideally would track the attached frames, but Shubhie mentioned this isn't really necessary.
- We also would like to know the SW state (installing, active, idle), but this isn't necessary initially.
Comment 1 by pkl@chromium.org
, Mar 5 2018