Add-ons Update – Week of 2016/08/24

I post these updates every 3 weeks to inform add-on developers about the status of the review queues, add-on compatibility, and other happenings in the add-ons world.

The Review Queues

In the past 3 weeks, 1228 listed add-on submissions were reviewed:

  • 1224 (92%) were reviewed in fewer than 5 days.
  • 57 (4%) were reviewed between 5 and 10 days.
  • 46 (3%) were reviewed after more than 10 days.

There are 203 listed add-ons awaiting review.

You can read about the improvements we’ve made in the review queues here.

If you’re an add-on developer and are looking for contribution opportunities, please consider joining us. Add-on reviewers are critical for our success, and can earn cool gear for their work. Visit our wiki page for more information.

Compatibility

The compatibility blog post for Firefox 49 is up, and the bulk validation was run. The blog post for Firefox 50 should be published in the next week.

Going back to Firefox 48, there are a couple of changes that are worth keeping in mind: (1) release and beta builds no longer have a preference to deactivate signing enforcement, and (2) multiprocess Firefox is now enabled for users without add-ons, and add-ons will be gradually phased in, so make sure you’ve tested your add-on and either use WebExtensions or set the multiprocess compatible flag in your add-on manifest.

As always, we recommend that you test your add-ons on Beta and Firefox Developer Edition to make sure that they continue to work correctly. End users can install the Add-on Compatibility Reporter to identify and report any add-ons that aren’t working anymore.

Recognition

We would like to thank fiveNinePlusR for their recent contributions to the add-ons world. You can read more about their contributions in our recognition page.

A Simpler Add-on Review Process

In 2011, we introduced the concept of “preliminary review” on AMO. Developers who wanted to list add-ons that were still being tested or were experimental in nature could opt for a more lenient review with the understanding that they would have reduced visibility. However, having two review levels added unnecessary complexity for the developers submitting add-ons, and the reviewers evaluating them. As such, we have implemented a simpler approach.

Starting on August 22nd, there will be one review level for all add-ons listed on AMO. Developers who want to reduce the visibility of their add-ons will be able to set an “experimental” add-on flag in the AMO developer tools. This flag won’t have any effect on how an add-on is reviewed or updated.

All listed add-on submissions will either get approved or rejected based on the updated review policy. For unlisted add-ons, we’re also unifying the policies into a single set of criteria. They will still be automatically signed and post-reviewed at our discretion.

We believe this will make it easier to submit, manage, and review add-ons on AMO. Review waiting times have been consistently good this year, and we don’t expect this change to have a significant impact on this. It should also make it easier to work on AMO code, setting up a simpler codebase for future improvements.  We hope this makes the lives of our developers and reviewers easier, and we thank you for your continued support.

“Restart Required” Badge on AMO

When add-ons were first introduced as a way to personalize Firefox, they required a restart of Firefox upon installation. Then came “restartless” extensions, which made the experience of installing an add-on much smoother. Every iteration of extensions APIs since then has similarly supported restartless add-ons, up to WebExtensions.

To indicate that an add-on was restartless, we added “No Restart” badges next to them on addons.mozilla.org (AMO). This helped people see which add-ons would be smoother to install, and encouraged developers to implement them for their own add-ons. However, two things happened recently that prompted us to reverse this badge. Now, rather than using a “No Restart” badge to indicate that an add-on is restartless, we will use a “Restart Required” badge to indicate that an add-on requires a restart.

One reason for this change is because we reached a tipping point: now that restartless add-ons are more common, and the number of WebExtensions add-ons is increasing, there are now more extensions that do not require a restart than those that do.

Another reason is that we encountered an unexpected issue with the recent introduction of multiprocess Firefox. In Firefox 48, multiprocess capability was only enabled for people with no add-ons installed. If you are one of these people and you now install an add-on, you’ll be asked to restart Firefox even if the add-on is restartless. This forced restart will only occur over the next few versions as multiprocess Firefox is gradually rolled out. This is not because of the add-on, but because Firefox needs to turn multiprocess off in order to satisfy the temporary rule that only people without add-ons installed have multiprocess Firefox enabled. So a “No Restart” badge may be confusing to people.

Restartless add-ons becoming the norm is a great milestone and a huge improvement in the add-on experience, and one we couldn’t have reached without all our add-on developers—thank you!

WebExtensions Taking Root

Stencil and its 700,000+ royalty-free images are now available for Firefox users, thanks to WebExtensions.

Stencil and its 700,000+ royalty-free images are now available for Firefox users, thanks to WebExtensions.

From enhanced security for users to cross-browser interoperability and long-term compatibility with Firefox—including compatibility with multiprocess Firefox—there are many reasons why WebExtensions are becoming the future of add-on development.

So it’s awesome to see so many developers already embracing WebExtensions. To date, there are more than 700 listed on AMO. In celebration of their efforts to modernize their add-ons, I wanted to share a few interesting ones I recently stumbled upon…

