feat: Profiles and services
This MR adds support for declaring profiles
(i.e., isolated stores for cookies and other site data) and services
(i.e., sites to be loaded in separate tabs) in config.json5
. People can use the sidebar to switch between services.
There is currently no support for recipes that provide website integration (e.g., unread message counts), but the infrastructure is in place to display unread message counts.
I'm unsure about the architecture style and the coding style. I tried to create something that's reactive to minimize potential bugs caused by event orderings (the loadServices
reaction synchronizes store state with electron state, and there's no event-driven code except to update the store state), but there's probably lots of room for improvement. Also, we should add more tests (but the electron-specific parts are somewhat tricky to test).
Fixes #1 (closed).
Signed-off-by: Kristóf Marussy kristof@marussy.com