WebExtensions manifest.json creator property and documentation?

An old blog post says:

WebExtension manifests now support a “creator” property, which is displayed in the Add-on Manager, to indicate the author of the add-on.

Yet, I can find no documentation on the MDN WebExtensions/manifest.json page.

How do we store, modify, and retrieve lists of Creator, Developer(s) and/or Contributor(s)? This was previously easily and explicitly possible in install.rdf and package.json files, but seems to have disappeared in manifest.json.

If these or similar properties do in fact exist, please update the documentation to include them.

If these or similar properties were removed, please update the documentation to make us aware, and also include a summary of the rationale, with a link to the public discussion (bug report, blog, discourse, etc) where such a decision was made, so that we understand what happened and why.

This is a sloppy and lazy practice I have been critical of in the past: using blog posts as “documentation”, rather than properly writing documentation, with the excuse that they don’t want to waste time doing the “same thing” twice. Blog posts are fine if people are into that, but it doesn’t excuse them from neglecting to also update the documentation. Boohoo, it’s a few minutes extra work for the blogger. But nobody at that time has access to this information, and it is shirking a social responsibility to collect that important information into a central point of documentation, rather than relying upon the random chance that a search engine algorithm will display a blog as a result to a query, creating a waste of minutes or hours times the hundreds or thousands of others looking for that info in the documentation.

If division of labor would be helpful, then a process ought to be developed to strengthen the coordination between those predisposed to write blogumentation, and those motivated to maintain formal documentation, such that a quick ping can be generated from the blogger to a pool of doccers who can then pick up the task of digging deeper and update documentation in a timely manner, not weeks, months, or years later, when the software has gone into legacy mode of it’s life-cycle.

Undocumented features are an insult both to those who invested time and energy to implement those features, and everyone else interested in making use of those features. It’s a responsibility and a commitment to uphold a social contract: if the code was important enough to write, it’s important enough to document. No tolerance for laziness, or absence of processes of mitigation. If a process is needed, talk about it and set it up. Good documentation dramatically cuts down the time I spend ranting on discourse. :slight_smile: That can only be good for everyone.

I am still self-educating, trying to catch up. Perhaps one day I will feel confident enough to take on the role of contributor and actually help out. Until then, I do appreciate the efforts of everyone who contributes and helps keep this browser alive.

1 Like

author and developer are supported, the first one being documented in the document you linked to.

If you want to contribute to missing documentation, you can look at the resolved bugs that have the dev-doc-needed flag.

Upon further investigation, the problem seems to be this code.

manifest.json’s author is assigned to the internal/legacy creator property, “as a convenience”.
The “new” developer property, if it exists, accepts properties name and url, and if given, will override author and homepage_url, respectively.

So apparently some decision was made somewhere at some point to remove all developers, contributors and translators from being credited, as they are all forcibly assigned to null, leaving only the original author/creator being credited.

Edit: After some research, it seems to trace back to this W3C Working Group post. Rather displeased with the inability to accommodate a sensible attribution. The dumbed-down “1 developer only” is ill suited to a loose collection of independent and part time contributors, which is what the add-on community is mostly comprised of, rather than single corporate entities whose business model is in part based on generation of one or more add-ons, which is probably what Google and Microsoft app stores tend to attract (the other two authors were from those companies).

This is problematic, as add-ons may have multiple active developers on AMO, and the creator may be relatively inactive. The remaining developers can’t then claim to be the author. At the very least, credit should be given to the creator, and all the developers.

Until or unless resolved in the add-on management ecosystem, I’ll have to consider it an exercise for the developer to maintain their own “About” page, wherein proper attribution and respect can be given.

Documentation bug 1323610 also filed for page creation of https://developer.mozilla.org/en-US/Add-ons/WebExtensions/manifest.json/developer . MDN account set up to edit pages. Once created, I a willing to edit /manifest.json/developer, update /manifest.json, /manifest.json/author and /manifest.json/homepage_url pages to fully clarify what currently exists.

Yeah, the old manifest format allowed for much more detailed attribution. I agree that it makes sense to have an about page if you need to credit more people.

What bothers me is that I can’t seem to find any discussion as to why these properties need to be removed. It seems to have been a unilateral decision. I’ve not developed add-ons in other browsers, but the ecosystem seems very different. The main driving force behind the synchronization of APIs seems to be the fuel commercial sales of software add-ons. Mozilla Firefox add-on environment has historically been FOSS developer-focused, and valued things like collaboration, education, writing add-ons for hobby or fun. This tradition was all but tossed away in a heartbeat to make it easier for the other two companies to sell stuff. I don’t care one way or another about the marketing aspect. If some can make a living by doing that, great. But to achieve that by forcibly removing properties, and demanding that any “unrecognized” properties be cause for all add-ons to fail, I strongly disagree with that. I wasn’t aware of the W3C Community Group, not sure of the policies and requirements of interaction, but I do wish I could inject my objections, for the record, and perhaps at least generate a record of the conversation that should have taken place before the decision was made. But it’s probably too late and would just be ignored. All in the name of synchronizing around a profit model, to the exclusion of all other mindsets. It may seem like a trivial nit to some, but to me, it seems like a big deal indicating a MAJOR shift in values, and a sign of things to come. It destroys a sense of “community of hackers” and gives a sense of “community of people out to make a quick buck.”

It’s not that they were removed, but that WebExtensions was a fresh start, largely based on what Chrome supported for its extensions. That’s the reason WebExtensions supports author.

Beyond what Chrome supports, we want to expand what WebExtensions do, and we also want to establish a cross-browser extension standard, which is in the works with Microsoft and others. The new developer field came out of those discussions. Anything we add to WebExtensions (even if it existed in the old add-ons world) should be carefully considered, because we want most of it to be standard and adopted by other browsers.

I suggest you file a new bug to request these fields to be added, and the team will decide if this is worth implementing or not.

It’s not that they were removed,

If the variables are assigned the value “null” internally, and all external API access is removed, then effectively, those variables are removed. How long do variables initially assigned to null tend to live in code? Technically, the variables are still there, and so not removed (at least, not in a single action), but how long will they remain, now that they serve no purpose? Semantics.

I thought I had filed a bug report on the issue, but maybe it was documentation only, not code. I’ll try to look through the bugs again and find the one more closely related to this change to comment.