musicfm has an impressively vast and free music library, plus an intuitive layout for simple browsing. However, I’m more of a SoundCloud music consumer myself, so I was intrigued to find SCDL SoundCloud Downloader, which is built for downloading not just music files, but related artwork and other meta information.

The popular Chrome add-on Stencil is now available for Firefox, thanks to WebExtensions. It’s a diverse creativity tool that allows you to combine text and imagery in all sorts of imaginative ways.

musicfm offers unlimited free music and the ability to create your playlists and online stations.

musicfm offers unlimited free music and the ability to create your own playlists and online stations.

I’m enjoying Dark Purple YouTube Theme. I think video resolution reads better against a dark background.

Keepa is one of the finest Amazon price trackers out there that also supports various international versions of the online bazaar (UK, Germany, Japan, plus many others).

Googley Eyes elegantly informs you which sites you visit send information about you to Google.

Search Engine Ad Remover is a perfectly titled extension. But arguably even better than removing ads is replacing them with cat pics.

Thanks for your continued support as we push ahead with a new model of extension development. If you need help porting your add-on to WebExtensions, check out the resources we’ve compiled. If you’re interested in writing your first add-on with WebExtensions, here’s how to get started.

Add-ons Update – Week of 2016/08/03

I post these updates every 3 weeks to inform add-on developers about the status of the review queues, add-on compatibility, and other happenings in the add-ons world.

The Review Queues

In the past 3 weeks, 1228 listed add-on submissions were reviewed:

  • 1106 (90%) were reviewed in fewer than 5 days.
  • 80 (7%) were reviewed between 5 and 10 days.
  • 42 (3%) were reviewed after more than 10 days.

There are 98 listed add-ons awaiting review.

You can read about the improvements we’ve made in the review queues here.

If you’re an add-on developer and are looking for contribution opportunities, please consider joining us. Add-on reviewers are critical for our success, and can earn cool gear for their work. Visit our wiki page for more information.

Compatibility

The compatibility blog post for Firefox 49 is up, and the bulk validation was run. The blog post for Firefox 50 should come up in a couple of weeks.

Going back to the recently released Firefox 48, there are a couple of changes that are worth a reminder: (1) release and beta builds no longer have a preference to deactivate signing enforcement, and (2) multiprocess Firefox is now enabled for users without add-ons, and add-ons will be gradually phased in, so make sure you’ve tested your add-on and either use WebExtensions or set the multiprocess compatible flag in your add-on manifest.

As always, we recommend that you test your add-ons on Beta and Firefox Developer Edition to make sure that they continue to work correctly. End users can install the Add-on Compatibility Reporter to identify and report any add-ons that aren’t working anymore.

Extension Signing

The wiki page on Extension Signing has information about obtaining the unbranded builds to test on release and beta. We will try to make them easier to get to, but for the most part the Firefox 48 release marks the end of deploying this change, after years of work.

Recognition

We would like to thank these people for their recent contributions to the add-ons world: Rob Wu, NilkasG, and h4ever.

You can read more about their contributions in our recognition page.

Discovery Pane Editorial Policy

discoWith the launch of Firefox 48, we debuted a new page in the Get Add-ons section of about:addons. For simplicity’s sake, we’re calling this the Discovery Pane.

We recently covered the reasons why we redesigned this page. Now I’d like to share more insight into how this page’s content will refresh moving forward.

The Discovery Pane is designed to appeal to users who may have very little—or zero—understanding of what add-ons are, or why they should customize their browser. That’s why this page only features add-ons that meet the highest standards of user experience, like excellent UI, intuitive work flows, and polished functionality.

We also want to put forth only content that addresses what we know to be the most common needs of a broad set of Firefox users. The page as it exists today includes a few visual themes and four add-ons: an ad blocker, a video downloader, an emoji enhancement tool, and a screenshot extension—all very widely appealing use cases.

The list of content is intentionally short. As with introducing any unfamiliar concept, we wanted to avoid overwhelming people with loads of options, but rather focus their attention on a few enticing paths to choose from.

There are many high-caliber add-ons that would be a great fit in the Discovery Pane. So we’ll update this page each month as we identify more content and appropriate use cases. This does not mean we’ll update all of the content wholesale each month—we may leave certain add-ons in place if they offer a distinctly unique user benefit. However, for example, if we have four screenshot add-ons that are all equally awesome, we’ll endeavor to evenly rotate them.

An updated wiki page goes into greater detail about the selection criteria of Discovery Pane add-ons. But here are three critical criteria you should know about for all Discovery Pane add-ons; they must be…

  1. e10s compatible. As Firefox moves deeper into the new world of multi-process, we should only highlight content that is compatible with it (without relying on shims). Here’s how you can check your add-on for compatibility.
  2. Restartless. We need a uniform installation process for all add-ons presented on the page.
  3. Already be part of our broader Featured Extensions collection, which is vetted by our community-driven Feature Board, as well as Mozilla staff.

