generated from MetaMask/metamask-module-template
-
Notifications
You must be signed in to change notification settings - Fork 7
Closed
Labels
enhancementNew feature or requestNew feature or request
Description
Presently, we have disjoint method types for kernel command calls and replies. These are in turn separate from the method implementations. Instead, method implementers should only need to specify a method name, a handler function, and potentially some parameter assertions.
This effort is impaired by our "fat" messaging types, which enshrine the aforementioned call / reply types. In order to make our messaging layer "thin" or "dumb", we will use JSON-RPC for all kernel IPC. This work was previously tracked separately in #464, but it actually makes the most sense do both refactors at the same time.
Our discrete units of IPC are the streams and messages sent between two conceptual (and usually actual) parts of the kernel. They are:
- UI panel <-> kernel (aka "kernel control" messages, refactor: Begin using JSON-RPC for internal messages #451 feat: Add
rpc-methodspackage #474) - Vat worker client <-> vat worker server (refactor: Replace VatWorkerManager message types with new RPC pattern #481)
- Web extension kernel <-> iframe worker (refactor: Replace "message" IPC pattern with RpcClient and RpcService #487)
- Web extension background <-> offscreen document (refactor: Replace "message" IPC pattern with RpcClient and RpcService #487)
- Node.js kernel <-> Node.js worker (refactor: Replace "message" IPC pattern with RpcClient and RpcService #487)
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request