On my phone and tablet, I typically use safari as a default, always in private mode, and I use Vivaldi for a few sites I want to keep a persistent session. I will periodically do a “Close all Tabs” for my browser and save links to something like Raindrop. On my desktop I currently use Vivaldi mostly like normal, though I do miss Firefox Multi-Account Containers for separating things. Somewhat inspired by Firefox Multi-Account Containers , I have long brainstormed about some browser ideas, even if they’re not super original.
Default Amnesia Mode
“Private” mode browsing is hardly private for many reasons, so perhaps I would name my default container “Amnesia”, because while the internet might not forget, your browser would forget the session.
It would work similar to how “Private” mode works in many browsers today.
By default, no history would be saved and any cookies and any other state would be dropped at the end of the browser session.
You could imagine a sqlite file opened as :memory:
with everything disappearing at the end of the session.
There would be no default mode that works like today’s browser. There would be no history saved by default. Extensions would likely work similar to extensions today, and you could enable extensions to be allowed for “Amnesia” mode.
Persist Session
While you would initially open a site in Amnesia mode, there would be a way to persist the current session as a new container.
If you imagine Amnesia mode to be opened like a sqlite database with :memory:
, doing a persistent session would give that database a name so that it could be persisted to disk.
By default, the browser would still open up in “Amnesia” mode, but you could select a previous session to continue (or you could open a stored session via command line flags or other parameters).
Optionally, perhaps you could set an expiration date for a session so that it expires after so many days or weeks, similar to how many browsers let you slowly expire history.
Domain Container
A Domain container would be similar to the named containers in the Firefox extension.
In addition to keeping cookies,storage, etc separated, domain containers would also let you set some additional parameters like customizing accept-language
per-container, allowing you to better enforce specific language preferences when a target website does a poor job guessing or endlessly tries to redirect you away from your choice.
While I call it a domain controller, it could be used to group things under a single domain like *.example.com
or some other kind of domain like a Work
or SocialMedia
domain that contains various sites.
Similar to the Firefox extension, I would imagine having a setting so that if a domain is opened in an “Amnesia” container, that you could automatically open it in the saved domain container.
Other Ideas ?
There are likely many edge cases that would need to be handled, and this is just a very high level brainstorm of an idea. Could be an interesting experiment for someone to build one day. I am not sure if it could easily be built as a SwiftUI using the default web browser components but maybe as servo progresses, it’ll provide more opportunities to experiment.