Firefox Experiments I Would Have Liked to Try
ianbicking.org
ianbicking.org
I'm still waiting for a better UX on this use case. Bookmarks are hidden behind menus and require some work to organize and sort them: it's easier to leave an open tab in plain sight that reminds me to eventually read it and decide whether to close it or save it as a useful resource.
Last actual improvement I noticed was when Firefox stopped fully reloading every tab in session restoration.
Any actual research on user-friendly UX to manage and organize lots of potentially useful urls ?
It allows you to move tabs into named groups. Only tabs from the active group are shown in the tab bar, and you can switch between groups using an icon in the toolbar.
I do love that tab groups are malleable to the user's concept of organization, not some artificial notion such as grouping by website.
The end of Panorama (or Tab Groups as known nowdays) was a disaster for me, as I don't hesitate having over 3k tabs open.
Works similar to tab groups, but each group is in it's own container.
When I open up a tab group with many tabs in it, the extension loads all of them up (snoozed) in a way that takes a little bit of time to complete, but it works well.
I'm surprised nobody's taken a cue from Apple's Stacks[1] to automatically group them by source.
[0]: https://addons.mozilla.org/en-US/firefox/addon/tree-style-ta...
I like overflowing tabs into multiple rows, ctrl-pgup and ctrl-pgdn to go left or right, and ctrl-tab and ctrl-shift-tab (with the ability to hold ctrl and keep tapping to skip to the next tab without counting intermediaries as visited), and I've never gotten that from any browser but Firefox (and I think Opera in the past).
The engagement on that experiment wasn't very high, but I later went and read some of the user research and felt like there was some unmet potential: the concept was understandable, the functionality matched at least some real use cases, but it still didn't work, people didn't use it.
Obviously Pocket is intended for this purpose as well. It's personally what I use for this purpose, though there's always a kind of in-between state where you aren't quite sure what you want to do with a tab. If you make it easier to save the tab, there will always still be a point when you aren't sure if you want to save it or not...
As far as I'm aware Mozilla hasn't done deep-dive research into tabs. Not all of our research is public, but we do post a public index of the research: https://firefoxur.github.io/
It feels like that's the state I'm in with regard to most tabs. It also feels like these tabs are more important than those I've already bookmarked, which seems paradoxical.
It's not paradoxical at all - bookmarks are long-term persistent storage, tabs are short-term volatile storage. Data stored on disk isn't less important than data stored in RAM, but any given datum stored in RAM is a lot more likely to be accessed in the near future.
For tabs, I can imagine different ways of thinking about them:
1. An activity you have to complete. Or start. 2. A piece of information you think you may need to be aware of. 3. Something that interests you, but you are leaving for when you are in some particular state of mind (e.g., ready to read something long and involved). 4. Something shared with you, that you feel obliged to respond to. 5. One of a set of things that represents some pending task. 6. Something information you may need to revisit. Or you may have finished it, but it's yet to be "garbage collected". MDN pages usually fall in this category for me – I'll quickly come back a couple times to the page, but I only know I'm "finished" because I don't come back. So it sits there.
And for each of these there's the state of "maybe". Maybe I'll need this. Maybe I'll need to be aware of this. Maybe I should reply to my friend about this.
In this case the tabs act as both a reference, and a "task" waiting to be finished. If I finish the task I can close the tabs. Gives me the incentive to finish what I'm working on.
Also thank you for Python's Virtualenv, paste, and webtest. I know your not much into the Python scene anymore but your contributes still effect my day-to-day activities.
Doesn't mean I really will look at any of them any time soon though, it's not exactly a _succesful_ information organization method in either case. Which means, yeah, it might be ripe for some clever UX. It's not at all clear what this should be.
Maybe they're not more important but they're more urgent? Since they're ephemeral whereas your bookmarks are still going to be there when you reboot.
This is on a high spec dual 8 core xeon workstation with 164gb of ram and a radeon rx480 running latest kubuntu. Less than 100 tabs open, most of them basic references. If there was a bit of hardware I could buy that would fix browser lag I would.
Find a way to organise your stuff better? Whip up a page of links and use that? Dirs of shortcuts or something?
Having 50+ tabs open can't be an efficient way to manage your references.
There's obviously benefits to a more robust way to manage your work state. I'd view it in a similar vein as the advantages of a tidy desk: Some people lack the discipline to keep that state and can somewhat compensate for some of the disadvantages i.e. by application of spatial memory and the advantage of having everything to hand.
If people are going to do things the wrong way regardless providing them tools to improve their situation can still make sense.
I have 8 virtual desktops with different projects open, R studio and Jupyter notebook windows plus reference reading material. The work I do typically involves long running tasks and checking back on projects or doing some add on analysis. It takes way too long to get everything aligned right and started up on different monitors so this machine is always on.
I'd expect web browsers to be able to handle this without ui lag if the hardware is good enough. At this rate, I might run firefox in separate docker containers per virtual desktop just to keep it smooth. Would benefit security too...
The real issue is that (many) people are bad at managing state, particularly for things they want to theoretically read later but never will. Giving them an unlimited snooze mechanism is not the answer. Either it must have constrains to force clean up, or another “solution” should be attempted instead.
If a user only has ten tabs open, pausing them would probably be a bad idea in most cases. However, if a user has 100 tabs open, they almost certainly don't need to have the oldest ones running the background.
The two exceptions are audio (including backgrounded video) and messaging/notifications.
Just not... around.
Routinely, after both clean shutdowns and system crashes, firefox just loses all my pinned tabs. It's the primary thing that keeps me from using firefox as a default all the time. There's weird 'restore last session' and folder searching you can do to try to maybe 'recover' some, sometimes, but... WTH? I'm pinning things - I want them around. If I didn't want them restored on browser launch, I wouldn't 'pin' them. Unless pinning is intended to be transitory, and I just missed the memo?
Douglas Crockford via Wikipedia: https://en.wikipedia.org/wiki/JScript
(Unaffiliated, just a user.)
https://addons.mozilla.org/en-US/firefox/addon/tabist/
also chrome https://chrome.google.com/webstore/detail/tabist/hdjegjggiog...
Source code: https://github.com/fiveNinePlusR/tabist
[1]https://addons.mozilla.org/en-US/firefox/addon/tab-center-re...
It lets you put tabs into groups. The groups are really just a collection of links. I've found it useful for not having tons of tabs open. If you have tabs open for a long time you want to get to eventually, simply dump them into OneTab. In practice, I've found that most of the links I dump into OneTab never get read. Which turned out to be quite alright for me - I've wasted enough of my life browsing the web. I now aim to dump all open tabs into OneTab at the end of each day, so I start the new day with a clean slate. If there was any important link, it's always still there in OneTab should I want to access it.
It is not open source. Someone seems to have made an open source equivalent (have not tried it): https://addons.mozilla.org/en-US/firefox/addon/better-onetab...
Thinking in terms of queue operations, my ideal UI would let me push tabs or links to a special bookmark folder, the queue folder.
You could use menus if you had to, but to avoid menus, there would also be a mock tab permanently open that always displayed the next page in that queue folder. I could bookmark that displayed page to save it more permanently. I could close the page, which would remove it from the queue completely. Or I could send the page to the back of the queue.
A queue folder like that would be persistent across sessions, but wouldn't load every single page on every startup.
It'd be a bit like grouping all unread tabs by default, but also constantly storing that info in a folder as a backup, and having a really easy way to pop() tabs from that folder.
Alt + View + Toolbars + Bookmarks bar
I don't really get why this defaults to hidden.
[1] https://chrome.google.com/webstore/detail/openlist/nkpjembld...
This extension is also really helpful for mass URL-manipulation when you're too lazy to write a full script, but want to mash on some API. Someone please make a 1:1 port :D
It's available on Firefox Add-ons: https://addons.mozilla.org/en-US/firefox/addon/openlist/
The sources are available on my fork: https://github.com/Outpox/OpenList
For example, let's say I'm planning a trip. I will have tabs open for Google Flights, Airbnb, Trip Advisor, Google Maps and so on. A single window is one "project". It doesn't make sense to have those tabs open all the time -- just when I need them. Yet I have to keep them open because browsers don't have a way to treat a single window as a kind of persistent tab set. The best browsers can do right now is to bookmark multiple tabs as a folder and then later restore them. That's not too useful since there's no way to update this folder the same way.
What I'd like is to have windows be "named". I want to save my window as "Puerto Rico trip" and close it. Later I want to open it again and continue where I was. At all times my tabs and history are associated with the same "project".
I've been longing for this feature for maybe 10 years now. I started developing it as a Safari extension once, but ran into limitations in the API's support for opening windows.
[0] https://chrome.google.com/webstore/detail/workona-tab-manage...
- I open a bunch of tabs.
- I click the Onetab icon. It closes all my tabs. What?
- It's now showing me a page listing the tabs I had open. Ok, I can name this group. I name it "Foo". Then I hit "Restore these tabs".
- I now have my tabs back. Great.
- I click the Onetab icon. It closes all my tabs again, and this time my named group is gone, replaced with an unnamed group containing the tabs as they were. What?
- I restore the tabs again (sigh).
- I open another window with some tabs. Maybe I can save this window as a separate group. I click the Onetab icon. It closes all my windows!
It's completely nonsensical. From what I can tell, Onetab is designed to wrap all your current windows into one group that can be saved and then restored later, but restoring it actually deletes the saved group.
It's as if you had a photo scrapbook in real life that disappeared when you opened it, leaving you only with the photos. Then, when you want to put the scrapbook back on the shelf, you get a new scrapbook and put everything back in.
It's fully functional and does exactly what you say you want. It could use some UI improvements though.
Tab Session Manager doesn't have a link between your windows and the session state. All it does is snapshot the state of your browser.
For example, say I open a few tabs and save the window as the session "My trip". Then I open a new tab in the same window. This new tab doesn't get added to the session. The only way to update it is to go into the session list and click "Add to session" from the context menu.
In fact, it's profoundly stupid: With the default settings, if you open a session, then close a window, it will save a copy of your window state as a new "auto saved" session. You'll end up with an endless list of copies.
What I want: Once I've opened a session as a window, it should track all the activity. Opening a tab should add it to the session; removing a tab should remove it. Closing the window and then click on the session from the list should revive the window as it was when it was closed. In other words, a window's set of tabs is the active session at all times, and the tabs are persistent. It should be transparent, no need to click on things to micromanage it.
I can have a separate named tab group for every project and also for work. It could be integrated with container tabs.
It's like old Tab Groups/Panorama that was once built in Firefox. It is a bit manual, because one has to move groups and tabs around, but it's quite intuitive.
[0] https://addons.mozilla.org/pl/firefox/addon/basic-panorama/
[1] https://addons.mozilla.org/en-US/firefox/addon/panorama-tab-...
If I open a bunch of tabs as a named group, then open a new, blank window, then enter the extension's UI, the list of groups only has my current window. Makes absolutely no sense. The "group" state has to be global (and visible on all devices, which I doubt this does).
The extensions also seem to be doing something weird by hiding tabs, which Firefox was warning me about.
Warning about tab hiding is normal. I assume that something that you would find perfect also would have to use tab hiding.
They need more work or something separate, because the manual resizing of groups seems like a busy-work. I would like something more like Simplified Tab Groups, but with good syncing as you said. I'm not sure how would it work with current Firefox APIs though. If extension shows you the same group for two separate widows, what would happen if you would select the group in both of them? It would have to create additional tabs so they would not be shared. Also I'm not sure if tab hiding API allows to mix tabs from different windows. I think that what you want is not possible currently as an extension.
The only two point when it needs to do something is when I want to restore a "group" that has been saved. If I close tabs or windows, nothing needs to be done; my hypothetical extension would already have saved their state to a database of some kind on every change.
As for multiple windows: An "open" group would be associated with a single window. You wouldn't be able to open a new window for a group that's already live and in use.
It uses the native tab discard method to automatically reduce memory usage of inactive tabs. This way you can have lots of tabs without slowing the browser down.
For other extensions I use: https://galambo.wordpress.com/2018/12/25/firefox-extensions-...
TLD -> domain -> subdomain -> string
For example, www.metafilter.com and ask.metafilter.com would be sorted close to one another, as opposed to the former being in the "w"s and the latter being in the "a"s.
Really wish that had become the standard ...
I want really good tab management built in through some kind of workspace. I want something more than just profiles a workspace should be kind of like an editor workspace and provide different tools to help you be productive.
A minimal UI and user configurable keyboard shortcuts would be great too.
I wish I had written down more of my thoughts but I think to sum it up - all browsers are trying to compete for the average customer. I would pay money for a power user/developer focused browser.
For now I’m trying to customize qutebrowser to get closer to what I want.
i ended up with vim-vixen, but it's still missing a lot of functionality.
At least in my mind that would involve a kind of holding space separate from files (but serving some of those purposes). It's going to involve a lot of large, structured data, remote resources, and potentially "live" entities (like an open tab). All of which are still manipulable entities, but they need representations and a place to exist.
In the space of "live" entities, I played a bit with something I called "genies" (out of a notion that they were "a kind of daemon" or "something that's not quite a daemon", depending on where you drew lines) where a long-running process would register itself with your shell before backgrounding, and then you could make requests of it at leisure and possibly poll in your PROMPT_COMMAND. There's a lot of potential ecosystem I haven't really fleshed out, but I did put together a libpurple client that worked that way (with a UX very much inspired by https://en.wikipedia.org/wiki/MH_Message_Handling_System)
The UX I'm picturing is a suite of individual commands that can run from the shell against the current "state of the page", some of which would produce a display in either the shell or a separate window. One of those might be of the form of "render the whole page" but it could be less privileged a view than it is in existing browsers.
Big browsers are fine, you absolutely can browse with a keyboard in vimperator/pentadactyl/tridactyl without touching a mouse in months (I do). Other users above/below suggested vimium and vimperator-style extensions, and just look at the difference. Vimium is simple and works great in 9/10 cases, but there's always that one little element or a quirk where it doesn't work. Vimperator and its descendants work everywhere, but they often require a lot of manual labor and workarounds just to be able to put the mouse away. And the difference between 90% and 100% keyboard browsing is massive (no context switching).
Thing is, the modern web itself is super hostile to the keyboard control and power users, I don't think this has anything to do with browsers.
> Vimperator and its descendants work everywhere
Vimperator at least has been dead for years, ever since Firefox Quantum. The switch to WebExtensions was too much, and not everything could be converted anyway. Don't know about the others you've listed.
Vim Vixen is the closest I've found for the majority of my uses.
The workspace specific functionality is an interesting idea though.
Incidentally, Vivaldi comes the closest.
So I managed to write a proof of concept extesion [3] which exposes API to create sequence keyboard shortcuts (eg. Ctrl+x Ctrl+c in emacs) and creates bindings to Awesome Bar prefixes for filtering suggestions [4]. Although it is heavy experimental by now.
I suppose it may be pretty easy from here to add a feature for managing all the built-in shortcuts and commands of the browser.
Besides I think there are some effords to improve shortcuts stuff in Firefox [5].
[0]: https://webextensions-experiments.readthedocs.io/en/latest/i... [1]: https://firefox-source-docs.mozilla.org/toolkit/components/e... [2]: https://bugzilla.mozilla.org/show_bug.cgi?id=1397874 [3]: https://www.dropbox.com/s/2va0icchtittbnx/shortcuts-experime... [4]: https://support.mozilla.org/en-US/kb/awesome-bar-search-fire... [5]: https://bugzilla.mozilla.org/show_bug.cgi?id=1303384
(I think that Tree Style Tabs change tab handling so much to the better that it's completely worth a native implementation as a part of the browser. That would be a killer feature.)
This is one of those things that's sorely missing for me. Firefox has keyboard shortcuts for most things I want to do in it, but they're often really inconvenient and I'd like to be able to change them to match those in other tools I often use.
Some other things I'd love to see in a browser:
- A command palette to make functionality & shortcuts more discoverable
- Fuzzy tab search and switcher
- Customizable split panes
On the whole I think browsers could benefit a lot by learning from UX patterns in modern editors like Atom/VSCode.
Huge wins for discoverability and usability.
By default it does fuzzy tab search, (multi) selection and closing. The new advanced mode[1] turns it into something more like Quicksilver, with object->action->optional-param command sequences.
It's only on the Chrome extension marketplace, although it should be mostly compatible with Firefox.
Other than that i would really like updated bookmark and history manager.
BTW for Popup Tab Switcher, I had a similar thought and built an add-on for it, showing tab thumbnails instead of tab list. https://addons.mozilla.org/en-US/firefox/addon/tip-tab/
Even this 20 line PR to bring back the most basic functionality has been languishing for 7 months https://bugzilla.mozilla.org/show_bug.cgi?id=1478037
Another experiment would be allowing the user to set the new tab page to a local html file without having to create two config files full of magic incantations.
Read about it here: https://github.com/mems/bookmarklets-context-menu
I'm surprised no browser vendor actually ever tried that.
Can somebody speak to the challenges of such a scheme? I also really like this idea. Even for cases where I'm cool with tabs sharing state, I want to opt-in to that and be reminded with some kind of color-coding or something.
https://addons.mozilla.org/en-US/firefox/addon/multi-account...
Containers are built-in; this extension adds the interface for showing it per tab.
https://addons.mozilla.org/en-US/firefox/addon/multi-account...
Temporary Container (for temporary sites)+Multi-Account Container (for sites you want to allow to keep cookies etc)
Container tabs are better than nothing but what I have been wishing for for years is the ability to chroot jail a GUI application.
There would be very little performance penalty (vs. a full VM for each browser) since you aren't emulating the entire machine - it's just a chroot.
The idea is that in addition to their own root store of cookies/metadata/history/etc., each browser container could have its own IP address. I don't want to just keep my banking tab from talking to my throwaway-gmail-account tab - I want them to operate on different networks.
You can do this right now, with significant performance penalty, by running a full blown VM for each browser. There should be a way to run a GUI app in a chroot jail, but displaying to the same display.
EDIT: In fact, I have lamented this not existing for so many years I think I will have rsync.net fund it...
https://github.com/netblue30/firejail
Anything beyond that, and I think you need qubes-os:
I think this is the reason why people haven't done it. Most users don't want that, because it means that if you open any link in a new tab in any kind of signed in environment it'll fail. In an ideal world opening a link and opening in a new tab are functionally equivalent except for the "new tab" part.
A middle ground I'd like is for the Firefox containers function to allow you to automatically create a container for each domain you visit. That way, all the tabs I have for my logged in site will be logged in, but won't share state with anything else.
privacy.firstparty.isolate set to true.
It's also available as an add-on to make switching it on and off easier, if you prefer:
https://addons.mozilla.org/en-US/firefox/addon/first-party-i...
[1] https://www.ghacks.net/2017/11/22/how-to-enable-first-party-...
Some other problems to address
- You can either search or browse by time, but not search within a time frame (as far as I know) - Pages are listed by when you opened a tab, not when you closed it. I might have a tab open for several days (or ahem years). I look things up by what I was recently doing, not when I started doing it.
the chrome doing weird things in the viewport will make users trust unsafe actions by bad actors, so don't do that.
Thinking about it I came to realize that there is a much deeper cultural problem: it became the norm for users to run lots of opaque untrusted code on their computers. Every application is a threat, as it represents interests of the vendor rather than the user, and this can not be solved just by isolating UIs (the line of death) and code (sandboxing), we must reconsider the models of software distribution that we use. Maybe the Web should not at all be used as an application platform and instead focus on content and give more control of its representation to user agents.
And there actually is a software distribution model that gives grounds to trust — the one used by GNU/Linux distributions where software is not pushed to the users by vendors directly, but reviewed, built from source and packaged by distribution maintainers who represent the interests of their users. And of course, for the maintainers to be trusted, their work must be maximally transparent and verifiable. Some distributions, like GNU Guix, managed to advance this model really well, while others are unfortunately now going in the opposite direction by adopting things like Flatpak and Snap.
the web is still great, so i wouldn't like to see it thrown out yet, but maybe something better (built on gnu/linux?) can supercede it eventually.
open source hardware like arduino and raspberry pi is now near the point of being powerful, cheap, energy-efficient, connected, small and plentiful enough that maybe it begins to undergird trustable computing devices for wider consumption.
google is completely untrustworthy and while apple is better, it's not without its trustworthiness compromises. with mobile, there's really no 3rd choice unfortunately (waiting to see how the purism device turns out).
Les Orchard wonders if some sort of profit system could bootstrap the system. The IPFS folk have proposed an interesting cryptocurrency, Filecoin [2], allowing people who want their content hosted can pay people who offer hosting services; the core idea is that proof-of-work can be replaced by proof-of-replication, which I think is a nice idea.
[1]: https://ipfs.io/#why [2]: https://filecoin.io/
I always assumed that the immediate benefit here wasn't to the user at all, it was to the developer who could be 100% sure what engine they were running in, and so didn't have to bother testing in multiple browsers and versions, or risk browser updates breaking their site.
I don't think either of these features are possible with a standard browser because of sandboxing, nor should they be allowed.
* Right click and "make a task" out of this tab.
The "My Homepage" concept will be in the next release. Seems like a good idea.
From the post:
> Personal Podcast: > [...] When on an article, you can generate an audio version that will be added to the feed > [...] just send/text the link to add it to your preferred podcast app
That's exactly what we've built at https://www.narro.co - with Firefox support via good ol' vanilla bookmarklet.
--
[0]: http://acrowdedspace.com/post/166470695392/the-rebundling-of...
I believe this is possible natively in macOS. Select some text. Control-click on it and select Services > Add to iTunes as Spoken Track.
I'm somewhat surprised by this - I would have expected a modern diffing algorithm on the HTML (after the page has finished rendering) to work quite ok. I wonder what would be the reason it doesn't?
The approach where you show the entire page, and show the changes as green/red or <ins>/<del>, would probably work. But that doesn't lend itself to summarization, which is where my head was at.
I don't know if you know Distill.
That does this, though that shows the changes only within the part of the page you selected. It's a change detection tool which works in the browser. https://distill.io/
As a heavy user of feeds I always wanted a feedreader in my browser, but more with the list in the sidebar and a content main, like in a traditional feedreader. Firefox' Live Bookmarks did that for a while, but of course Mozilla killed it. Safari's Twitter integration hat the same model for a while. Also Opera. But UI-wise all solutions weren't as great; hindered by integration into bookmarks of general non-nativeness.
Like the current top comment I find it frustrating that browser makers stopped caring for the power user demographic and effectively stopped competing with UI features. My ideal browser would be a mixture of the feedreading capabilities of NetNewsWire 3.2 (Subscribe to a shell script!), the storage modell of Evernote and such, the tab management of TreeStyleTabs but with the taste and elegance of OmniWeb 5, the native integration and resourcefulness of Safari and the configurability of old Opera.
Loved that back when they tried it.
Here's an old screenshot: https://imgur.com/O8rN9fK
Since there doesn't appear to be any on the site.
It was great. Just directly interact with all kinds of apis from a commandline-like environment, within your browser.
It's a Chrome extension & web app for highlighting bits you read online. Then it generates flashcards for you to review on a spaced repetition-type schedule. No Firefox extension yet, but shouldn't be hard to port over.
Very interesting read, quite impressed with the other experiment proposals.
With some sane common base of modules, that does not include <video> and <script> and such. An HTML1/5 base if you will. That is about fifth of what is in the spec, sorted by common usage among the more traffic-heavy sites on the Internet, crucially ommiting the annoying and colorful and tracking functionality altogether.
Do I need to lay this out further? Because, oh boy, I so can do that. For like 16KB right off the top of my head.
If advertisers don’t want me to use it they shouldn’t be so obnoxious I NEED to.
(1) https://addons.mozilla.org/firefox/addon/reader-view/
(2) https://addons.mozilla.org/en-US/firefox/addon/automatic-rea...
https://addons.mozilla.org/en-US/firefox/addon/tile-tabs-we/
[1] https://addons.mozilla.org/en-US/firefox/addon/tip-tab/. (shameless plug for my add-on)
You just have to wonder what it is that makes big open-source companies so disconnected from their userbase. Still better than Google in practice, but Google's PR is much better.