Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[shared storage] Use separate mojom channels for worklet creation (ad…
…dModule) and for other operations (selectURL/run) What: Currently, The mojom::SharedStorageDocumentService channel is used to create the worklet (i.e. handle addModule), and is also used to route future worklet operations to SharedStorageWorkletHost. This CL decouples the two things. Note that the new channel is still associated with mojom::SharedStorageDocumentService (which is associated with the default navigation mojom channel), so that worklet operations before navigating away can be handled reliably. We also combine the handling of "creating worklet" and "addModule" because they always occur together. By doing this, we can remove some assertions on addModule status. Also, move more permission checks to the renderer, and ReportbadMessage at mojom boundary: 1) addModule can only be called once, 2) addModule must be called before selectURL()/run(), 3) selectURL()/run() cannot be called if a previous call didn't have {keepAlive: true} Why: This prepares for a potential future change to allow multiple worklets per Document. Nevertheless, a decoupled architecture is generally better. Bug: 1218540 Change-Id: Idc2b5df326ba75806f293d881fb9fb00fe80601e Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4947893 Reviewed-by: Cammie Smith Barnes <cammie@chromium.org> Commit-Queue: Yao Xiao <yaoxia@chromium.org> Reviewed-by: Daniel Cheng <dcheng@chromium.org> Reviewed-by: Avi Drissman <avi@chromium.org> Cr-Commit-Position: refs/heads/main@{#1212380}
- Loading branch information