If you’d like to nominate your add-on (or someone else’s) for Discovery Pane consideration, please use the same channel we always have for featured content—email us at amo-featured@mozilla.org and we’ll add your nomination to the editorial review queue. There’s no need to specifically mention “Discovery Pane” while nominating, since all nominations will be viewed through that prism, but feel free if you like.

Any questions? Concerns? Better ideas? Feedback? You know where to leave comments…

Multi-process Firefox and Add-ons: A Call to Action for Extension Developers

As we mentioned previously, Mozilla will be introducing multiprocess Firefox (e10s) to selected users with the release of Firefox 48. Installations of Firefox that do not have add-ons installed or accessibility features enabled will have multi-process support enabled by default over the next six weeks. We’ll be testing multiprocess Firefox with add-ons in the release channel starting in Firefox 49, with the intent to make it the default for all installations of Firefox in early 2017.

While a number of existing add-ons will work with multiprocess Firefox, some will not work, or will not work well. We’d like add-ons to “just work”, so users will be able to use all their favorite extensions while experiencing the benefits of e10s as it’s rolled out to them. To this end, we have an urgent request for developers of add-ons who have not tested their add-ons for e10s compatibility or switched to WebExtensions already:

Then, take one of the following paths:

  • If your add-on works as expected with e10s, mark it as multi-process compatible and upload the new version to AMO and/or your updateURL
  • If your add-on doesn’t work as expected with e10s, adapt it to work with e10s, mark it as multi-process compatible and upload the new version to AMO and/or your updateURL

Additional information on e10s, add-ons, and WebExtensions are available on a Mozilla Wiki and MDN, and we’re also here to help you make the transition. While it seems far away, 2017 is just a few months away, and we’d ask that you test—and update, if necessary—your add-ons as soon as possible.

August 2016 “Pick of the Month”

Beat it, LSO's!

Beat it, LSO’s!


Pick of the Month: Better Privacy

by IKRG
Remove or manage a new, trickier kind of cookie, better known as LSO’s or Flash cookies.

”I’m a non-techie and had never even heard of these spy gadgets. I was amazed at the number Better Privacy turned up.”

Nominate your favorite add-ons

Featured add-ons are selected by a community board made up of add-on developers, users, and fans. Board members change every six months, so there’s always an opportunity to participate. Stayed tuned to this blog for the next call for applications. Here’s further information on AMO’s featured content policies.

If you’d like to nominate an add-on for featuring, please send it to amo-featured@mozilla.org for the board’s consideration. We welcome you to submit your own add-on!

Extension Signing: Availability of Unbranded Builds

With the release of Firefox 48, extension signing can no longer be disabled in the release and beta channel builds by using a preference. As outlined when extension signing was announced, we are publishing specialized builds that support this preference so developers can continue to test against the code that beta and release builds are generated from. These builds do not use Firefox branding, do not update automatically, and are available for the en-US locale only.

You can find links to the latest unbranded beta and release builds on the Extension Signing page as they come out. Additional information on Extension Signing, including a Frequently Asked Questions section, is also available on this page.

Linting and Automatically Reloading WebExtensions

We recently announced web-ext 1.0, a command line tool that makes developing WebExtensions more of a breeze. Since then we’ve fixed numerous bugs and added two new features: automatic extension reloading and a way to check for “lint” in your source code.

You can read more about getting started with web-ext or jump in and install it with npm like this:

npm install --global web-ext

Automatic Reloading

Once you’ve built an extension, you can try it out with the run command:

web-ext run

This launches Firefox with your extension pre-installed. Previously, you would have had to manually re-install your extension any time you changed the source. Now, web-ext will automatically reload the extension in Firefox when it detects a source file change, making it quick and easy to try out a new icon or fiddle with the CSS in your popup until it looks right.

Automatic reloading is only supported in Firefox 49 or higher but you can still run your extension in Firefox 48 without it.

Checking For Code Lint

If you make a mistake in your manifest or any other source file, you may not hear about it until a user encounters the error or you try submitting the extension to addons.mozilla.org. The new lint command will tell you about these mistakes so you can fix them before they bite you. Run it like this:

web-ext lint

For example, let’s say you are porting an extension from Chrome that used the history API, which hasn’t fully landed in Firefox at the time of this writing. Your manifest might declare the history permission like this:

{
  "manifest_version": 2,
  "name": "My Extension",
  "version": "1.0",
  "permissions": [
    "history"
  ]
}

When running web-ext lint from the directory containing this manifest, you’ll see an error explaining that history is an unknown permission.

Try it out and let us know what you think. As always, you can submit an issue if you have an idea for a new feature of if you run into a bug.