WebExtensions in Firefox 50

Firefox 50 landed in Developer Edition this week, so we have another update on WebExtensions for you!Please use the WebExtensions API for any new add-on development, and consider porting your existing add-ons as soon as possible.

It’s also a great time to port because WebExtensions is compatible with multiprocess Firefox, which began rolling out in Firefox 48 to people without add-ons installed. When Firefox 49 reaches the release channel in September, we will begin testing multiprocess Firefox with add-ons. The goal is to turn it on for everyone in January 2017 with the release of Firefox 51.

If you need help porting to WebExtensions, please start with the compatibility checker, and check out these resources.

Since the last release, more than 79 bugs were closed on WebExtensions alone.

API Changes

In Firefox 50, a few more history APIs landed: the getVisits function, and two events–onVisited and onVisitRemoved.

Content scripts in WebExtensions now gain access to a few export helpers that existed in SDK add-ons: cloneInto, createObjectIn and exportFunction.

The webNavigation API has gained event filtering. This allows users of the webNavigation API to filter events based on some criteria. Details on the URL Filtering option are available here.

There’s been a change to debugging WebExtensions. If you go to about:debugging and click on debug you now get all the Firefox Developer Tools features that are available to you on a regular webpage.

Why is this significant? Besides providing more developer features, this will work across add-on reloads and allows the debugging of more parts of WebExtensions. More importantly, it means that we are now using the same debugger that the rest of the Firefox Dev Tools team is using. Reducing duplicated code is a good thing.

As mentioned in an earlier blog post, native messaging is now available. This allows you to communicate with other processes on the host’s operating system. It’s a commonly used API for password managers and security software, which need to communicate with external processes.

Documentation

The documentation for WebExtensions has been updated with some amazing resources over the last few months. This has included the addition of a few new areas:

The documentation is hosted on MDN and updates or improvements to the documentation are always welcome.

There are now 17 example WebExtensions on github. Recently added are history-deleter and cookie-bg-picker.

What’s coming

We are currently working on the proxy API. The intent is to ship a slightly different API than the one Chrome provides because we have access to better APIs in Firefox.

The ability to write WebExtensions APIs in an add-on has now landed in Firefox 51 through the implementation of WebExtensions Experiments. This means that you don’t need to build and compile all of Firefox in order to add in new APIs and get involved in WebExtensions. The policy for this functionality is currently under discussion and we’ll have more details soon.

There are also lots of other ways to get involved with WebExtensions, so please check them out!

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.