Skip to content

Making worker/worklet agent allocation imperative #5210

@domenic

Description

@domenic

In working on origin isolation I am finding it a bit annoying that only window agent creation is imperative. Let's figure out what it would look like to convert everything else.

Here's my first attempt:

  • End goal:
    • all realm creation ("create a new JavaScript realm" calls) include an agent pointer, either created on the spot or looked up from elsewhere.
    • We delete the "can share memory with" equivalence relation and associated implicit definitions. (Maybe we keep them as informative?)
  • Shared worker agents: creates a new agent and agent cluster on the spot. Does not need to store it in any map; all access can go through the shared worker.
  • Service worker agents: same as shared worker agents.
  • Worklet agent: grabs the owner document's agent cluster. Creates a new agent inside the agent cluster.
  • Dedicated worker agent: grabs the "relevant owner to add"'s agent cluster. Creates a new agent inside the agent cluster.

Hmm, but how exactly do we grab the owner's agent cluster? We can get from document/WorkerGlobalScope to realm to agent, but not from agent to agent cluster. We could use spec magic and say "the agent cluster that contains the agent", but maybe it would be better to be more explicit and go via the browsing context group, etc.?

Metadata

Metadata

Assignees

No one assigned

    Labels

    clarificationStandard could be clearertopic: agentThe interaction with JavaScript's agent and agent cluster concepts

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions