WebExtensions Bookmarks Tags/Annotations - Come On



Can we get a good discussion going on about this maybe? So far there’s been:

https://bugzilla.mozilla.org/show_bug.cgi?id=1225916 - 2 year old bug with the main part of the discussion on this, though apparently “not the place” for discussion of what to actually do or not to do and why etc.

WebExtensions - Bookmarks Annotations - 0 replies on this post from 2016, a bit sad.

Here’s my few cents:

The Firefox Add-ons Ecosystem

The main argument against doing anything on this seems to be that only a “tiny” amount of users are using this feature. However, a simple search will show many add-ons with many hundreds of thousands of users most likely using this feature: https://addons.mozilla.org/en-GB/firefox/search/?q=bookmarks+tags&sort=users (some of these are proprietary so it is not entirely clear, but if you look at their features and see things like “smart organisation” that are Firefox only then it is pretty obvious).

This is from an open-source developer who has worked on many add-ons, some of which also take advantage of bookmarks tags I believe (correct me if I’m wrong), whose add-ons also total in the hundreds of thousands of users: https://addons.mozilla.org/en-GB/firefox/addon/tab-groups-panorama

Hopefully this gives some insight into “the masses” - these are add-on consumers, not developers. These users are never going to post on the Bugzilla or on this Discourse. I am only here posting because I’ve been looking at developing an extension which would use this feature. In fact, this feature is what brought me back to Firefox recently; prior to this need I was using Chromium; upon realising that Firefox supported tags for bookmarks, I promptly imported my bookmarks into it, tagged them all and began using it again (only to then realise that I can’t access these through the WebExtensions API, d’oh).

Continued below (limit on number of links I can post as a new user)

WebExtensions - Bookmarks Annotations

Tags are Freaking Powerful


Oh, look, tags on Discourse! Twitter, Instagram, Tumblr. Tags are empowering for users! Please refer to this comment in the bug report which takes this further regarding the different political/economic forces driving these directions.

An especially shameless yet pertinent special mention and shout-out to one of the most exciting pieces of technology emerging at this time, Secure Scuttlebutt, and the most prevalent application built on top of it, Patchwork, which uses tags extensively. In fact, without tags, I’m not sure exactly how it would function.

Speaking of which…

Continued below again


Decent & Open

The Mozilla values and pledge

Mozilla’s “Decentralize the Web” Prize

Unless you’ve been living under a rock, you’re aware of at least some of the plethora of the projects working towards something more like a free, open, decentralised, permanent and organised web. Dat, IPFS, Secure Scuttlebutt, Webtorrent, Mastodon, all those damned cryptocurrencies, Tim Berners-Lee and his “linked data” or what have you.

Look at the Beaker Browser; look at qutebrowser; look at the Webmemex extension. There is a strong drive to re-develop our relationship with our web browsing. It hasn’t happened yet, it’s all quite fresh still. The point is that tags are a potentially powerful tool in this dev space.

I guess you were ahead of your time when you brought this feature in, Mozilla; and now it may be trashed when it’s just ready to blossom.

That’s enough from me, please respond.

P.S. any advice/info on getting started with coding the addition of this functionality into Firefox’s WebExtensions implementation would be cool, I’ve seen in the bug thread that this addition would be welcomed and some folk suggest that they would start working on it, though nothing seems to have happened.

(Caitlin Neiman) #4

Hi @tomatopeel, thanks for sharing your thoughts.

Taking a look at bug 1225916, it looks like a contributor planned to write a WebExtensions Experiment to land this in an upcoming release. Let’s check in with that contributor to see how they are doing. The proposal for this API has been approved and we would like to see it land.

It would be great if you want to start writing APIs! We have some preliminary documentation available here. To get started, you will need to build Firefox. The WebExtensions API code in Firefox is mostly based on JavaScript, but it also uses some new ES6/ES7 features and syntaxae (learn more here and here). Please also check out the wiki for hacking on the WebExtensions code (though please also note that some of this information may be outdated – we’ve been focused on landing as many APIs as possible prior to the 57 release).

When you’re ready for feedback, file an issue in our Github repo to alert the engineers to take a look. We’ll discuss the experiment during a WebExtensions APIs triage meeting.

(Caitlin Neiman) #5

Hey @tomatopeel, quick update. No progress has been made on an experiment for 1225916, so if this is something you want to do, go for it. If you could email me at cneiman [at] mozilla [dot] com, I can put you in touch with some folks who can help you get started.

(hipunk) #6


I’m just snowing in to show that I’m also interested in having API access to the tags. I’m coming straight from a web search about this topic, so it seemed most appropriate to tell you that tomatopeel isn’t the only one needing it.




Hi @caitmuenster, thanks for the read/response.

Honestly, I feel like saying my piece about this is as far as I can go; my development priorities lie elsewhere and I’m a bit of a newb in any case.

Also I feel like this is enough. There are developers/engineers paid by Mozilla to do this kind of work who are already all kinds of familiar with Firefox. The WebExtensions stuff is on the road-map.

(Alberto Berti) #8

hey @caitmuenster,

i’m coming here after finding out that the new bookmarks API is missing the tags in the bookmark objects, and that it’s not possible to search by them… it seems like while the browser experience is going forward, it’s also going backward for no obvious reason, from a user pow (I miss also the side tabs experiment on testpilot)…

Anyway, looking at the WebExtensions Experiment doc that you posted isn’t clear to me why a rebuild it’s needed (I’m using the nightly, btw), the code seems to be all js… Can you please explain better why it’s needed? Last time I compiled mozilla was when SeaMonkey was the new thing… but if the only way to get the stuff done is to do it myself I’ll spend some hours of my spare time on it.

(Caitlin Neiman) #9

Hey @azazel! I totally hear you about the side tabs. That experiment successfully graduated from Test Pilot and that API has landed. Developers can use that API when creating extensions that use side tabs. (If you’re interested, Tab Center Redux is now available on AMO.)

We definitely want to support bookmarks tabs, and unfortunately we just did not have the resources to land that particular API before the Firefox 57 release. While this API is very much on our radar for future releases, we would also be happy to mentor anyone who wants to build and land this API. Otherwise, it might take some time for us to land this.

You would need to build Firefox in order to develop the API and test it. If you need help setting up your dev environment, please feel free to join the #webextensions channel on irc.mozilla.org and ask for help, or email me and I can put you in touch with someone who can help.

(Alberto Berti) #10

Thanks for the info and the tips! I’ll join the #webextensions channel and maybe i’ll send you a mail if I make any progress.

I’ve tried Tabs Center Redux and it work sufficiently well, but the main reason form me to switch to side tabs was space efficiency and until it isn’t again possible to hide the horizonal tabs toolbar it seems a bit silly for me to use it. I have it on my nighlty and I’m trying it from time to time to see if the situation improves… let’s hope it gets better :wink:

(Perry Wagle) #11

I have a wiki with 2000+ pages. To navigate it, I use tags that are complex strings that force sort order with sequence numbers and alphabetization, contain dates, topics, group names, ad infinitum. I inherited a huge legacy extension (https://github.com/wagle/tagspace-archive) that is very useful for framing tag queries in the form of and/or/not expressions on tags. This is amazingly powerful, but I don’t know how to convey that to others.

Support for bookmark tags has been languishing for a decade. Using the default firefox setup, editing tags is extremely unpleasant, and getting worse as people use the faux usage statistics to justify adding regressions to make things “simpler” and even more unpleasant. For example, the individual-bookmark editor has a 8-year old bug reporting its way too small, and is not resizable. Ignoring this, this past year, someone decided out of the clear blue sky that the tiny thing was too cluttered, and removed the cancel button. This is no small regression for someone who has a resizer extension for that window, and spends much of his life editing tags to make the workflow move. Undo does not function there, and undo is miserable for cancelling entire editing sessions.

Anyway, due to some recent brain malfunction, I cannot keep track of things in my head. I require external computer tools to keep track for me. I have that working – slowly – in firefox with that wiki and that tag query system.

So I simultaneously need to be productive enough to do my real work, while trying to not get sucked into maintaining bookmark-tags for the rest of my life, and not getting anything else done. Tags are immensely powerful but very clumsy lego. There is something better. But before I can flesh what that is, I must have a way to think clearly, and more quickly, and that is what I have rigged up in ESR52, gitit, and the tagspace plugin. This goes away June. Then you all vaporize the wheelchair for my mind. So, sorry if I let a little snippiness leak through, I also have 45 and gang trying over and over to kill me outright on a daily basis for the past 9 months.

So, I must somehow use my slow cobbled together organizer/planner to build a new faster one, that doesn’t take me all day to plod through. That doesn’t currently look possible (still missing API’s). Then I can make it more flexible, less tedious, etc.

There seems to be something happening now in the world of bookmarks, but I’m trying to figure out what. This note is part of that effort.

How do I help? Or am I on my own?

(Perry Wagle) #12

My previous response was a bit TL;DR, so I thought I’d start a new response to say more about my vision. First problem, as I mention above, is to just port my existing setup to ff57+. Webextension? Webexperiment?

Second stage is to start building a connection of a acceptable sort between the wiki server and firefox. I’m thinking mostly about my own workflow, which entails bookmarking a lot of URL’s, to the firefox bookmarking system, AND to the wiki. Would be very nice to either connect the two, or else to make the wiki itself an alternative bookmarking system.

From there, I could do things like have the on or off board wiki do things like track the ever-redirection of URLs, etc.

There are huge numbers of connections already between bookmarks, history, tags, and the URL and search bars. If I try to do everything in the off-board wiki, then I lose all that.

(Perry Wagle) #13

The main show stopper seems to be the fact that my inherited legacy tag query extension builds SQL queries and sends them to the sqlite database.

I’ve been told that I would never been allowed to do that. I’ve also been told to design an API to do it.

I have no clue how to design an API. First, I need an examplar API to mimic. Second, I understand my own problem, and could make something slick to implement that, but I have no idea what other people need (and am having difficulty figuring that out on my own). Third, I don’t understand the security angle – how do I make darn sure my API is secure? What are the threat models, etc?

Comments? Criticism?

(Alberto Berti) #14

Hi @wagle,

I was a big fan of tagsifter! I’m trying to figure out some of these things myself, while I’m trying to find some time to spend on this. What I can understand from the docs @caitmuenster posted is that the api layer has access to the good ol’ way to do things in js by using the Components architecture.

Another option me/we have is to access the sqlite db in another process and pull the tags out of it to fill another db/app, maybe web based, where to develop/port such filtering/selection features.

In this moment I have yet to find the time to recompile FF to gain access to the development of the API layer…


Conversely pandering to the least common denominator results in ignorance-driven anti-features.


A relationship like this with zero respect for sacrosanct User Privacy is doomed to failure.

(Alberto Berti) #17

I think we aren’t gaining anything with your attitude, do you have some more interesting taughts?