Air MozillaQuality Team (QA) Public Meeting, 10 Feb 2016

Quality Team (QA) Public Meeting The bi-monthly status review of the Quality team at Mozilla. We showcase new and exciting work on the Mozilla project, highlight ways you can get...

Air MozillaThe Joy of Coding - Episode 44

The Joy of Coding - Episode 44 mconley livehacks on real Firefox bugs while thinking aloud.

Mozilla IndiaIntroducing Mozilla India Community Twitter List

We all are pretty active on social media, especially on Twitter. We used the power of Twitter effectively to run campaigns like the never ending Save the Internet and the recent Privacy Month. All our local and regional events are covered lively through Twitter.

But are we well organized on Twitter? How connected we are as the Mozilla India community members? As an individual, somehow we are connected to each other. But the network isn’t strong. Well, let’s get connected. Let’s make our efforts and initiatives well organized.

So Team Social of Mozilla India is taking a step to connect all our community members who use Twitter to share the awesomeness of Mozilla.

Introducing Mozilla India Community Twitter List.

What is a Twitter List? It’s a curated group of Twitter users. In our case, it’s a group of Mozilla India community members. A perfect place to find Mozillians from India. The social hub of the most diverse Mozilla community.

Why you have to get added yourself in this list?

Community outreach and engagement through Twitter. As Mozillians, we do all have a shared interest. We are talking about a shared mission.

This is the perfect place to see all the tweets of Mozillians from India. You can engage with all of them within a single window. You don’t need to follow all the community members one by one to know how your fellow community members contributing to our mission. Instead, you need to just subscribe this list, and you are done.

The public benefit.

If anyone is interested in, says a Netizen who trust Mozilla and love what we do for the betterment of the open Web, wants to know more about our community and looking for what is trending in our community. They just need to subscribe the list and they are set. Visit the list, and see all the tweets from the Mozilla India community in a single place. How awesome it is, isn’t it?

View the list in action.

Interested in? Looking for how to get started?

Boom. Done. We will take care of the rest.

hacks.mozilla.orgSmoother scrolling in Firefox 46 with APZ

Have you ever been on Facebook or Twitter, merrily scrolling down the page, when all of a sudden, the browser appears to freeze? For several long seconds it just hangs there, and you’re not sure if it’s going to crash or not. Then, finally, something gives way, and the page jumps to catch up to your scrolling, disorienting you? That’s called jank, and in Firefox 46 Beta we are well on our way to making jank a thing of the past.

In Firefox 46 Beta, we’re bringing asynchronous panning and zooming (APZ) to Firefox. The underlying technology was first developed for our mobile platforms, where responsiveness to touch input is one of the pillars of performance. Now we are bringing that over to our desktop platforms, and using it for mousewheel/trackpad scrolling. With APZ, scrolling down pages should be smooth and jank-free, even if the page is busy running lots of JavaScript or is slow to repaint. In future releases, we plan on enabling APZ for other methods of scrolling (such as touch and scrollbar-dragging) as well.

Under the Hood

Browsers traditionally handled user input events on the browser’s main event-handling thread. This meant that it could get blocked by pretty much anything else the browser was doing, including running scripts and painting. In Firefox, the Electrolysis (e10s) project separates the content process from the main browser process. This gives us another path for handling input events. Instead of passing the input events from the parent process to the content process to drive scrolling as usual, the input events are used to drive scrolling in the parent process compositor before they are forwarded to the child process for normal processing and dispatch. This is illustrated in the diagrams below.


Figure 1. Code flow without e10s or APZ.


In Figure 1 above, the potentially long-running operations are indicated in red. Although the compositor thread can still composite to the screen rapidly (at 60 frames per second), it relies on getting the painted content from the main thread. Since the main thread can be blocked by long-running JavaScript or paint operations, paint updates from scroll inputs also gets blocked and can’t get to the compositor.


Figure 2. Code flow with e10s and APZ

In Figure 2 above, we can see how introducing e10s and APZ affects the flow. The input events arrive in the main thread of the parent process, which is free of long-running operations. Therefore, it can quickly pass on the input events to the compositor thread, where the APZ code uses it do asynchronous scrolling. Meanwhile, the input event is also forwarded to the main thread of the child process, where it is delivered to web content and triggers repainting. Even though these operations may still be slow, they no longer block the scroll updates from being composited to the screen.

This approach, although great for responsiveness, requires e10s to be enabled, and also introduces a certain complexity. For instance, the parent process needs to be able to do some amount of hit-testing on child processes to know where the input event landed. It also means that the parent process needs to have a mechanism for handling events on which preventDefault() is called by web pages. For details on how this all works, refer to the APZ documentation.


Of course, nothing is free, and APZ comes at a cost. APZ does eliminate jank, but in some cases it does so by checkerboarding instead. Checkerboarding is what you get when you scroll faster than the browser can paint the page. When this happens, the content at your new scroll position hasn’t been painted yet, and so we just show a flat background color. (The term checkerboarding comes from the original iPhone implementation, which would show a checkerboard pattern.) Once the painting catches up, the content fills in.

Checkerboarding is inevitable with asynchronous scrolling due to memory limitations; it’s the cost of removing jank. However, in most cases it shouldn’t be noticeable – it only lasts a few hundred milliseconds, and we are working hard to bring that down further. The way we do this is by painting content outside of the visible area ahead of time, so that when the user scrolls it’s ready to be displayed right away. By better predicting where the user is going to scroll we can reduce the amount of checkerboard shown. Overall, trading off jank for checkerboarding results in a better user experience because the browser itself remains responsive and doesn’t appear to freeze or hang.

Scroll-Linked Effects

APZ also has an impact on the way scroll-linked effects work. Because APZ does scrolling asynchronously from the main thread, this necessarily means that the scroll events seen by the web content will be delayed. In other words, there is some propagation delay from when the user scrolls until the scroll event can be dispatched to the web content. If the page uses the scroll event to reposition some content on the page, it will take additional time to process that change and display it to the user. This means that scroll-linked effects can appear delayed and out of sync with the scrolling. Under ideal circumstances, the delay between the user’s scrolling and the scroll-linked effect being visible should be no more than 2 frames (33ms at a frame rate of 60 frames per second). Although this is barely noticeable, in practice it may take a bit longer if the page is tying up the main thread with scripts, or if it is complex and takes a while to repaint. Therefore, it’s still important for the page to remain as responsive as possible by breaking up long-running scripts or using workers.

To eliminate this delay entirely, authors have the option to implement the scroll-linked effects using CSS positioning rather than JavaScript. We have CSS-only options available for the most widely used scroll-linked effects, including sticky positioning and the parallax effect. With CSS positioning, we can know ahead of time how the positioning will change, and so we can keep it perfectly in sync with the user’s scrolling. You can find examples and more details about scroll-linked effects in the MDN article.

Meeting NotesMozilla Project: 2016-02-08

  • Every Monday @ 11:00am Pacific Time (19:00 UTC)
  • to watch and listen
  • join #airmozilla for backchannel discussion
  • Presenters only: Vidyo room “Brownbags”. Do not use this room if you’re not planning to speak.
  • Dial-in: conference# 8600
    • People with Mozilla phones or softphones please dial x92 Conf# 8600
    • US/Toll-free: +1 800 707 2533, (pin 369) Conf# 8600 (max 48 users at any time)
    • US/California/Mountain View: +1 650 903 0800, x92 Conf# 8600
    • US/California/San Francisco: +1 415 762 5700, x92 Conf# 8600
    • US/Oregon/Portland: +1 971 544 8000, x92 Conf# 8600
    • CA/British Columbia/Vancouver: +1 778 785 1540, x92 Conf# 8600
    • CA/Ontario/Toronto: +1 416 848 3114, x92 Conf# 8600
    • UK/London: +44 (0)207 855 3000, x92 Conf# 8600
    • FR/Paris: +33 1 44 79 34 80, x92 Conf# 8600
    • or, for some clients, (may not work for all rooms)
    • Gmail Chat (requires Flash and the Google Talk plugin): paste +1 650 903 0800 into the Gmail Chat box that doesn’t look like it accepts phone numbers
    • SkypeOut is free if you use the 800 number
    • If you plan on presenting, please join the Vidyo BrownBags 20 minutes prior to the start of the meeting and announce to the A/V Technicians that you will be speaking so that they can confirm your Audio and Video.

All-hands Status Meeting Agenda

Items in this section will be shared during the live all-hand status meeting.

Friends of Mozilla

  • Thanks to all AMO add-on reviewers for the extraordinary efforts, which have reduced the review queues to 20% in a few weeks.

Upcoming Events

Monday, 08 February
Wednesday, 10 February

Project Status Updates (voice updates)

Firefox and Cloud Services

Speaker Location:
Speaker Location: Nick Nguyen, MV
We’ve been revamping our wiki to give users a better view of what’s going on with Firefox. Keep an eye on it, it will change very frequently as we pull information together.


The limit is 3 minutes per topic. It’s like a lightning talk, but don’t feel that you have to have slides in order to make a presentation. If you plan on showing a video, you need to contact the Air Mozilla team before the day of the meeting or you will be deferred to the next week. The meeting is streamed in a 4:3 format in order to allow for split screen. If your slides are 16:9 “widescreen” format, please indicate in the “Sharing” column below.

Presenter Title Topic Location Sharing Media More Details
Who Are You? What Do You Do? What are you going to talk about? Where are you presenting from? (Moz Space, your house, space) Will you be sharing your screen? (yes/no, 4:3 or 16:9) Links to slides or images you want displayed on screen Link to where audience can find out more information
Lindsey Frost Program Director, Mozilla Gigabit Hive Gigabit Community Fund now accepting applications Remote No n/a
Mike Hoye That Guy Who Did That Thing That One Time Engineering Onboarding 2: 2 Engineering, 2 Onboardening Toronto No n/a Engineering Onboarding: Participants
Larissa Shapiro Diversity and Inclusion Person Outreachy Update! Mountain View No Outreachy Feb 2016 Update Deck Mozilla Outreachy Wiki


Let’s say hello to some new Mozillians! If you are not able to join the meeting live, you can add a link to a short video introducing yourself.

Introducing New Volunteers

New Volunteer Introduced by Speaker location New Volunteer location Will be working on
Who is the new volunteer? Who will be introducing that person? Where is the introducer? Where will the new person be contributing from? What will the new person be working on?

Introducing New Hires

New Hire Introduced by Speaker location New Hire location Will be working on
Jennifer Chau Michelle Marovich Mountain View Mountain View People Department


Notes and non-voice status updates that aren’t part of the live meeting go here.

Status Updates By Team (*non-voice* updates)


The Mozilla BlogThe Internet is a Global Public Resource

One of the things that first drew me to Mozilla was this sentence from our manifesto:

“The Internet is a global public resource that must remain open and accessible to all.”

These words made me stop and think. As they sunk in, they made me commit.

I committed myself to the idea that the Internet is a global public resource that we all share and rely on, like water. I committed myself to stewarding and protecting this important resource. I committed myself to making the importance of the open Internet widely known.

When we say, “Protect the Internet,” we are not talking about boosting Wi-fi so people can play “Candy Crush” on the subway. That’s just bottled water, and it will very likely exist with or without us. At Mozilla, we are talking about “the Internet” as a vast and healthy ocean.

We believe the health of the Internet is an important issue that has a huge impact on our society. An open Internet—one with no blocking, throttling, or paid prioritization—allows individuals to build and develop whatever they can dream up, without a huge amount of money or asking permission. It’s a safe place where people can learn, play and unlock new opportunities. These things are possible because the Internet is an open public resource that belongs to all of us.

Making the Internet a Mainstream Issue

Not everyone agrees that the health of the Internet is a major priority. People think about the Internet mostly as a “thing” other things connect to. They don’t see the throttling or the censorship or the surveillance that are starting to become pervasive. Nor do they see how unequal the benefits of the Internet have become as it spreads across the globe. Mozilla aims to make the health of the Internet a mainstream issue, like the environment.

Consider the parallels with the environmental movement for a moment. In the 1950s, only a few outdoor enthusiasts and scientists were talking about the fragility of the environment. Most people took clean air and clean water for granted. Today, most of know we should recycle and turn out the lights. Our governments monitor and regulate polluters. And companies provide us with a myriad of green product offerings—from organic food to electric cars.

But this change didn’t happen on its own. It took decades of hard work by environmental activists before governments, companies and the general public took the health of the environment seriously as an issue. This hard work paid off. It made the environment a mainstream issue and got us all looking for ways to keep it healthy.

When in comes to the health of the Internet, it’s like we’re back in the 1950s. A number of us have been talking about the Internet’s fragile state for decades—Mozilla, the EFF, Snowden, Access, the ACLU, and many more. All of us can tell a clear story of why the open Internet matters and what the threats are. Yet we are a long way from making the Internet’s health a mainstream concern.

We think we need to change this, so much so that it’s now one of Mozilla’s explicit goals.

Read Mark Surman’s “Mozilla Foundation 2020 Strategy” blog post.

Starting the Debate: Digital Dividends

The World Bank’s recently released “2016 World Development Report” shows that we’re making steps in the right direction. Past editions have focused on major issues like  “jobs.” This year the report focuses directly on “digital dividends” and the open Internet.

According to the report, the benefits of the Internet, like inclusion, efficiency, and innovation, are unequally spread. They could remain so if we don’t make the Internet “accessible, affordable, and open and safe.” Making the Internet accessible and affordable is urgent. However,

“More difficult is keeping the internet open and safe. Content filtering and censorship impose economic costs and, as with concerns over online privacy and cybercrime, reduce the socially beneficial use of technologies. Must users trade privacy for greater convenience online? When are content restrictions justified, and what should be considered free speech online? How can personal information be kept private, while also mobilizing aggregate data for the common good? And which governance model for the global internet best ensures open and safe access for all? There are no  simple answers, but the questions deserve a vigorous global debate.”

—”World Development Report 2016: Main Messages,” p.3

We need this vigorous debate. A debate like this can help make the open Internet an issue that is taken seriously. It can shape the issue. It can put it on the radar of governments, corporate leaders and the media. A debate like this is essential. Mozilla plans to participate and fuel this debate.

Creating A Public Conversation

Of course, we believe the conversation needs to be much broader than just those who read the “World Development Report.” If we want the open Internet to become a mainstream issue, we need to involve everyone who uses it.

We have a number of plans in the works to do exactly this. They include collaboration with the likes of the World Bank, as well as our allies in the open Internet movement. They also include a number of experiments in a.) simplifying the “Internet as a public resource” message and b.) seeing how it impacts the debate.

Our first experiment is an advertising campaign that places the Internet in a category with other human needs people already recognize: Food. Water. Shelter. Internet. Most people don’t think about the Internet this way. We want to see what happens when we invite them to do so.

The outdoor campaign launches this week in San Francisco, Washington and New York. We’re also running variations of the message through our social platforms. We’ll monitor reactions to see what it sparks. And we will invite conversation in our Mozilla social channels (Facebook & Twitter).



Fueling the Movement

Of course, billboards don’t make a movement. That’s not our thinking at all. But we do think experiments and debates matter. Our messages may hit the mark with people and resonate, or it may tick them off. But our goal is to start a conversation about the health of the Internet and the idea that it’s a global resource that needs protecting.

Importantly, this is one experiment among many.

We’re working to bolster the open Internet movement and take it mainstream. We’re building easy encryption technology with the EFF (Let’s Encrypt). We’re trying to make online conversation more inclusive and open with The New York Times and The Washington Post (Coral Project). And we’re placing fellows and working on open Internet campaigns with organizations like the ACLU, Amnesty International, and Freedom of the Press Foundation (Open Web Fellows Program). The idea is to push the debate on many fronts.

About the billboards, we want to know what you think:

  • Has the time come for the Internet to become a mainstream concern?
  • Is it important to you?
  • Does it rank with other primary human needs?

I’m hoping it does, but I’m also ready to learn from whatever the results may tell us. Like any important issue, keeping the Internet healthy and open won’t happen by itself. And waiting for it to happen by itself is not an option.

We need a movement to make it happen. We need you.

The Mozilla BlogMartin Thomson Appointed to the Internet Architecture Board

Standards are a key part of keeping the Open Web open. The Web runs on standards developed mainly by two standards bodies: the World Wide Web Consortium (W3C), which standardizes HTML and Web APIs, and the Internet Engineering Task Force (IETF), which standardizes networking protocols, such as HTTP and TLS, the core transport protocols for the Web. I’m pleased to announce that Martin Thomson, from the CTO group, was recently appointed to the Internet Architecture Board (IAB), the committee responsible for the architectural oversight of the IETF standards process.

Martin’s appointment recognizes a long history of major contributions to the Internet standards process: including serving as editor for HTTP/2, the newest and much improved version of HTTP, helping to design, implement, and document WebPush, which we just launched in Firefox, and playing major roles in WebRTC, TLS and Geolocation. In addition to his standards work, Martin has committed code all over Gecko, in areas ranging from the WebRTC stack to NSS. Serving on the IAB will give Martin a platform to do even greater things for the Internet and the Open Web as a whole.

Please join me in congratulating Martin.

Air MozillaSuMo weekly community call

SuMo weekly community call The Sumo (Support Mozilla)community meet every Monday in the SuMo vidyo channel meetings are about 30 minutes and start at 17:00 UTC

QMOFirefox 45 Beta 3 Testday Results

Hello Mozillians!

As you may already know, last Friday – February 5th – we held a new Testday, for Firefox 45 Beta 3 and it was another successful event!

We’d like to take this opportunity to thank Iryna Thompson, Chandrakant Dhutadmal, Mohammed Adam, Vuyisile Ndlovu, Spandana Vadlamudi, Ilse Macías, Bolaram Paul, gaby2300, Ángel Antonio, Preethi Dhinesh  and the people from our Bangladesh Community: Rezaul Huque Nayeem, Hossain Al Ikram, Raihan Ali, Moniruzzaman, Khalid Syfullah Zaman, Amlan BIswas, Abdullah Umar Nasib, Najmul Amin, Pranjal Chakraborty, Azmina Akter Papeya, Shaily Roy, Kazi Nuzhat Tasnem, Md Asaduzzaman John, Md.Tarikul Islam Oashi, Fahmida Noor, Fazle Rabbi, Md. Almas Hossain, Mahfuza Humayra Mohona, Syed Nayeem Roman, Saddam Hossain, Shahadat  Hossain, Abdullah Al Mamun, Maruf Rahman, Muhtasim kabir, Ratul Ahmed, Mita Halder, Md Faysal Rabib, Tanvir Rahman, Tareq Saifullah, Dhiman roy, Parisa Tabassum, SamadTalukdar, Zubair Ahmed, Toufiqul haque Mamun, Md. Nurnobi, Sauradeep Dutta, Noban Hasan, Israt  jahan, Md. Nazmus Shakib (Robin), Zayed News, Ashickur Rahman, Hasna Hena, Md. Rahimul islam, Mohammad Maruf Islam, Mohammed Jawad Ibne Ishaque, Kazi Nuzhat Tasnem and Wahiduzzaman Hridoy for getting involved in this event and making Firefox as best as it could be.


Also a big thank you goes to all our active moderators.

Keep an eye on QMO for upcoming events!

Firebug BlogFirebug 2.0.14

The Firebug team released Firebug 2.0.14. This is a maintenance release ensuring compatibility with latest Firefox releases.


Firebug 2.0.14 is compatible with Firefox 30 – 46

Firebug 2.0.14 fixes the following issues: 7954, 7964, 7961, 7956.


We blogged last year about our effort to unify Firefox Developer tools and Firebug and we’ve made good progress since then. Now it’s time for the next step read more


Please post feedback in the newsgroup, thanks.

Jan ‘Honza’ Odvarko


Firebug BlogMerging Firebug into the built-in Firefox Developer Tools

We blogged last year about our effort to unify Firefox Developer tools and Firebug and we’ve made good progress since then. Now it’s time for the next step…

We’ve been working hard on refactoring existing Firebug 2 features and extensions so, they work together with new Firefox built-in developer tools and support recent platform changes like the new multi-process architecture (a.k.a ‘e10s’).

Many Firebug features have already been added to the built-in tools, and several Firebug extensions have been ported to be Firefox addons:


We’ve been also working on a follow-up Firebug 3 (a.k.a extension that allows us to test features before we land them in Firefox. Firebug 3 contains further popular Firebug features like XHR Console Inspector (aka XHR Spy) and a DOM panel for Document-object-model inspection.


The best part of this extension is a new Firebug theme (in addition to existing Light and Dark themes) so, Firebug users can feel like home when switching into Firefox built-in tools.

Beta version of is available for download.


Note that the XPI is not signed and so, you need to flip xpinstall.signatures.required to false to allow installation.


Here is a screenshot showing Firebug theme in action:

DOM panel
(yes, this is built-in devtools toolbox, not Firebug!)


The work on the theme has helped us support existing Firebug users, and also make sure that theme APIs are extensible enough and ready for developers who want to build themes.


Firebug 2 doesn’t work in multi-process browsers (i.e. e10s) and converting it is too complex, it will stop working when e10s is activated in Firefox.

We want to be ready when Firebug 2 stops working and we have come up with the following plan.

  • Integrate all Firebug 3 features into Firefox built-in tools and forward all Firebug users to it.
  • Replace Firebug 2 by releasing Firebug 3 (on AMO) only if we have to deliver any critical features missing in Firefox developer tools in an extension.


We are currently working on porting XHR Inspector (bug 1211525), DOM panel (bug 1201475) and Firebug theme (bug 1244054).

Don’t worry if you want to run multi-process browser (DevEdition or Nightly) now. We have introduced transition path that will allow you to move from Firebug 2 to built-in DevTools. See the following screenshot (Firebug 2.0.14).

Firebug running in multi-process browser message

This notification message appears if you are running Firebug 2.0.14 in multi-process Firefox. It allows to open built-in Developer Tools or choose to disable e10s and keep Firebug.

Happy debugging!


Jan Honza Odvarko (Firebug Working Group)
Joe Walker (Firefox Developer Tools)



The Bugzilla UpdateBugzilla Project Meeting Wednesday, July 17th, at 14:00 UTC

Much of this post is taken from a message I posted to the developers list a few days ago, so my apologies in advance to anyone reading it again. I’ve expanded on a few things and added the information about the upcoming meeting, so it’s probably worth re-reading.

For those unaware of the context, Frédéric Buclin last week announced that he was stepping down from his Assistant Project Manager position after 9 years.

To Frédéric: Thanks again (and again!) for all your hard work over the years! As stretched as I’ve been for time myself it has been a true godsend to have you picking up my slack the last few years. You will be missed!

To everyone else: For the time being, I’ll be handling approval requests, so if you have something up for approval and it’s not getting attention, I’m the one to pester.

This is sort of the end of an era for the Bugzilla project… Both Frédéric and Max (who left to work at Google a couple years ago and stepped down from his position earlier this year for lack of time) have been with the project for much longer than most people ever stick with a single employer in IT-related jobs (of which an open source project of this magnitude has a lot of similarities). For an open source project, that’s outright amazing, as people tend to come and go a lot in most projects. It’s kind of surprising that I’ve been around longer than them, but I’m kind of a “lifer” in some ways, and in reality I’ve had a good break from the project for the last few years because Max and Frédéric have been mostly taking care of everything while I’ve been busy with other things.

So it’s time to begin a new era. Since I’ve had a good break to clear the monotony I’m going to be trying to get more involved myself again (which I’ve been saying ever since Max left, but I have a lot more incentive now). I’d also like to kickstart a new team to lead the project, and kind of re-organize if you will. We have a number of positions within the project for various functions, which we’ve never really paid attention to as people moved on. So some questions we’ll be asking at our upcoming meeting are:

  • What positions in our existing structure do we have open?
  • Do we still need them all?
  • Are there new positions we have a need for that we should create?
  • Who should fill them?
  • Do the existing holders of positions that we still need and haven’t been vacated want to keep doing them?

We also have some other “reinventing the project” type topics while we’re at it. There’s a number of things we’ve been talking about doing for a long time that we never really moved on, and some of the big elusive dreams (the big UI overhaul!) have actually been making progress as well, lately. When we’re in the middle of big changes like this, I think it’s a good time to review where we are, get everyone on the same page, and tackle some of these things we keep talking about.

We also have a lot of new useful technology at our disposal since the last time we had a project meeting. We’re going to experiment with using Google Hangouts for the meeting this time, and using their feature to stream the Hangout via YouTube for those who want to watch without participating. We’ll also keep our usual meeting IRC channel open so people who don’t have a Google+ account and don’t want to get one can still participate and ask questions via IRC.

The preliminary agenda and participation instructions have been posted at The meeting will be held on Wednesday, July 17th, at 14:00 UTC. And before anyone complains about the time, this was the best time to avoid inconveniencing the largest number of people. The Bugzilla Project has a global pool of contributors, and we have active contributors in a wide variety of time zones. The time chosen puts the meeting in the middle of the night for the fewest number of people. Those on the west coast in the US will probably have to get up a little early, and those in eastern Australia will be up a little later.

A lot of the emails and comments I’ve gotten since Frédéric’s announcement have been really positive, so I’m encouraged by the number of people who are still committed to keeping Bugzilla vibrant! We’ll see you at the meeting on Wednesday!

SeaMonkeyDon’t ask what SeaMonkey can do for you, but what you can do for your SeaMonkey

Innoffizielle BuildsDespite all big problems, we have a first unofficial  2.44a1 SeaMonkey Build – even localized with several languages :-)

Please use this unofficial build for intensive tests, but be careful, create a backup of your User Profile before you start!

Most functions work fine for me, but:

Only for testing, you will use those builds on your own risk.

WANTED! Tot oder Lebendig. Große Belohnung!

WANTED! Dead or alive! Valuable Reward!

Who will submit the  second Bug for this build? Or confirm the first one?

The reporter of the first valid regression bug will receive a  coffee mug from the SeaMonkey shop — besides  a shoutout  on all communication channels.   :-)

The Coffee Mug Competition:
The goal is to interest new volunteers in SeaMonkey QA.  So well known key players like developers with more than 4 pushed fixes (for all Mozilla), supporters from  SeaMonkey:Supporters, Council-members, other users listed at dev/project-areas, /Modules/All#SeaMonkey (all: state 06.02.2016 08:00 UTC)  or users with more than 50 “touched” Bugs on Mozilla.Bugzilla will not be eligible. I will donate the coffee mug, and so I will decide who the award winner will be. The competition will run until the first valid 2.44a regression bug will have been reported by an eligible user, but not longer than until 20103-06 24:00 UTC. The decision will be final!  Good luck!


Mozilla Add-ons BlogHi, I’m Your New AMO Editor

jetpackYou may have wondered who this “Scott DeVaney” is who posted February’s featured add-ons. Well it’s me. I just recently joined AMO as your new Editorial & Campaign Manager. But I’m not new to Mozilla; I’ve spent the past couple years managing editorial for Firefox Marketplace.

This is an exciting deal, because my job will be to not only maintain the community-driven editorial processes we have in place today, but to grow the program and build new endeavors designed to introduce even more Firefox users to the wonders of add-ons.

In terms of background, I’ve been editorializing digital content since 1999 when I got my first internet job as a video game editor for the now-dead That led to other editorial gigs at DailyRadar, AtomFilms, Shockwave, Comedy Central, and iTunes (before all that I spent a couple years working as a TV production grunt where my claim to fame is breaking up a cast brawl on the set of Saved by the Bell—The New Class; but that’s a story for a different blog.)

I’m sdevaney on IRC, so don’t be a stranger.

Mozilla Add-ons BlogAdd-on Compatibility for Firefox 45

Firefox 45 will be released on March 8th. Here’s the list of changes that went into this version that can affect add-on compatibility. There is more information available in Firefox 45 for Developers, so you should also give it a look.





  • Firefox is currently enforcing add-on signing, with a preference to override it. Firefox 46 will remove the preference entirely , which means your add-on will need to be signed in order to run in release versions of Firefox. You can read about your options here.


  • Support a simplified JSON add-on update protocol. Firefox now supports a JSON update file for add-ons that manage their own automatic updates, as an alternative to the existing XML format. For new add-ons, we suggest using the JSON format. You shouldn’t immediately switch for older add-ons until most of your users are on 45 and later.

Let me know in the comments if there’s anything missing or incorrect on these lists. If your add-on breaks on Firefox 45, I’d like to know.

The automatic compatibility validation and upgrade for add-ons on AMO will happen in the coming weeks, so keep an eye on your email if you have an add-on listed on our site with its compatibility set to Firefox 44.

Mozilla Web DevelopmentExtravaganza – February 2016

Once a month, web developers from across Mozilla get together to talk about the work that we’ve shipped, share the libraries we’re working on, meet new folks, and talk about whatever else is on our minds. It’s the Webdev Extravaganza! The meeting is open to the public; you should stop by!

You can check out the wiki page that we use to organize the meeting, or view a recording of the meeting in Air Mozilla. Or just read on for a summary!

Shipping Celebration

The shipping celebration is for anything we finished and deployed in the past month, whether it be a brand new site, an upgrade to an existing one, or even a release of a library.

Git Submodules are Gone from MDN

First up was jezdez with news about MDN moving away from using git submodules to pull in dependencies. Instead, MDN now uses pip to pull in dependencies during deployment. Hooray!

Careers now on AWS/Deis

Next was giorgos who let us know that has moved over to the Engagement Engineering Deis cluster on AWS. For deployment, the site has Travis CI build a Docker image and run tests against it. If the tests pass, the image is deployed directly to Deis. Neat!

Privacy Day

jpetto helped ship the Privacy Day page. It includes a mailing list signup form as well as instructions for several platforms on how to update your software to stay secure.

Automated Functional Testing for

agibson shared news about the migration of previously-external functional tests for to live within the Bedrock repository itself. This allows us to run the tests, which previously were run by the WebQA team against live environments, whenever the site is deployed to dev, stage, or production. Having the functional tests be a part of the build pipeline ensures that developers are aware when the tests are broken and can fix them before deploying broken features. A slide deck is available with more details.

Peep 3.x

ErikRose shared news about the 3.0 (and 3.1) release of Peep, which helps smooth the transition from Peep to Pip 8, which now supports hashed requirements natively. The new Peep includes a peep port command for porting Peep-compatible requirements files to the new Pip 8 format.

Open-source Citizenship

Here we talk about libraries we’re maintaining and what, if anything, we need help with for them.


jezdez shared news about JazzBand, a cooperative experiment to reduce the stress of maintaining Open Source software alone. The group operates as a Github organization that anyone can join and transfer projects to. Anyone in the JazzBand can access JazzBand projects, allowing projects that would otherwise die due to lack of activity thrive thanks to the community of co-maintainers.

Notable projects already under the JazzBand include django-pipeline and django-configurations. The group is currently focused on Python projects and is still figuring out things like how to secure releases on PyPI.

django-configurations 1.0

Speaking of the JazzBand, members of the collective pushed out the 1.0 release of django-configurations, which is an opinionated library for writing class-based settings files for Django. The new release adds Django 1.8+ support as well as several new features.


The Roundtable is the home for discussions that don’t fit anywhere else.

Travis CI Sudo for Specific Environments

Next was ErikRose with an undocumented tip for Travis CI builds. As seen on the LetsEncrypt travis.yml, you can specify sudo: required for a specific entry in the build matrix to run only that build on Travis’ container-based infrastructure.

Docker on OS X via xhyve

Erik also shared xhyve, which is a lightweight OS X hypervisor. It’s a port of bhyve, and can be used as the backend for running Docker containers on OS X instead of VirtualBox. Recent changes that have made this more feasible include the removal of a 3 gigabyte RAM limit and experimental NFS support that, according to Erik, is faster than VirtualBox’s shared folder functionality. Check it out!

If you’re interested in web development at Mozilla, or want to attend next month’s Extravaganza, subscribe to the mailing list to be notified of the next meeting, and maybe send a message introducing yourself. We’d love to meet you!

See you next month!

Web Application SecurityMozilla Winter of Security-2015 MozDef: Virtual Reality Interface

Mozilla runs Winter of Security (MWoS) every year to give folks an opportunity to contribute to ongoing security projects in flight. This year an ambitious group took on the task of creating a new visual interface in our SIEM overlay for Elastic  Search that we call MozDef: The Mozilla Defense Platform.

Security personnel are in high demand and analyst skill sets are difficult to maintain. Rather than only focusing on making people better at security, I’m a firm believer that we need to make security better at people. Interfaces that are easier to comprehend and use seem to be a worthwhile investment in that effort and I’m thrilled with the work this team has done.

They’ve wrapped up their project with a great demo of their work. If you are interested in security automation tools and alternative user interfaces, take a couple minutes and check out their work over at air mozilla.


Air MozillaMozilla Winter of Security-2015 MozDef: Virtual Reality Interface

Mozilla Winter of Security-2015 MozDef: Virtual Reality Interface MWOS Students give an awesome demo of their work adding a unique interface to MozDef: The Mozilla Defense Platform.

Meeting NotesChannel: 2016-02-04


calixte, andrei, ninu, ritu, liz, jorge, florin, brad, mtabara, ryanvm, teodora, mihaip, ioana,cornel, ada, ioana petruta

Schedule Update

  • 44.0.1
    • Hotfix is too risky (fixes bug 1242176)
    • A few ride along:
      • 1244505 – Firefox 44 no longer allows spaces in cookie names, breaking some apps FIX READY
      • 1222171 – “GraphicsCriticalError: |[0][GFX1]: Unknown cairo format 3” on startup on Linux machine with VNC “screen” FIX READY
      • 1244069 – Fix minimum requirement to NSS 3.21 FIX READY
      • 1243237 – DNS failure w/ upgrade to 44.0 UNDER INVESTIGATION
      • 1243914 – Firefox 44 never opens on my Windows 7, downgrading fixes the issue UNDER INVESTIGATION
      • 1243549 – When I run (launch, open…) Firefox for the first time during a session I get a blank page instead of my usual home page UNDER INVESTIGATION


  • [Bug 1241237] Silverlight block applied for Windows, block for Mac upcoming.


Aurora / Dev Edition


  • Overall rate: 1.4 – browser 1.2, content 0.2 – red
  • bug 1231024 (js::jit::BacktrackingAllocator::splitAt) is 6% of non-e10s 45.0b2 crashes, and #1 Top Crash Score, fix should be in for b3
  • bug 1232229 (FinalizeTypedArenas) is 3.6%, more instrumentation on Nightly to find out about this
  • bug 1245674 (mozilla::dom::Promise::AppendCallbacks, places shutdown) is 1.8%
  • plugin crash spike seems to be pretty much one Flash signature, related to Async Drawing, Adobe is investigating, see bug 1245200
  • bug 1210099 (e10s, Skype+Avast) is not large in stats any more now that we disabled e10s for Skype CtP users


  • Overall rate: 0.95 – green
  • relase is back to the borderline green/yellow line, difference to when it was firmly green is mostly a rise in shutdownhangs over the last 6 weeks
    • this situation could be potentially helped by bug 913822, which just landed for 45.0b3
  • bug 916762 and bug 1222933 still #1 and #2 Top Crash Score, bug 1222171 uplift should fix the former in a dot-release



  • [Andrei] We intend to kick off e10s testing next week.

Mobile (Ioana )

Read only more:

Post-Mortem (Tues 2wks from GA Release)=

Channel Meeting Details

Video/Teleconference Details – NEW

  • 650-903-0800 or 650-215-1282 x92 Conf# 99951 (US/INTL)
  • 1-800-707-2533 (pin 369) Conf# 99951 (US)
  • Vidyo Room: Release Coordination
  • Vidyo Guest URL

hacks.mozilla.orgTrainspotting: Firefox 44

Trainspotting is a series of articles highlighting features in the lastest version of Firefox. A new version of Firefox is shipped every six weeks or sometimes eight– we at Mozilla call this pattern “release trains”.

It’s a new year, and of course there’s a new Firefox! Let’s take a look at some of the goodies inside the latest update.

ServiceWorkers and Web Push

ServiceWorkers and Web Push are two truly transformational web technologies, because they enable web pages and web applications to do things that were simply not possible before. ServiceWorkers allow a website to register a script that can intercept navigation requests, cache assets and data offline, and run even when the webpage isn’t open! This allows for more responsive UIs, better offline support, and lays the groundwork for more application-grade experiences.

A working test notification! Hooray!

Web Push builds on top of ServiceWorkers and, with user consent, allows web content to receive push notificatons from a server and to trigger system notifications that can return a user to the page, even after they’ve closed the browser tab.

There’s a lot to say about each of these technologies- more than I can cover here. If you’re interested in learning more about ServiceWorkers and Web Push or want to start experimenting, here are some resources:

Design Tools in Firefox

Diagram of a submarine with Developer Tools labeled on it

We’re going to need a bigger boat. Firefox 44 puts an emphasis on designer productivity tools with a fantastic animation inspector to complement existing style tools. Climb aboard the DevTools Challenger to learn about these tools, and explore both the deep ocean as you learn how to inspect animations, live-edit keyframes, tweak CSS filters, and more.

More DevTools Goodness

In addition to the aquatic wonders and animation tools, there are other great changes and additions to the Firefox Developer Tools.

WebSocket Debugging

WebSocket debugging is now available as an API in the Developer Tools. While an official UI is under development, you can start debugging WebSockets today with a purpose-built extension.

Use Logged Object in the Web Console

Assigning a logged object to a temporary variable using the Web Console

If you’d like to manipulate or more deeply inspect an object logged in the console, you can now assign it to a temporary variable via the context menu.

Dive Deeper

There’s lots more to love for developers and users alike in Firefox 44- check out the full release notes or view the list of developer-facing changes. Keep on rocking the free Web!

Mozilla Add-ons BlogFebruary 2016 Featured Add-ons

Pick of the Month: Proxy Switcher

by rNeomy
Access all of Firefox’s proxy settings right from the toolbar panel.

“Exactly what I need to switch on the fly from Uni/Work to home.”

Featured: cyscon Security Shield

by patugo GmbH
Cybercrime protection against botnets, malvertising, data breaches, phishing, and malware.

“The plugin hasn’t slowed down my system in any way. Was especially impressed with the Breach notification feature—pretty sure that doesn’t exist anywhere else.”

Featured: Decentraleyes

by Thomas Rientjes
Evade ad tracking without breaking the websites you visit. Decentraleyes works great with other content blockers.

“I’m using it in combination with uBlock Origin as a perfect complement.”

Featured: VimFx

by akhodakivkiy, lydell
Reduce mouse usage with these Vim-style keyboard shortcuts for browsing and navigation.

“It’s simple and the keybindings are working very well. Nice work!!”

Featured: Saved Password Editor

by Daniel Dawson
Adds the ability to create and edit entries in the password manager.

“Makes it very easy to login to any sight, saves the time of manually typing everything in.”

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.

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

SUMO BlogWhat’s up with SUMO – 4th February

Hello, SUMO Nation!

Last week went by like lightning, mainly due to FOSDEM 2016, but also due to the year speeding up – we’re already in February! What are the traditional festivals in your region this month? Let us know in the comments!

Welcome, new contributors!

If you just joined us, don’t hesitate – come over and say “hi” in the forums!

Contributors of the week

  • Philipp – for his continuous help with Firefox Desktop and many other aspects of Mozilla and SUMO – Vielen Dank!

We salute you!

Don’t forget that if you are new to SUMO and someone helped you get started in a nice way you can nominate them for the Buddy of the Month!

Most recent SUMO Community meeting

The next SUMO Community meeting…

  • is happening on Monday the 8th of February – join us!
  • Reminder: if you want to add a discussion topic to the upcoming meeting agenda:
    • Start a thread in the Community Forums, so that everyone in the community can see what will be discussed and voice their opinion here before Monday (this will make it easier to have an efficient meeting).
    • Please do so as soon as you can before the meeting, so that people have time to read, think, and reply (and also add it to the agenda).
    • If you can, please attend the meeting in person (or via IRC), so we can follow up on your discussion topic during the meeting with your feedback.




Support Forum

Knowledge Base


  • Please check the for iOS section below for an important announcement!


And that’s it – short and sweet for your reading pleasure. We hope you have a great weekend and we are looking forward to seeing you on Monday! Take it easy and keep rocking the helpful web. Over & out!

Air MozillaWeb QA Weekly Meeting, 04 Feb 2016

Web QA Weekly Meeting This is our weekly gathering of Mozilla'a Web QA team filled with discussion on our current and future projects, ideas, demos, and fun facts.

Air MozillaReps weekly, 04 Feb 2016

Reps weekly This is a weekly call with some of the Reps to discuss all matters about/affecting Reps and invite Reps to share their work with everyone.

Meeting NotesMobile: 2016-02-03


Topics for This Week

Friends of the Mobile Team

Give a shoutout/thanks to people for helping fix and test bugs. Make sure friends also get awarded a badge. New contributors are highlighted in bold. Want to update this section?

  • Mark Capella [:capella] fixed bug 1235510 – Remove obsolete robocop tests for SelectionHandler routines
  • Mark Capella [:capella] fixed bug 1240286 – Deleting text with backspace causes the action bar to glitch
  • Maurya Talisetti fixed bug 1242352 – Add license header to DownloadContentService
  • Nathan Toone [:toonetown] fixed bug 1243931 – Search activity doesn’t work when used from a library
  • Scott Johnson (:jwir3) fixed bug 870788 – reflow-on-zoom should reflow each subdocument as a separate event
  • Scott Johnson (:jwir3) fixed bug 872139 – Slow down zoom animation for reflow on zoom
  • malayaleecoder fixed bug 1241846 – Remove unused sync xml resources

Team Updates

Android platform

snorp, jchen, rbarker, esawin, droeh

Android front-end

margaret, liuche, mcomella, sebastian, ahunt (nalexander/rnewman)

  • Continuing to work on crash bugs
  • Core telemetry ping landed, but the server is not currently receiving pings (update from Mike?)
  • Downloadable fonts blocked on SSL cipher suite regression
  • Bouncer APK almost ready to land (blocked on build peer review)
  • EOL gingerbread in 47-48 timeframe (notify users in 47)
  • Removing WebRT in 47-48 timeframe (Myk is leading this effort)
  • Working on Switchboard documentation (config change deploys currently blocked on cloud services, should be resolved today)
  • Push is moving ahead, first patches out to rnewman and sebastian for review
  • Building with Gradle in automation is getting closer, blog post in the works


st3fan, bkmunar, bnicholson, fluffyemily, jhugman, sleroux

Builds & Releases

Development Updates


darrin, tecgirl, antlam, gemma

  • General
    • Hiring/interview prep
  • Android
    • RV/RL & Bookmarks MVP
    • Notifications
    • Bugs: language, text-handles and action bar, URL bar favicons and TLD
    • Meeting with Add-ons team
  • iOS
    • Cont’d Menu designs
    • Cont’d Today Widget designs
    • Web panel prototyping


Feature Focus


  • Wednesdays – 9:30am Pacific, 12:30pm Eastern, 16:30 UTC
  • Dial-in: conference# 99998
    • People with Mozilla phones or softphones please dial x92 Conf# 99998
    • US/Toll-free: +1 800 707 2533, (pin 369) Conf# 99998 (max 48 users at any time)
    • US/California/Mountain View: +1 650 903 0800, x92 Conf# 99998
    • US/California/San Francisco: +1 415 762 5700, x92 Conf# 99998
    • US/Oregon/Portland: +1 971 544 8000, x92 Conf# 99998
    • CA/British Columbia/Vancouver: +1 778 785 1540, x92 Conf# 99998
    • CA/Ontario/Toronto: +1 416 848 3114, x92 Conf# 99998
    • UK/London: +44 (0)207 855 3000, x92 Conf# 99998
    • FR/Paris: +33 1 44 79 34 80, x92 Conf# 99998
    • or, for some clients, (may not work for all rooms)
    • Gmail Chat (requires Flash and the Google Talk plugin): paste +1 650 903 0800 into the Gmail Chat box that doesn’t look like it accepts phone numbers
    • SkypeOut is free if you use the 800 number
  • #mobile for backchannel
  • Mobile Vidyo Room

WebmakerWeb Literacy Skills For Library Staff Project Kick-Off

  • adapt and refine Mozilla’s Web Literacy skills, curriculum, tools, and resources for public library staff and pilot in 5 public library systems and one library school of information;
  • connect and convey these  core web literacy skills with digital badges; and
  • develop a strategy for scale to other public libraries across the country.

At the launch meeting held in Washington DC, the project advisory board —consisting of representatives of IMLS, Mozilla, and an impressive group of experts in digital literacy, professional development, other kinds of innovative work and learning in libraries—came together to guide and shape the project. The meeting began with a spectrogram activity that allowed us to surface and discuss different/similar beliefs, ideas, and concerns about web literacy and libraries.

The advisory board had the opportunity to learn more about Mozilla’s mission, goals, and resources for learning and teaching web literacy skills. The discussions that emerged were rich and engaging. Key recommendations include: 1) keeping the primary purpose of the training in this project focused on equipping library staff with web literacy skills, and teaching to others secondary, and 2) presenting badges as connectors and an option, and not the driving force for professional development.

Opportunities and Challenges

We brainstormed opportunities and challenges to be aware of as we shape the project. A few opportunities discussed:

  • Creating opportunities for librarians to become expert curators of content and online learning experiences
  • Providing library schools information graduates (and graduates from other programs working as library professionals) the opportunity to learn new technologies, and how to scan the environment for new technologies
  • Leveraging membership associations as entities that can provide professional development opportunities to their member organizations and their individual library staff members
  • Connecting to existing certifications provided by state library systems
  • Equipping often under-resourced human resource departments with quality open source learning opportunities for staff

Challenges surfaced include:

  • Engaging unionized workers as partners in empowering staff to develop new skills
  • Empowering staff to gain new and update existing skills
  • Finding time to learn new skills
  • Establishing a culture of lifelong learning for the library profession
  • Navigating the decentralized nature of library systems

Screen Shot 2016-02-03 at 6.16.58 PM

Next Steps

Board members joined three subcommittees: pilot selection, evaluation, and scale/sustainability.  The immediate next step is  finalizing the selection criteria for pilots which will adapt and co-create with Mozilla open source web literacy curricula to develop training, tools and credentials for staff in public libraries. The potential to collaborate with Mozilla provides library staff the opportunity to be leaders, innovators, and advocates. Criteria will include:

  • Diversity of staff in geographic distribution as well as diversity of experience, knowledge, and specializations
  • Diversity of types of systems (e.g., rural/urban, main/branch, union/nonunion, consortia/non-consortia)
  • Buy-in from the library leadership
  • Willingness to contribute, refine and remix curriculum and tools
  • Willingness to share experiences with other sites and collaborate as a group

The meeting concluded with a thoughtful discussion about scale and sustainability with several themes emerging:

  • Leveraging opportunities for building the web literacy competencies into the professional development and credentials for library staff
  • Reaching out to organizations and leaders who should be engaged and/or informed of the project and its goals
  • Building on existing infrastructures and levers, such as associations, brands, library information schools, and current assessment tools
  • Understanding challenges of technology infrastructures
  • Engaging future leadership now for long-term benefits


Air MozillaThe Joy of Coding - Episode 43

The Joy of Coding - Episode 43 mconley livehacks on real Firefox bugs while thinking aloud.

hacks.mozilla.orgHTML 5 game development video series

Do you want to develop a game? Here’s an introductory video series to get you started on HTML 5 game development!

Why HTML 5

The first video offers some reasons to consider making a game for the web: the power of having no friction in distribution, the freedom from siloed marketplaces, the choice of tools and APIs that are available to you, etc.

Engines and libraries

The second video provides an overview of the current engines and libraries you can use to create your game. We cover pure JavaScript libraries (such as Phaser) as well as multi-platform engines that can export to HTML 5 (such as Unity).

Firefox developer tools

Next in series, we have a hands-on video that shows how to use the developer tools in Firefox Developer Edition to debug and profile your game. Modifying code on the fly, adapting our game to different screen sizes, debugging… it’s all here!

Tips for game jams

Last, there is a video for all of you joining a game jam –these competitions where you develop a game over a weekend. I have participated in many, and I know first-hand how hard and challenging game jams are! I hope these tips might be of help.

And don’t forget, if you create an HTML 5 game, tell us about it here. I’d love to play it!

Webmaker“Open world, open web”

This past weekend, over fifty teens joined mentors, sponsors, and judges for the first ever SPARK Hackathon at St. Anne’s-Belfield School (STAB) in Charlottesville, VA. Participants came from six different area high schools and formed teams to tackle real-world problems posed by sponsors, including Mozilla. Every team did amazing work and the consensus among the judges and mentors seemed to be that the quality of work produced by hackathon attendees rivaled that of undergraduate students working in areas like computer science and biomedical engineering.

The SPARK Hackathon crew

The SPARK Hackathon crew, by STAB

We challenged students to create a “Fight for the Open Web” adventure, map, or mod inside the insanely popular, open-world, sandbox game, Minecraft. With over 70 million copies sold, Minecraft is both a cultural and educational phenomenon. Players can progress from simple, “vanilla” gameplay to run their own servers, build their own maps, and code their own mods for the game that add new assets and functionality. Players share their creations online, so we’re deeply curious about how we can use Minecraft to educate – and activate – its community around issues of freedom, privacy, and web literacy.

Our problem had three parts.

  1. What is the Open Web?
  2. What challenges does it face?
  3. How can those challenges be built as gameplay and story in Minecraft?

Before students split into problem-based teams, they had a chance to meet with each sponsor, ask questions about each problem, and share their ideas for solutions. I heard so many sharp ideas during this round-robin briefing that I knew we would have fantastic work to share coming out of the hackathon. Students suggested:

  • Using the Minecraft UI to represent the player’s information security, so that higher levels make a character more difficult to track or hit.
  • Making a character become increasingly transparent as his or her privacy and security stats rise.
  • Using dynamic signs to ‘publish’ information about characters’ inventories, locations, and stats inside the game, and then letting players craft items and gain levels that hide their information from the signs.
  • Building persistent cookies that players receive for accepting free items inside the game and making it so that each cookie permanently occupies inventory space, limiting players’ resource management.
  • Using portals to other zones – like “the Ender Zone” and “the Nether” – as ISP gateways and hubs.
  • Using ‘mobs’ – or monsters from the game – as cookies that surround and follow the player instead of attacking him or her, making it difficult to fit through small passages.

    Spider cookie

    Spider cookie

  • Using foot races along parallel paths to illustrate throttling by filling one path with blocks that slow character movement (such as webs or “Soul Sand”) and by using command blocks to apply the “Swiftness” effect to characters who pay diamonds, emeralds, or gold nuggets to use the faster path.
  • Creating a map with more freedom, but fewer resources, the further you travel away from a highly regulated central zone full of pay-to-play mini-games and surveillance measures.

Out of those brainstorming and Q&A sessions, two groups of six formed around our problem.

Both groups characterized the Open Web as a place where people came together to work and share without losing their sense of privacy or being watched by companies or governments. Without any help from mentors, our students identified the major challenges facing the Open Web as:

  • Threats to Net Neutrality and zero-rating.
  • Pay-to-play schemes.
  • Censorship and walled gardens.
  • Surveillance.

Then each group began to build. As one student put it, they had to make an experience about the Open Web “without being terrible like educational games.” The big idea, again, coming from one of our participants, was to create a game that made one thing clear: “Open world, open web.”

Team Open World at work

Team Open World at work, by STAB

Despite the pressures you’d expect to feel at a 2-day hackathon ending with 3-minute presentations, both teams delivered short demos of gameplay. Using Minecraft’s creative mode, cheats, and command blocks (think of chains of JSON-powered processors), our team members built their own in-game development environments and opened their adventure-maps to the local network for testing.

Command blocks chained together

Command blocks chained together

Inside a command block

Inside a command block

Our first team to present, team Open World, created a 50-second trailer showing off four areas of their game.

  1. In Level One, players have 120 seconds to do whatever they want in a fully-featured Minecraft world.
  2. Then a command block triggers and transports players to an all-clay version of the same world. This is the pay-to-play level. Players can move around, but they can only harvest colored clay; none of the blocks are made of the game’s other necessary resources such as wood or stone.
    Command blocks in the clay world

    Command blocks in the clay world

    Players have to complete tasks in this level to earn enough credits to get to a desert level with better resources. Once the credits have been collected, another command block triggers sending players to the desert level.

  3. The desert level has sand and cacti and a few other resources, but players still lack the tools needed to harvest most blocks. Those tools are hidden – or “censored,” as the group put it – in temples scattered around the map. Players have to find the temples and then use their platforming skills to jump from block to block across seas of lava to get to the tools they can use to harvest the materials they need to get to the next level. The blocks shift and move thanks to pistons hidden beneath them, representing the terms of service that limit user access to the Web.

    Inside the desert temple

    Inside the desert temple

  4. Finally, after players collect enough resources from the desert level, a command block transports them to a snow level in which floating eyes coded into the sky follow them wherever they go.
    Eyes in the sky

    Eyes in the sky

    This is the surveillance level. Players have to find the surveillance command center and shut it down. When they do, they’re transported back to a platform in the sky of the the fully-featured Minecraft world from which they can see that each level was right next to the other, but built inside a dome – or walled garden – that made it easier to limit their movement. From here, players can break the other domes and restore the connections between all the parts of the game world.

It was awesome. So was Team AddressB00kxd’s presentation, a live demo of game-play inside the group’s map. In AddressB00kxd’s game

  1. Players begin outside a home surrounded by an insurmountable firewall – a wall of wool blocks set alight that isolates their home from the rest of the map.

    The firewall

    The firewall

  2. Players enter the house and approach a computer. A trap door drops them into a stylized version of the Internet along a tube uses command blocks to shoot sparks.

    Moving through the Internet

    Moving through the Internet

  3. The tube leads to the Minecraft Surveillance Agency, in which players have to navigate a labyrinth to reach the King of Surveillance, defeat him, and receive an key (a lever, in the game) that lets players shut down the command blocks powering part of the firewall.
  4. Activating a key extinguishes one side of the firewall and reveals the path to the next challenge or level that players have to defeat to take down another part of the wall.
Presenting at SPARK

Presenting at SPARK

The prototypes our groups presented delivered everything I hoped for from the event. With minimal big picture coaching on the Open Web and targeted technical help from a few mentors, our teams captured their ideas about online freedom, openness, and privacy. They left me certain that with more time – and by participating in more events like this – we can develop a compelling, fun, and fascinating “Fight for the Open Web” experience on platforms like Minecraft that reach millions of young people worldwide. Look for a lesson plan (of sorts) soon.

The most on-point laptop stickers at SPARK

The most on-point laptop stickers at SPARK

By the end of the SPARK Hackathon, I felt inspired and humbled by the work of everyone involved. I can’t wait to do more work like this again – let me know if I can help you and yours hack on Minecraft and the Open Web!

Meeting NotesFirefox Status: 2016-02-02

Actions from last meeting

  • None

General Topics / Roundtable

(tips/tricks/FYI, productivity improvements, industry news)

Friends of the Firefox team

(Give a shoutout/thanks to people for helping fix and test bugs. Introductions)

  • Paul Goldberg – for reporting bug 1242176 and repeatedly rolling back to old Firefox versions to redo the upgrade to Fx44 and collecting diagnostic information. This was hotfixed on Friday.
    • …and MattN for helping to jump on the investigation and get a hotfix done quickly!
  • Resolved bugs (excluding employees):
    • More than one bug fixed:
      • Masatoshi Kimura [:emk]
      • chaithanya

Project Updates



  • [mconley] Telemetry experiment is underway!
    • e10s is enabled for a subset of the beta population (with and without add-ons)
    • I believe the primary goal of this first experiment is to get a sense of which add-ons hurt us e10s the most
  • A second experiment will be shipped that measures performance and stability for a subset of the beta population that has no add-ons whatsoever
    • I believe this will be used to help inform / bolster a go-nogo for 46 for users without add-ons.
  • [mconley] Please be vigilant about filing (or bumping) any potential e10s blocker bugs, because (modulo perf or stability regressions from the experiment) we seem to be approaching the end of the runway for v1. \o/
  • [felipe] e10s tests:
    • areas that need focus
      • browser-chrome
        • browser/base/content/test/general
        • social, customizableui, downloads
      • mochitest-plain
        • toolkit/components => contentprefs, passwdmgr, prompts, satchel, urlclassifier


  • No-one at meeting today
  • Working towards FF 45 release
    • getting latest versions of the add-on landed and uplifted,
    • preparing to test out updates Hello add-on via the Go Faster system


view-source is no longer linkable from web content. This isn’t really a “web feature” so shouldn’t be impacting sites.

  • if you do see issues, please file a bug blocking bug 1172165
  • First-run notifications (UI tour) for tracking protection in normal mode are now enabled.
  • Main focus in 47 is malware download prevention.


  • General bugfixing and stability work.

Quality of Experience

Current work area: Bug 1229599 – [Tracker] Make onboarding great

  • Bookmarks UI improvements are ongoing
  • Onboarding improvements are also still ongoing
  • Default-browser funnelcake shows very little difference in retention between default users and non-default users

Meeting NotesSeaMonkey: 2016-02-02


  • Who’s taking minutes? -> Ratty
  • Nominees for Friends of the Fish Tank:
    • No nominees this time

Action Items

(who needs to do what that hasn’t been recorded in a bug)
We should assign people to the open items.




Status of the SeaMonkey Buildbot Master and Tree

  • Notes:
    • Callek: Regarding the windows systems, sadly no progress yet. I’m hopeful we can get done sooner than later, I’m realistic expecting it won’t be until january at earliest.
    • Ewong will set up a cron job to do semi regular builds on the loaner machine.
      • The loaner machine was decommissioned without notice.
      • Got a new loaner.
    • Windows nightly trunk builds are unavailable due to various bugs such as bug 1092468 and bug 1108970. Migrating our Windows builders to Win2008 and our compiler toolchain to VS2013 would likely solve this and other bustages.
    • There are also some upcoming changes to L10n build system in Q1 2015 (bug 1107635).
    • Even en-US builds have stopped again. The latest trunk nightlies were 2.43a1 dated 9-Jan-2016 for L32 & L64, 6-Jan-2016 for Mac, and 2.42a1 dated 11-Nov-2015 for W32. No 2.44a1 yet, to parallel Firefox 47.0a1 which is being published every night (or every day depending on your timezone).
    • bug 1083689 Langpacks aren’t updated when auto-updating SeaMonkey because they aren’t uploaded to AMO. The solution requires changes in SeaMonkey RelEng (and possibly AMO).
    • For various reasons we don’t have a working SeaMonkey Treeherder.
    • wrt bug 1155011, we already have a Soccoro token. The patches on bug 1155013 require approval and then pushed and the work-around patches backed out.
  • [2nd February 2016]
    • [Tonymec] Building has stopped since 9 January. No tinderbox builds either. [frg] c-c would be clear to me. c-a pulls the wrong Chatzilla and Inspector again. Not sure if this is the cause. See bug 1167346. [IanN] ewong|away has mentioned looking at Jenkins.
  • [19th January 2016]
    • [comm-central]
  • [8th December 2015]
  • No Update. Ewong is hospitalized. Get well soon!
  • Excluding Windows, the tree is green for most part. We’re down one osx64 slave.
  • Re: Tests. Still broken.
    • Currently bug 1209378 is in progress to fix the perma-brokeness of our testing infrastructure; but it is ‘hard’.
  • See RelEng page for the RelEng status history.

Release Train

  • SeaMonkey 2.39 was released November 8th, 2015.
  • SeaMonkey 2.40 final (tracking bug 1233615) is in progress:
    • en-US build #4 are up for all platforms
    • localized builds are up for Linux and Mac OSX
    • new Windows loaner having issues with l10n builds
  • Merges were performed January 25th as scheduled.
  • Useful Firefox Release Schedule link: Releases Scheduling

Extensions and Plugins Compatibility Tracking

  • See Basics page. Please only list current changes here.
  • Addon Compatibility Listings
  • Lightning betas are up for both 2.40 and 2.41.
  • We are looking for a new place to host the Addon Compatibility Listings for the Add-on Converter in order to make it easy to maintain and to serve as the main database for the AMO browsing extension in the future. The details are in this post.
  • Firefox & Thunderbird Add-on Converter for SeaMonkey
    This tool goes a little further beyond simply modifying install.rdf – it also identifies a few more other things in the code that are Firefox or Thunderbird specific and attempts to change them. Of course, not all extensions can be ported so easily to SeaMonkey since there’s only so much an automated tool like that can do.
    • Lemon Juice continues to improve his already impressive Addon Converter. The source is now available on GitHub [1].
    • looking for a better(?) home for extension-converter pages, along with a way to track successful and conversion-failed add-ons, and respective integration into SeaMonkey by add-on or manager overlay [2], bug 1145026.
    • Rainer Bielefeld will no longer update the list of Firefox addons that have been successfully converted by the Addon Converter. — Rrbd (talk) 09:59, 16 August 2015 (PDT)
    • Ratty filed bug 1130390 to add a link on to the Firefox & Thunderbird Add-on Converter for SeaMonkey.
    • The AMO Browsing for SeaMonkey extension, which makes AMO pages a lot more SeaMonkey-friendly, seems mature. (It had 9 successive revisions between 27 September and 3 October, and no change since then.) It was developed by LemonJuice (of Add-on Converter fame), and Tonymec, who tested it and now uses it, supports it enthusiastically. The author proposes to add it as a “built-in extension” besides ChatZilla, DOMi and the like. What do you think? (See also Bug 1145026: AMO Add-On-Descriptions: Add link function leading to SeaMonkey add-on-converter and filling URL input pane; the extension actually does much more than the bug’s Summary implies: for instance it gets rid of the stupid “You need Firefox 10 or later” popups.
  • The Thunderbird team is now shipping Lightning with Thunderbird. IanN will work on shipping lightning too. Related bugs:
    • bug 516026 Integrate Lightning Into SeaMonkey by Default and Ship SeaMonkey with Lightning Enabled
    • bug 1130854 Package Lightning with Thunderbird for c-c and c-a builds.
    • bug 1113183 Integrate Lightning Into Thunderbird by Default.
    • bug 1130852 Add opt-in dialog to promote Calendar integration [Thunderbird].
  • Ratty has the Firefox Devtools up and running. We can now use the Firefox Devtools debugger in both remote and local mode.
    • Venkman is now totally retired R.I.P..

2.x (Last, Current, Next)


open tracking (0)
tracking requests (6)
targeted (0)
fixed (15)

  • We have official permission to use the Firefox FxA 2.0 sync servers! We need someone to work on porting sync 2.0 over to replace legacy sync code. The finer details of how are so far unknown, but we should have a usable solution before legacy sync is turned off. See: New Firefox Sync has landed in Firefox Nightly. Tracked in:
    • bug 998807 Sync account creation or device pairing fails with exception in BrowserIDManager.
    • bug 1003434 Add support for about:sync-progress.
  • Stalled. Needs a kick.
    • bug 815954 Click-to-Play: Port bug 812562 (click-to-play blocklisted plugins: reshow urlbar notification as with normal click-to-play).
    • bug 476108 GetShortPathNameW fails under some NTFS junctions [patchlove].
  • Current breakages:
    • bug 1243760 Replace nsPIDOMWindow with nsPIDOMWindowInner/Outer in comm-central due to bug 1241764.
    • bug 1244758 Rename nsAutoTArray to AutoTArray in Mailnews due to bug 1235261 (bustage fix).
    • bug 1209875 did break any builds of 2.41+ containing a localized ChatZilla – bug 1213641 filled
    • No en-US trunk builds later than 30 November yet (or even 11 November on win32). Aurora is currently building on Linux (L32 / L64) only.
  • Mozilla-central bugs that affect us:
    • Changes to Safe Browsing.
    • Firefox is currently changing styles of several Toolkit pages
      • already affected: config.xul for about:config, bug 1125636
      • Toolkit meta bug for about:* pages: bug 1097111 – SeaMonkey tracking in bug 1133743
      • Modern may need updating as IDs are changing, Default needs forking if we want to roll back to previous styles
      • Fallout thus far: bug 1133582 about:config (Modern)
      • Ratty restored about:privatebrowsing UI to before it was messed up by Project Chameleon styles [bug 1192276]. Subsequent to Chameleon, Firefox developers have again redesigned the about:privatebrowsing UI to include UI for tracking protection. We should look into picking any changes we like.
      • mozilla-central bug 1189918 and bug 1190465 allow to fork Toolkit style pages for the classic/default/modern theme without harming theme developers. SeaMonkey bug 1022354 will move theme overrides to the theme manifests.
        • affected pages that should be reverted are about:config [bug 1222816], about:addons [bug 1222817], about:support [bug 1222818] (look ok in Modern but hurt in the Default theme).
    • A lot of these bugs are due to mozilla-central switching from synchronous APIs to Asynchronous APIs.
    • bug 566746 (asyncFormHistory) Form history should use asynchronous storage API. Tracked in:
      • bug 912031 Use Asynchronous FormHistory.jsm in place of nsIFormHistory2 in Suite.
    • The C++ downloads manager backend nsIDownloadManager is being decommissioned. Firefox and Thunderbird have migrated to jsdownloads.
    • bug 825588 Asynchronous JavaScript API for downloads and bug 851471 Decommission nsIDownloadManager. Tracked in:
      • bug 888915 Move SeaMonkey to the new JavaScript API for downloads when nsIDownloadManager is decommissioned. Neil has a WIP patch on hand.
    • We’ve picked up he default for security.tls.version.min from Mozilla Core, but security.tls.version.fallback-limit is new. So we need to consider adding the latter to our preferences UI (bug 1123673).
      • Currently unclear whether or not this should be done after bug 1084025 disable insecure TLS version fallback entirely by default [3]
      • alternative proposal is to make whitelist for acceptable fallback sites available in the UI, which seems to make more sense.
  • bug 1198340 The carousel within Add-On Manager can be used for SeaMonkey specific content. TO DO: Find out what sort of format AMO needs for the carousel. Get our webdev person to create necessary content. Submit content for upload to AMO.
    • Unfortunately nobody knows exactly how because there’s no full time developer working on AMO. Ratty was given bug 1009759 as an example. So now we need someone who knows python+django.
    • About specific aspects of this problem, see: bug 1230796, bug 1230804, bug 1230806 and maybe more.
    • [Ratty] The url for the discovery pane is set in a pref. Instantbird points the URL to a chrome XUL document. If we do this we don’t have to worry about the python stuff.

Feature List, Planning

Bug statistics for the last two (full) weeks: 20 new, 7 fixed, 12 triaged.

  • low-medium triaging effort, low number of new bugs filed.
  • Ratty has a SeaMonkey build with a working Firefox Devtools!!!! Relevant patches:
    • bug 1208112 Package DevTools client in SeaMonkey now that it’s been moved out of /browser/ [checked-in].
    • bug 1223338 Add DevTools client L10N language files to SeaMonkey builds [checked-in].
    • bug 1223341 Add the Firefox Devtools to the SeaMonkey UI. Waiting for review.
    • bug 1223344 Some tweaks to gDevTools.jsm to get Devtools working in SeaMonkey [Devtools]. Waiting for review.
    • Not working yet: WebIDE and Responsive Design. But everything else seems to work.
  • Mozilla wants to separate Firefox and Thunderbird, in infrastructure and organizationally, which will likely affect SeaMonkey as well
  • Fundamental core features Firefox/Mozilla plans to remove:
    • bug 1222546 Product plan: remove support for heavyweight themes
      • if effective for all Toolkit applications, would render most 3rd-party themes disfunct
      • no sufficiently plausible specifics provided ‘why’ full themes ‘must’ no longer be supported
      • may prohibit Modern theme being shipped with or installed in SeaMonkey
      • removal is “decided” without any clear alternative envisioned
    • The toolkit help viewer is going away. Neil is working on resuscitating the old XPFE help viewer which apparently has more features.
  • IanN thinks it would be useful to remind people on the newsgroups / forums that they can contribute by triaging. Tonymec will post a reminder to newsgroups / forums. See bug 1092632 (Sm_tri_HowTo) Document how to triage SeaMonkey bugs.
    • The HowTo page has been moved to SeaMonkey/QA/Triage HowTo. No one having objected (or even reacted), bug 1092632 is now RESOLVED FIXED. See its comment #18 for the announcement URLs.

Open reviews/flags:
64 review
6 super-review
1 ui-review
12 feedback

  • See Feature List page for major wanted/needed features.
  • TODO:
    • Encrypted Media Extensions / Digital Rights Management
      • bug 1127784 added a preference and UI to enable/disable playback of Encrypted Media Extensions, with UI seen in non-release builds only
      • more work appears to be needed to download necessary 3rd-party Content Decryption Modules, some UI can probably be ported from Firefox
  • What about declaring linux-x86_64 builds found at and at ftp.m.o as “official” ?

On October 7 two people asked in #seamonkey at a few minutes’ interval when there would be “official” 64-bit SM builds for Linux. I pointed them to the x86_64 release at the bottom of the “Other languages” release page for 2.38 and to the x86_64 2.40a2 aurora & 2.41a1 trunk builds at the bottom of the ftp.m.o nightly/latest-comm-* pages but they said these were not “official”.

So — how are we going to get out of the following vicious circle? 64-bit builds are not “official” because too few users, and users don’t install them (some even prefer compiling their own) because they aren’t “official”.

Maybe change the online documentation? (perhaps as part of bug 1208822 “System Requirements page needs update”?)

Tonymec (talk) 13:56, 7 October 2015 (PDT)

  • [ewong:] what’s the prerequisites of making the Linux64 builds ‘official’ aside for the issue of getting the tests done for Linux64; but our testing infrastructure is busted. bug 1209378

— Discussion on locale translations for DOMi and Chatzilla —

  • [frg] Localized Chatzilla builds currently break suite compile starting with 2.41. See bug 1229810 Port bug 1228444 and bug 1228467 to Chatzilla.
  • [IanN] The tagging has fixed the issue for chatzilla before 2.41 but more is needed for 2.41 and above?
  • [frg] Yes. The optional language xpi will not compile in 2.41 and is broken in 2.42 and up. install.rdf missing. The main xpi is fine.
  • [IanN] Can you spin a bug off with the steps to generate the optional language xpi for 2.41 along with any errors, similarly another one for 2.42 and up. If it ends up being the same fix, not a problem, bugs are cheap. just cc me.
  • [IanN] Ratty: do we need to start looking at how to overlay Chatzilla and DOMi on top of the TB’s new merged (c-c + m-c) repository?
  • [Ratty] Not sure. I hope we can continue doing what we have been doing using nested repositories. However in the new merged repository. The comm-central is replaced by the mozilla-central so I don’t know how this will work.
  • [IanN] Merging DOMi into comm-central would make SeaMonkey releases easier. We just need to sort out locale building for DOMi.

Roundtable – Personal Status Updates

Status Updates from developers – what are you working on, what’s the progress, any other comments? (feel free to add yourself to the list if your name is missing and you have interesting status).


Waiting for review:

  • bug 1188348 data manager: domains invisible for Permissions, Preferences, Passwords. New version 6 patch just built.
  • bug 1200263 Help → Report Web Forgery … does nothing.
  • bug 1240284 Linker Warnings LNK4222 and LNK4017 when building Suite. Still need to build the upstream sdk patch.

Working on:

  • bug 1055954 popup exceptions are not added. I first thought about closing it as a duplicate of the Data Manager bug but the menu in Navigator is just bad. Will change it so that it resembles the cookie and image menu and not transfer control to Data Manager. WIP patch still needs some work but looks fine.


Chatzilla seems to have a bad day lately. I still need private patches for 2 bugs to build l10n 2.41 and up:

  • bug 1240304 Old maximum version numbers in Chatzilla rdf files
  • bug 1210791 Get rid of XULPPFLAGS in Chatzilla

And the official builds miss the language pack:

  • bug 1244467 Localized Builds: Chatzilla language pack missing from Seamonkey installer package

And comm-aurora picks the wrong Chatzilla branch again. Didn’t file a bug yet.

On the backburner. Didn’t have much time to check

Other things on my mind:

  • enable-optimize=-O2 should be used for Windows release builds. Linux gcc –enable-optimize optimizes for speed. With VS2013 it optimizes for size. Resulting O2 Windows build feels a lot snappier.
  • Usual localising, testing, reviewing, commenting and approving.
  • Fixed:
  • Fixed for c-c:
  • Fixed for m-c:
  • Fixed for m-i/fx-i:
  • Pending tree opening:
  • Pending approval for check in:
  • Pending checkin for dependent bugs:
    • bug 653386 Consider overriding netErrorApp.dtd rather than netError.dtd
  • Checked in pending review:
  • Waiting for feedback/review/information:
    • bug 1061348 Port |bug 575283 – Cleanup mozconfig files on all platforms| to SeaMonkey
    • bug 1163441 Use FINAL_TARGET_FILES and DIST_FILES for Thunderbird themes
  • Fixing review comments before checkin:
    • bug 757230 When using add button for permissions in Data Manager set a displayHost
    • bug 798147 Switch to correct pref pane if pref window already open
  • Working on:
    • bug 1243064 Update en-GB for Gecko 44
    • bug 1101381 Printing throws error: DEPRECATION WARNING: getWebBrowserPrint is now deprecated, and fully unsupported for multi-process browsers. Please use a frame script to get access to nsIWebBrowserPrint from content
    • bug 1190179 Port |bug 1067325 – Add an option to view html source in a tab| to SeaMonkey
    • bug 1051642 Allow for flat chrome format when packaging extensions
    • bug 943335 [TB] Update icons used in searchplugins (Yahoo, eBay, Wikipedia, Amazon, Bing, Twitter)
    • Various SM Council documents.
    • bug 606683 Allow customization of toolbar in Composer and MailNews Composition
    • bug 639690 [META] Re-arrange code between editor and editorOverlay
    • bug 773979 [META] Switch to new drag and drop api in SeaMonkey
    • bug 657234 Move pasteQuote and pasteNoFormatting into contentAreaContextOverlay
    • File/Folder selection in windows.
  • To Do:
    • bug 639395 Get cmd_fontSize to reflect current state of selected content / content at caret.
    • Prefs-in-a-tab.
    • Create FAQ for Friends of the Fish Tank.
    • Help get composer standalone builds working with –enable-tests.
Rainer Bielefeld
currently working on
ToDo (postponed from meeting 2016-01-19
  • Improve Mentoring for new developer volunteers
I get requests of interested (but inexperienced) developers to help, but I hesitate to encourage them because most new developers will need intensive help for 5 (or so) first bugs until they become able to work independently. Unfortunatley we do not have proved and well known infrastructure for that like Newbies discussion forum (where they can help each other) and similar. So we lost Batchu Venkat Vishal, Tom Zhang, (never started activity) and others. Any Ideas how to interest possible new developers in continuous and persevering contiibution to SeaMonkey?
  • Donating and so on: Current situation very unsatisfying due to unresolved
    • bug 1165707 – Publish information concerning SeaMonkey e.V.
    • bug 1197554 – Balance sheet (statement of accounts) for donations should be published
    • bug 1191707 – Download: redirect users to detour via Donate / Contribute Request web page
this should be discussed on IRC, I hope I will be able to participate
Other discussion items
  • Progress bundling lomon_juice’s add-on-browser? I think that is really important!
  • After general fix for bug 1153577 – Users should be able to hide the menubar and show it with the ALT key some non-WIN-OS related issues, what might become annoying when we get 2.40 builds


  • Naught.

Working on comm-central bustage fixes:

In Progress:

  • bug 1223341 Add the Firefox Devtools to the SeaMonkey UI.
  • bug 1235805 Rollup patch: Add preload content policy types for images (bug 1048048) Use the loading document’s principal to populate loadInfo for Favicons instead of using systemPrincipal (bug 1119386) nsITaskbarPreview::Invalidate no longer throws when not visible.
  • bug 1222816 Restore about:config UI (Config Editor) to old appearance by overriding Toolkit’s Project Chameleon styles.
  • bug 1238428 Workaround the NS_APP_PROFILE_DEFAULTS_{NLOC_,}50_DIR directory keys removed in bug 1234012.
  • bug 1239707 Switch to use in-tree version of compare-locales (SeaMonkey Part).


  • Fix Thunderbird defaut theme overrides.
  • Front end changes needed for bug 1042699 Block cross-origin add-on install requests.
  • bug 1011857 Implement CustomizableUI shim for SeaMonkey.
  • bug 1174466 Popup blocker: Need to allow popups opened by loaded javascript: URIs from the location bar. Regression from bug 896947.
  • bug 1224907 Bookmarks Manager Search box is missing in SeaMonkey 2.3.9.
  • bug 1236982 Simplify SeaMonkey CSS for Lightning toolbar buttons.

Needs Investigating:

Other stuff:

  • Did some reviews and approvals.
  • Bug triage and Bug discussions.
  • Usual end user support and PR in newsgroups and Mozillazine.

Landed on comm-central and comm-aurora:

Filed for for 2.42.x if continued on 45 ESR:

  • bug 1240738 Bugs with l10n changes that need uplifting to 2.42.x in case we build from 45.x ESR repositories. (meta)
    • ref. bug 1229270 Provide UI in Send Format pane for new mailnews.sendformat.auto_downgrade preference.

May need retargeting:

  • bug 1123673 Consider exposing security.tls.version.fallback-limit in SSL prefpane to accommodate SSL 3.0 legacy sites.


  • Bug triage, testing, and commenting for SeaMonkey and MailNews Core.
  • Closed remaining 2.35 and 2.38 tracking bugs along with pending but obsolete post-landing review requests.
  • End-user information and discussion on MozillaZine.

Any other business?

Donations to SeaMonkey:

  • [Rainer_Bielefeld]If there still is a little time remaining: I have a question concerning SeaMonkey donation status. Do we get money? if yes, how much? used for what? Currently all that is not very transparent.
  • [Ratty]The eV gets the money.
  • [frg]Second that. Would like to donate again but not sure where the money goes hoch much and what they do with it. Intransparent unfortunately
  • [Ratty]mcsmurf did promise to provide an accounting. Rainer_Bielefeld: maybe you can remind him?
  • [Rainer_Bielefeld]I know. but: bug 1165707 Publish information concerning SeaMonkey e.V. ? It looks as if that ev does not really exist :-/
  • [Ratty]You two live in Germany. Could try holding mcsmurf’s feet over a fire?
  • [IanN]I will remind mcsmurf on that
  • [tonymec]das Gelt geht zur eV, aber wo geht es daraus hin?
  • [Rainer_Bielefeld]I think we need some public relations: Thanks to donators, …
    • Yes, I will contact mcsmurf.
  • [frg]Yes. To do the job is great but to promote it is neccessary or we will go down anyway.
  • [Rainer_Bielefeld]And publish results in the blog
    • Anything new concerning Progress bundling lomon_juice’s add-on-browser? I think that is really important, ofr me that add-on is great help
  • [frg]Rainer_Bielefeld: If the others think I am already on par for simple thingsa I can help other developers.

SeaMonkey Meeting Details

Mozilla Add-ons BlogWebExtensions in Firefox 46

We last updated you on our progress with WebExtensions when Firefox 45 landed in Developer Edition (Aurora), and today we have an update for Firefox 46, which landed in Developer Edition last week.

While WebExtensions will remain in an alpha state in Firefox 46, we’ve made lots of progress, with 40 bugs closed since the last update. As of this update, we are still on track for a milestone release in Firefox 48 when it hits Developer Edition. We encourage you to get involved early with WebExtensions, since this is a great time to participate in its evolution.

A focus of this release was quality. All code in WebExtensions now pass eslint, and we’ve fixed a number of issues with intermittent test failures and timeouts. We’ve also introduced new APIs in this release that include:

  • chrome.notifications.getAll
  • chrome.runtime.sendMessage
  • chrome.webRequest.onBeforeRedirect
  • chrome.tabs.move

Create customizable views

In addition to the new APIs, support was added for second-level popup views in bug 1217129, giving WebExtension add-ons the ability to create customizable views.

Check out this example from the Whimsy add-on:

Create an iFrame within a page

The ability to create an iFrame that is connected to the content script was added in bug 1214658. This allows you to create an iFrame within a rendered page, which gives WebExtension add-ons the ability to add additional information to a page, such as an in-page toolbar:


For additional information on how to use these additions to WebExtensions, (and WebExtensions in general), please check out the examples on MDN or GitHub.

Upload and sign on (AMO)

WebExtension add-ons can now be uploaded to and signed on (AMO). This means you can sign WebExtension add-ons for release. Listed WebExtension add-ons can be uploaded to AMO, reviewed, published and distributed to Firefox users just like any other add-on. The use of these add-ons on AMO is still in beta and there are areas we need to improve, so your feedback is appreciated in the forum or as bugs.

Get involved

Over the coming months we will work our way towards a beta in Firefox 47 and the first stable release in Firefox 48. If you’d like to jump in to help, or get your APIs added, please join us on our mailing list or at one of our public meetings, or check out this wiki page.

hacks.mozilla.orgDeveloper Edition 46 – More memory tooling, improved @media sidebar and more

Firefox Developer Edition 46 is now here! In this version, we’ve added various memory profiling features and improved many of our current tools as well. This post covers some of the big changes that landed in this release.

Dominator view in the memory tool

A new view is now available within the Memory Tool that will aid in debugging and profiling memory intensive web applications. Dominator view provides insight into object memory allocation. This is a cumulative view indicating the size of the objects (shallow) and any referenced objects (retained) that are currently allocated. This allows you to easily see the impact a particular object is having on memory. Using this view also lets developers quickly locate the code responsible for creating a specific object. You can read more about this feature here.

Here’s a screenshot of the Dominator view:

Screenshot of the dominators view in Firefox DevTools

Performance tool and GC profiling

The performance tool now allows you to include allocations in your recordings. This is useful to help you reduce the amount of GC done in your web app for more responsiveness. You can enable allocations in the performance tool by clicking on the settings cog, then by checking the “Record Allocations” menu item.

Here’s a screenshot of the Allocations view:

Screenshot of 'allocations view' in performance tool

Emscripten demangling feature

When compiling native code through Emscripten, you will notice that the function names are changed by the compiler. We’ve now added support for demangling C function names in the profiler call tree, so you can easily refer to your original uncompiled code (development notes)

Style Editor and @media queries

Firefox Developer Tools provides a Responsive Design View, used to develop responsive websites that can respond to accommodate many screen sizes. You can use this view along with the media query sidebar to quickly see which media rules are currently activated for a given screen size selection. The new release of the media query sidebar now provides quick links on each media rule that automatically adjust the screen view size in the Responsive Design View. You can check the development notes here.

Here’s a screencast of the feature in action:

Media query links

Always-on Debugger

Also, the debugger will now always pause on debugger statements when the toolbox is opened, even if the panel hasn’t been activated yet. You can read James Long’s blog post for more technical detail.

More polish

In addition to the improvements above, we’ve also polished many areas of the toolbox, in particular:

Thanks to everyone that has contributed to this Developer Edition release! Grab a copy of the latest Developer Edition now and let us know what you think!

Air MozillaWebdev Extravaganza: February 2016

Webdev Extravaganza: February 2016 Once a month web developers across the Mozilla community get together (in person and virtually) to share what cool stuff we've been working on.

Air MozillaMartes mozilleros, 02 Feb 2016

Martes mozilleros Reunión bi-semanal para hablar sobre el estado de Mozilla, la comunidad y sus proyectos. Bi-weekly meeting to talk (in Spanish) about Mozilla status, community and...

Meeting NotesMozilla Project: 2016-02-01

  • Every Monday @ 11:00am Pacific Time (19:00 UTC)
  • to watch and listen
  • join #airmozilla for backchannel discussion
  • Presenters only: Vidyo room “Brownbags”. Do not use this room if you’re not planning to speak.
  • Dial-in: conference# 8600
    • People with Mozilla phones or softphones please dial x92 Conf# 8600
    • US/Toll-free: +1 800 707 2533, (pin 369) Conf# 8600 (max 48 users at any time)
    • US/California/Mountain View: +1 650 903 0800, x92 Conf# 8600
    • US/California/San Francisco: +1 415 762 5700, x92 Conf# 8600
    • US/Oregon/Portland: +1 971 544 8000, x92 Conf# 8600
    • CA/British Columbia/Vancouver: +1 778 785 1540, x92 Conf# 8600
    • CA/Ontario/Toronto: +1 416 848 3114, x92 Conf# 8600
    • UK/London: +44 (0)207 855 3000, x92 Conf# 8600
    • FR/Paris: +33 1 44 79 34 80, x92 Conf# 8600
    • or, for some clients, (may not work for all rooms)
    • Gmail Chat (requires Flash and the Google Talk plugin): paste +1 650 903 0800 into the Gmail Chat box that doesn’t look like it accepts phone numbers
    • SkypeOut is free if you use the 800 number
    • If you plan on presenting, please join the Vidyo BrownBags 20 minutes prior to the start of the meeting and announce to the A/V Technicians that you will be speaking so that they can confirm your Audio and Video.

All-hands Status Meeting Agenda

Items in this section will be shared during the live all-hand status meeting.

Friends of Mozilla

  • Huge thanks to the Participation Leaders who came to the Singapore Leadership Summit the weekend before last, and the Participation team who supported them – an inspiring example of collaboration AND respect in action.

Upcoming Events

Monday, 01 February
Tuesday, 02 February

10am Pacific – Add-on & Marketplace community meeting:

Wednesday, 03 February


The limit is 3 minutes per topic. It’s like a lightning talk, but don’t feel that you have to have slides in order to make a presentation. If you plan on showing a video, you need to contact the Air Mozilla team before the day of the meeting or you will be deferred to the next week. The meeting is streamed in a 4:3 format in order to allow for split screen. If your slides are 16:9 “widescreen” format, please indicate in the “Sharing” column below.

Presenter Title Topic Location Sharing Media More Details
Who Are You? What Do You Do? What are you going to talk about? Where are you presenting from? (Moz Space, your house, space) Will you be sharing your screen? (yes/no, 4:3 or 16:9) Links to slides or images you want displayed on screen Link to where audience can find out more information
Mitchell Baker Mozilla Chairwoman New Member of the MoCo Board of Directors Live and Vidyo No
Emma Irwin Education/Leadership, Participation Team The Leadership Summit (held in Singapore Jan 23, 24) My house in Sooke, BC yes (4:3) Slides Blog: Preparing for the Summit (Emma Irwin), Blog: Inspired by our Grassroots leaders (Mark Surman), Blog: Leadership Summit Recap (Harsha Vardhan), GitHub Repo: Contributor Issues and Plans
Emma Humphries Bugmaster, Firefox Team Next Steps in Firefox Team’s Bug Program Portland Commons yes (4:3) Slides
Melissa Romaine Mozilla Advocacy Open Web Fellows Remote (Brussels) no no
Sam Dyson Director, Hive Chicago Hive Chicago Hack Day Remote (Chicago)


Let’s say hello to some new Mozillians! If you are not able to join the meeting live, you can add a link to a short video introducing yourself.

Introducing New Volunteers

New Volunteer Introduced by Speaker location New Volunteer location Will be working on
Who is the new volunteer? Who will be introducing that person? Where is the introducer? Where will the new person be contributing from? What will the new person be working on?

Introducing New Hires

New Hire Introduced by Speaker location New Hire location Will be working on
Madeline Angell Meera Pisharody Mountain View office Mountain View HR Operations Support
Rok Garbas Chris Cooper Toronto Berlin Release Engineering
Aki Sasaki Chris Cooper Toronto San Francisco Release Engineering
Lorena Villegas Meera Pisharody Mountain View Mountain View People Department


Notes and non-voice status updates that aren’t part of the live meeting go here.

Status Updates By Team (*non-voice* updates)


If you’re in the US, our quadrennial voting frenzy starts tonight with the Iowa Caucuses.
What’s so hard about running an election? Can technology help? Check out Ben Adida’s great brownbag on Air Mozilla from 2012 where he explores the technology, both stats and crypto, that can help us trust our election results a good bit more than we do today.


Open Policy & AdvocacyAnnouncing the 2016 Open Web Fellows Program Host Organizations

Last year was a big year for the open Web: net neutrality became a mainstream phrase in the United States, data retention and surveillance were hotly contested at government levels in the European Union, and India’s government suspended operations of Free Basic’s zero-rating practices despite Mark Zuckerberg’s insistence that he was working in the interest of the poor. Much of this was done in collaboration with organizations that share the mission to protect the open Web as a global public resource. It’s partnerships and knowledge sharing initiatives that support these movements.

Once such initiative is the Ford-Mozilla Open Web Fellows program, an international leadership program that brings together technology talent and civil society organizations to advance and protect the open Web. The Fellows embedded at these organizations will work on salient issues like privacy, access, and online rights. And this Fellowship program offers unique opportunities to learn, innovate, and gain credentials in a supportive environment while working to protect the open Web.

We are proud to announce our second cohort of host organizations, who are looking for 8 talented individuals to advise, build, and learn during their 10-month fellowships.

Apply now to become a Ford-Mozilla Open Web Fellow!
Deadline for applications: 11:59pm PST March 20, 2016

Centre for Intellectual Property and Information Technology Law (CIPIT)
CIPIT is an evidence-based research and trainingcenter based at Strathmore Law School in Nairobi, Kenya. Working with communities in extreme stances of censorship, their mission is to study and share knowledge on the development of cyberspace, and conduct research from a multidisciplinary approach. In 2016 CIPIT will be focusing on Internet Freedom in Eastern Africa, intellectual property in African development, and network measurements in election monitoring.

CIPIT is looking for an inquisitive, focused Fellow with tech expertise who can consult on a policy-oriented research process. This Fellow could help shape the next generation of Internet laws in Africa, and see the real-life needs of the tools and code they generate. For example, the Fellow could develop user-focused tools that help real-life events – like the Ugandan election. Learn more here.

Citizen Lab
Citizen Lab is an interdisciplinary laboratory based at the Munk School of Global Affairs, University of Toronto that focuses on advanced research and development at the intersection of ICTs, human rights, and global security. They provide impartial,evidence-based, peer-reviewed research on information controls to help advocacy and policy engagement on an open and secure Internet, and help secure civil society organizations from targeted attacks.

Citizen Lab is looking for a Fellow who is motivated to apply their technical skills to questions concerning technology and human rights, and brings excellent communications and technical skills. The Fellow could develop new tools to measure Internet filtering and network interference, investigate malware attacks or the privacy and security of apps and social media, and empower citizens by developing platform for corporate and public transparency. Learn more here.

ColorOfChange is a leading civil rights organization that works to strengthen the voice of Black America and create positive change around political and social issues that affect the Black community. ColorOfChange supports net neutrality and the reclassification of broadband as a public utility, and works to give their members a voice — hugely consequential, as Black and brown Americans are least able to afford the paybooths and obstacles that come with a closed Internet.

ColorOfChange is looking for a Fellow who is passionate about ensuring the US national conversation around net neutrality includes arguments in favor of net neutrality from a civil rights perspective. This Fellow would have the opportunity to pioneer tools for rapid-response campaigning that could be replicated and used by millions, find a compelling approach for users to engage with data that is integrated in the presentation itself, leverage mobile (and wearables??) for activism. Learn more here.

Data & Society
Data & Society is a research institute that is committed to identifying issues at the intersection of technology and society. They focus on social, cultural, and ethical issues arising from data-centric technological development. In 2016, they will focus on identifying major emergent issues stemming from new data-driven technologies, develop tools to help people better understand issues, and build a diverse network of researchers and practitioners.

Data & Society is looking for a Fellow who is deeply versed in technical conversations, and understands that new massive technologies are creating disruption. This Fellow would work with people from other fields to raise the technical capacity of others in the network, and engage technical communities core to Data & Society’s mission. Learn more here.

Derechos Digitales
Derechos Digitales is an organization that promotes human rights in digital environments. Their work focuses on the nuanced realities of Latin American countries, and bring these perspectives to discussions around issues like cybersecurity and corporate transparency. They work to shape policy-making on issues such as mass surveillance, digital threats to activists, and legislative work on Internet governance. In 2016 they will focus on privacy, freedom of expression and access to knowledge.

Derechos Digitales is looking for a Fellow with tech expertise who is passionate about working at the intersection of human rights and tech policy in the global south. The Fellow could provide technical advise on the tools and resources needed in these contexts, and develop tech policy documents that can bridge the human rights and tech communities. Derechos Digitales is looking for a Spanish-speaking Fellow who would be comfortable supporting capacity building sessions with local civil society organizations. Learn more here.

European Digital Rights (EDRi)
EDRi is an association of 33 civil rights organizations from across Europe, and works to promote, protect and uphold civil and human rights in the digital environment in the European Union. Their four key priorities for 2016 are data protection and privacy, mass surveillance, copyright reform and net neutrality. EDRi supports Europe’s data protection reform and campaigned against EU state surveillance proposals. The current onslaught of “counter-terrorism” proposals after recent attacks sees European governments adopting new laws with little consideration of effectiveness, proportionality, or whether privacy is being sacrificed.

EDRi is looking for a Fellow who is passionate about raising awareness about EU digital rights, and can use their technical expertise to help educate the general public, tech-policy community, and policy-makers. For example, the Fellow could explain existing data collection practices and newly gained online rights to users via an app or other tool, depending on the Fellow’s talents and preferences. The Fellow could provide technical assistance to help policy-makers and regulators understand the tools used by online companies for tracking and monitoring. Learn more here.

Freedom of the Press Foundation
Freedom of the Press Foundation is a non-profit organization that supports and defends journalism dedicated to transparency and accountability. They believe one of the most critical press freedom issues of the 21st Century is digital security, and work to ensure journalists can use technology to do their jobs safely and without the constant fear of surveillance.

Freedom of the Press Foundation is looking for a Fellow with strong technical abilities and is interested in helping journalists work safely and communicate securely.  The Fellow would apply their skills to build and support tools like SecureDrop with Freedom of the Press Foundation’s talented staff of technologists and engineers that help journalists communicate securely with sources and whistleblowers. Learn more here.

Privacy International
Privacy International focuses on privacy issues around the world. They advocate for strong privacy protection laws, investigate government surveillance, conduct research to enact policy change, and raise awareness amongst the public about technologies that place privacy at risk. In 2016 Privacy International is working partnering with organizations in the global south to identify privacy challenges, and more work on data exploitation.

Privacy International is looking for a Fellow who’s eager to learn and find new challenges. The Fellow would use their strong technical skills to translate technology to policy-makers, and help others around the world do the same. The Fellow would work with Privacy International’s Tech Team to analyze surveillance documentation and data, identify and analyze new technologies, and help develop briefings and educational programming with a technical understanding. Learn more here.

Apply now to become a Ford-Mozilla Open Web Fellow!
Deadline for applications: 11:59pm PST March 20, 2016

Mozilla Add-ons BlogFirefox Accounts on AMO

In order to provide a more consistent experience across all Mozilla products and services, (AMO) will soon begin using Firefox Accounts.

During the first stage of the migration, which will begin in a few weeks, you can continue logging in with your current credentials and use the site as you normally would. Once you’re logged in, you will be asked to log in with a Firefox Account to complete the migration. If you don’t have a Firefox Account, you can easily create one during this process.

Once you are done with the migration, everything associated with your AMO account, such as add-ons you’ve authored or comments you’ve written, will continue to be linked to your account.

A few weeks after that, when enough people have migrated to Firefox Accounts, old AMO logins will be disabled. This means when you log in with your old AMO credentials, you won’t be able to use the site until you follow the prompt to log in with or create a Firefox Account.

For more information, please take a look at the Frequently Asked Questions below, or head over to the forums. We’re here to help, and we apologize for any inconvenience.

Frequently asked questions

What happens to my add-ons when I convert to a new Firefox Account?

All the add-ons are accessible to the new Firefox Account.

Why do I want a Firefox Account?

Firefox Accounts is the identity system that is used to synchronize Firefox across multiple devices. Many Firefox products and services will soon begin migrating over, simplifying your sign-in process and making it easier for you to manage all your accounts.

Where do I change my password?

Once you have a Firefox Account, you can go to, sign in, and click on Password.

If you have forgotten your current password:

  1. Go to the AMO login page
  2. Click on I forgot my password
  3. Proceed to reset the password

The Mozilla BlogDr. Karim Lakhani Appointed to Mozilla Corporation Board of Directors

Image from Twitter @klakhani

Image from Twitter @klakhani

Today we are very pleased to announce an addition to the Mozilla Corporation Board of Directors, Dr. Karim Lakhani, a scholar in innovation theory and practice.

Dr. Lakhani is the first of the new appointments we expect to make this year. We are working to expand our Board of Directors to reflect a broader range of perspectives on people, products, technology and diversity. That diversity encompasses many factors: from geography to gender identity and expression, cultural to ethnic identity, expertise to education.

Born in Pakistan and raised in Canada, Karim received his Ph.D. in Management from Massachusetts Institute of Technology (MIT) and is Associate Professor of Business Administration at the Harvard Business School, where he also serves as Principal Investigator for the Crowd Innovation Lab and NASA Tournament Lab at the Harvard University Institute for Quantitative Social Science.

Karim’s research focuses on open source communities and distributed models of innovation. Over the years I have regularly reached out to Karim for advice on topics related to open source and community based processes. I’ve always found the combination of his deep understanding of Mozilla’s mission and his research-based expertise to be extremely helpful. As an educator and expert in his field, he has developed frameworks of analysis around open source communities and leaderless management systems. He has many workshops, cases, presentations, and journal articles to his credit. He co-edited a book of essays about open source software titled Perspectives on Free and Open Source Software, and he recently co-edited the upcoming book Revolutionizing Innovation: Users, Communities and Openness, both from MIT Press.

However, what is most interesting to me is the “hands-on” nature of Karim’s research into community development and activities. He has been a supporter and ready advisor to me and Mozilla for a decade.

Please join me now in welcoming Dr. Karim Lakhani to the Board of Directors. He supports our continued investment in open innovation and joins us at the right time, in parallel with the Katharina Borchert’s transition off of our Board of Directors into her role as our new Chief Innovation Officer. We are excited to extend our Mozilla network with these additions, as we continue to ensure that the Internet stays open and accessible to all.


Mozilla IndiaPrivacy Month Campaign 2016 Impact Report

The Privacy Month Campaign is a community led initiative to celebrate International Data Privacy Day which ran throughout the January. We have seen participation from Mozilla communities all over the world, making this a successful start to 2016.



We have received a lot of mentions from all over the world. A few honorable mentions and more….

We would love to share a big fist bump with the smart and enthusiastic contributors of Policy and Advocacy team of Mozilla India. A ton of MozLoves to the Mozilla communities across the globe who helped us to make this big impact.

Keep this spirit open.

This blog post is co-authored with Anush A

The Mozilla BlogMozilla, Caribou Digital Release Report Exploring the Global App Economy

Mozilla is a proud supporter of research carried out by Caribou Digital, the UK-based think tank dedicated to building sustainable digital economies in emerging markets. Today, Caribou has released a report exploring the impact of the global app economy and international trade flows in app stores. You can find it here.

The findings highlight the app economy’s unbalanced nature. While smartphones are helping connect billions more to the Web, the effects of the global app economy are not yet well understood. Key findings from our report include:

  • Most developers are located in high-income countries. The geography of where app developers are located is heavily skewed toward the economic powerhouses, with 81% of developers in high-income countries — which are also the most lucrative markets. The United States remains the dominant producer, but East Asia, fueled by China, is growing past Europe.
  • Apps stores are winner-take-all. The nature of the app stores leads to winner-take-all markets, which skews value capture even more heavily toward the U.S. and other top producers. Conversely, even for those lower-income countries that do have a high number of developers — e.g., India — the amount of value capture is disproportionately small to the number of developers participating.
  • The emerging markets are the 1% — meaning, they earn 1% of total app economy revenue. 95% of the estimated value in the app economy is captured by just 10 countries, and 69% of the value is captured by just the top three countries. Excluding China, the 19 countries considered low- or lower-income accounted for only 1% of total worldwide value.
  • Developers in low-income countries struggle to export to the global stage. About one-third of developers in the sample appeared only in their domestic market. But this inability to export to other markets was much more pronounced for developers in low-income countries, where 70% of developers were not able to export, compared to high-income countries, where only 29% of developers were not able to export. For comparison, only 3% of U.S. developers did not export.
  • U.S. developers dominate almost all markets. On average, U.S. apps have 30% of the market across the 37 markets studied, and the U.S. is the dominant producer in every market except for China, Japan, South Korea, and Taiwan.

Mozilla is proud to support Caribou Digital’s research, and the goal of working toward a more inclusive Internet, rich with opportunity for all users. Understanding the effects of the global app economy, and helping to build a more inclusive mobile Web, are key. We invite readers to read the full report here, and Caribou Digital’s blog post here.


Several members of the QA team attended FOSDEM this year, and gave presentations on a variety of subjects – both the BuddyUp Pilot Project and FxOS Automation were presented. All of the FOSDEM presentations were recorded and will eventually be available online. Mozilla also had a booth, and we had a group of community volunteers who volunteered to sit at the booth and answer questions. There was a VR display as well as some FxOS devices on display.

You can read more about the event here.

Pictures of the event are here.

QMODavid Weir: friendly with belief in team work and contribution

David Weir has been involved with Mozilla since 2009. He is from Glasgow, Scotland where he has recently graduated from Glasgow Kelvin College with skills in digital media. In his spare time, he volunteers at local organisations that aim to promote the quality of life in Glasgow’s East End community.

David is from Scotland in Europe.

David is from Scotland in Europe.

Hi David! How did you discover the Web?

I used to write letters the old-fashioned way with ink and paper till I got an email address and discovered the Internet. I started going online for stuff like applying for jobs. That’s how I discovered the Web.

How did you hear about Mozilla?

I used Internet Explorer before I found out about Firefox from an advertisement on Facebook.

How and why did you start contributing to Mozilla?

I was a newbie Firefox user and I liked it. As I got to understand it better, I decided to help out other users on live chat. I became a part of SUMO. To date, I’ve answered 39 questions, written 27 documents and earned 3 badges on SUMO.

Have you contributed to any other Mozilla projects in any other way?

I am a community contributor to the QA team. I actively participate in discussions during team meetings, email threads, and IRC. I’ve recently arranged testdays for Windows 10, Windows Nightly 64-bit, Firefox for Android and Firefox for Desktop.

I contribute code to SuMoBot, an IRC bot in Mozilla’s #SuMo IRC channel.

I’m part of Firefox Friends, a team of social-sharers and word-spreaders to promote Firefox. I help run the Mozilla contributor group on Facebook, and I keep an eye out for Mozilla-related news spreading around social channels.

I am a Mozilla Rep and actively recruit Mozillians.

What’s the contribution you’re the most proud of?

I have some disability in the form of visual impairment and autism; my hand-eye co-ordination is not perfect. I help to make the web more accessible for people with disability. I look at Mozilla websites and if I find things like the text is too dark to read, I notify the developers to make fixes for better accessibility. See bugs 721518, 746251, 770248 and 775318.

You belong to the Mozilla UK community. Please tell us more about your community. Is there anything you find particularly interesting or special about it?

The Mozilla UK community consists of a small number of employees and volunteers scattered around the United Kingdom. There is a Community Space in London. Every year in November, community members help to host the Mozilla Festival. Since only a few employees work in the London office, most meetings happen online. You can find us on the #uk IRC channel. Community discussion happens on Discourse.

A recent landmark achievement for the UK community was the rollout of the en-GB locale for Mozilla’s web properties like,,,, and the main Mozilla website, I personally contributed to the (en-GB) localization of See bugs 1190535 and 1188470.

There is a Scottish community within the larger UK community that can download Mozilla products localized in Gaelic language and discuss support issues on the Gaelic language discussion forum Fòram na Gàidhlig.

What advice would you give to someone who is new and interested in contributing to Mozilla?

Mozilla is one of the most friendly communities I have ever volunteered with. The whole staff is behind you.

If you had one word or sentence to describe Mozilla, what would it be?

Lots of stuff happening – get involved!

What exciting things do you envision for you and Mozilla in the future?

A Scottish community space would be nice.

The Mozilla QA and SUMO teams would like to thank David Weir for his contributions over the past 7 years.

David has contributed to the Mozilla project for a few years now. I’ve frequently had the opportunity to interact with him through IRC. We would also get to say “hi!” to him face-to-ace every so often, because he would attend our weekly team meetings throughteleconferencing. I remember he initially started out attending “testdays” where he would help us test new features in Firefox. Later, his collaboration evolved into organizing his own testdays to address issues he identified as problematic. He’s been a very enthusiastic contributor, and he’s never been shy about pointing out when and where we could be doing better for example, in terms of sharing documentation, or any other information that could be helpful to other contributors. He has made a memorable impression on me and enriched my Mozilla experience, and I hope he keeps participating in the project. – Juan Carlos Becerra

Every team at Mozilla would be lucky to have a contributor like David (IRC nick satdav). He’s committed, the first to know about anything new going on in our social contributor community, and always open with ideas for how we can improve our programs. – Elizabeth Hull

Over the last few years satdav has stayed on top of many support and QA issues, often bringing new bugs that affect the user community to developer attention. That’s so helpful! He shows up to a wide range of Firefox meetings and irc channels, and has a good idea of who to ask to get more information on a bug. Because he has a broad and general interest and is not afraid to ask questions, he also sometimes works as a cross team communicator letting people know what’s going on in other meetings or discussions. I think of him as one of those people who in a science fiction future, would be in a spaceship mission control center with 20 monitors, listening on many channels at once. It has been cool to see his enthusiasm on Mozilla projects and to see his knowledge deepen! – Liz Henry

WebmakerMozilla’s Continued Commitment to Open Badges

At Mozilla, we’re devoted to empowering individuals on the Web. This means creating tools and communities that teach important digital-age skills. It also means helping to build a technical ecosystem for recognizing and showcasing these skills.

In 2011, Mozilla and the MacArthur Foundation set out to create exactly this. We collaborated to build the Open Badges project, which developed an approach to reward learners with digital badges for their efforts. It’s an ambitious task: the Open Badges project aimed to spark a transformation of how we recognize learning.

The project has come a long way. Since 2011, Open Badges has developed a devoted and international community, attracted partners from around the world and demonstrated the possibilities of an open credentialing ecosystem.

The road to create an Open Badges ecosystem has also been challenging, and we’ve learned valuable lessons. Perhaps no surprise to some, we learned badges cannot exist in a vacuum — to flourish, they need active communities and compelling educational content. And we learned that building a technical infrastructure for a universal badge network is a complex task. Mozilla’s place in Open Badges is not in operating the core services that make up this infrastructure. Instead, Mozilla’s best contribution to the growing ecosystem is to play a smaller, committed role as one of many players.

It’s important to reflect on the progress we’ve made since launching the initiative.

In 2011, Mozilla and MacArthur engaged with over 300 nonprofit organizations, government agencies and others about informal learning, breaking down education monopolies and fuelling individual motivation. We also created the Open Badge Infrastructure (OBI) public beta, a technical framework for the collection and sharing of badges. Much of this work was guided by “Open Badges for Lifelong Learning,” an early working paper we created with the MacArthur Foundation. Badges became an important part of what people worked on at MozFest, as well.

In 2012, we launched Open Badges 1.0, an improved ecosystem for badges. We also partnered with the City of Chicago to launch The Chicago Summer of Learning (CSOL), a badges initiative to keep local youth ages four to 24 active and engaged during the summer. Institutions and organizations like Purdue University, MOUSE and the U.K.-based DigitalME adopted badges, and we saw international interest in badging programs from Australia and Italy to China and Scotland.

In 2013, over 1,450 organizations were issuing badges. Our partnership with Chicago had grown into the Cities of Learning Initiative, an opportunity to apply CSOL’s success across the country. We also began to develop a fully functional badge system at Mozilla via our Hive Learning Networks.

In 2014, we launched The Badge Alliance, a network of organizations and individuals committed to building the open badging ecosystem and advancing the Open Badges specification. Founding members include Mozilla, the MacArthur Foundation, DigitalME, Sprout Fund, National Writing Project, Blackboard and others. More than 650 organizations from six continents had signed up through the Badge Alliance to contribute to the Open Badges ecosystem.

Open Badges has continued to evolve. In mid-2015, the Badge Alliance spun out and became a part of Collective Shift, a nonprofit devoted to redesigning social systems for a connected world. The Badge Alliance will work in concert with another Collective Shift project, LRNG, which is creating a global ecosystem of in-school, out-of-school, employer-based and online learning that includes a technology platform for badges. With continuing support for the Badge Alliance and LRNG’s push to make badges part of connected learning experiences for youth, the Open Badges community remains active and growing. Nate Otto, Director of the Badge Alliance, leads standard development efforts, while a growing band of implementers cooperate to improve the options for using Open Badges to recognize learning across many environments.

What’s Ahead

In 2016, Mozilla will continue to support the Open Badges ecosystem we helped seed. We’re taking on a smaller role, and working alongside several players, but remain committed to the initiative. We’ll also apply what we learned: Open Badges can evolve best as a collaborative, community-driven effort. Its future is brightest when the community comes together to carry it forward.

Mozilla will continue to collaborate with the Badge Alliance and the rest of the Open Badges community. Mark Surman, Mozilla’s Executive Director, serves on the Badge Alliance Steering Committee alongside Connie Yowell and Rob Abel. Mozilla will also pass control of to the Badge Alliance, who will update the resource. Mozilla and the Badge Alliance will also collaborate to plan for the future of

We will also reconsider the role of the Badge Backpack. Mozilla will continue to host user data in the Backpack, and ensure that data is appropriately protected. But the Backpack was never intended to be the central hub for Open Badges — it was a prototype, and the hope has forever been a more federated and user-controlled model. Getting there will take time: the Backpack houses user data, and privacy and security are paramount to Mozilla. We need to get the next iteration of Backpack just right. We are seeking a capable person to help facilitate this effort and participate in the badges technical community. Of course, we welcome code contributions to the Backpack; a great example is the work done by DigitalMe.

We want this to be an open and productive process. Over the next few months, we’ll be writing more, and listening, about the future of badges. We look forward to your ideas, thoughts and feedback.

Air MozillaPrivacy Lab - Privacy for Startups - January 2016

Privacy Lab - Privacy for Startups - January 2016 Privacy for Startups: Practical Guidance for Founders, Engineers, Marketing, and those who support them Startups often espouse mottos that make traditional Fortune 500 companies cringe....

hacks.mozilla.orgLogin Forms over HTTPS, Please

Pretty much everyone who uses the web has used a password to log into something. And pretty much everyone who has used a password has put that password at risk by entering it into an insecure form.

In Firefox 46 Developer Edition, we display a prominent warning to developers about this risk.  When a page with a password field is not delivered securely, Firefox displays a lock with a red strikethrough in the address bar:

Firefox Developer Edition 46 shows a struck-through lock icon for non-secure pages that have a password field

If you’re submitting your login form over HTTPS, that’s good, but it’s not enough. You have to deliver the form over HTTPS too.  If the login form isn’t delivered over a secure channel, then an attacker can inject JavaScript code to steal the user’s password — every character the user types can be stolen by the attacker.

We’re releasing this feature in Developer Edition, since developers are ultimately the ones that need to make logins more secure on the sites they build.  (There are no current plans to show these warnings to users of Beta and general release Firefox.)  We’ve been displaying a warning in the Developer Tools Web Console for a long time; adding the struck-through lock icon to the URL bar makes the issue more prominent.

You can read more about this feature here.

SUMO BlogWhat’s up with SUMO – 28th January

Hello, SUMO Nation!

Starting from this week, we’re moving things around a bit (to keep them fresh and give you more time to digest and reply. The Friday posts are moving to Thursday, and Fridays will be open for guest posts (including yours) – if you’re interested in writing a post for this blog, let me know in the comments.

Welcome, new contributors!

If you just joined us, don’t hesitate – come over and say “hi” in the forums!

Contributors of the week

We salute you!

Don’t forget that if you are new to SUMO and someone helped you get started in a nice way you can nominate them for the Buddy of the Month!

Most recent SUMO Community meeting

The next SUMO Community meeting…

  • is happening on Monday the 1st of February – join us!
  • Reminder: if you want to add a discussion topic to the upcoming meeting agenda:
    • Start a thread in the Community Forums, so that everyone in the community can see what will be discussed and voice their opinion here before Monday (this will make it easier to have an efficient meeting).
    • Please do so as soon as you can before the meeting, so that people have time to read, think, and reply (and also add it to the agenda).
    • If you can, please attend the meeting in person (or via IRC), so we can follow up on your discussion topic during the meeting with your feedback.




Support Forum

  • Today (was/is/will still be for a few hours) a SUMO Day, connected to the release week for Version 44. Keep answering those questions, heroes of the helpful web!

Knowledge Base



  • for Android
    • It’s the Firefox 44 Release Week! Forum talk about the release.
    • Draft release notes are here.
    • This is a staged rollout using Google Play, addressing the crash rate discussions
    • IMPORTANT: Android OS versions 3.0 – 3.2.6 (Honeycomb) won’t be supported in a future release of Firefox for Android; when this happens the app will not be visible on the Google Play Store for users of these OS versions. When we have a more definite time frame for this we will publish another post.
  • for iOS
    • 2.0 is still under wraps – thank you for your patience!

That’s it for today, dear SUMOnians! We still have Friday to enjoy, so see you around SUMO and not only… tomorrow!

Air MozillaWeb QA Weekly Meeting, 28 Jan 2016

Web QA Weekly Meeting This is our weekly gathering of Mozilla'a Web QA team filled with discussion on our current and future projects, ideas, demos, and fun facts.

Air MozillaReps weekly, 28 Jan 2016

Reps weekly This is a weekly call with some of the Reps to discuss all matters about/affecting Reps and invite Reps to share their work with everyone.

The Mozilla BlogIt’s International Data Privacy Day: Help us Build a Better Internet

Update your Software and Share the Lean Data Practices

Today is International Data Privacy Day. What can we all do to help ourselves and each other improve privacy on the Web? We have something for everyone:

  • Users can greatly improve their own data privacy by simply updating their software.
  • Companies can increase user trust in their products and user privacy by implementing Lean Data Practices that increase transparency and offer user control.

By taking action on these two simple ideas, we can create a better Web together.

Why is updating important?

Updating your software is a basic but crucial step you can take to help increase your privacy and security online. Outdated software is one of the easiest ways for hackers to access your data online because it’s prone to vulnerabilities and security holes that can be exploited and that may have been patched in the updated versions. Updating can make your friends and family more secure because a computer that has been hacked can be used to hack others. Not updating software is like driving with a broken tail light – it might not seem immediately urgent, but it compromises your safety and that of people around you.

For our part, we’ve tried to make updating Firefox as easy as possible by automatically sending users updates by default so they don’t have to worry about it. Updates for other software may not come automatically, but they are equally important.

Once you complete your updates share the “I Updated” badge using #DPD2016 and #PrivacyAware and encourage your friends and family to update, too!

Why should companies implement Lean Data Practices?

Today we’re also launching a new way for companies and projects to earn user trust through a simple framework that helps companies think about the decisions they make daily about data. We call these Lean Data Practices and the three central questions that help companies work through are how can you stay lean, build in security and engage your users. The more companies and projects that implement these concepts, the more we as an industry can earn user trust. You can read more in this blog post from Mozilla’s Associate General Counsel Jishnu Menon.

As a nonprofit with a mission to promote openness, innovation and opportunity on the Web Mozilla is dedicated to putting users in control of their online experiences. That’s why we think about online privacy and security every day and have privacy principles that show how we build it into everything we do. All of us – users and businesses alike – can contribute to a healthy, safe and trusted Web. The more we focus on ways to reach that goal, the easier it is to innovate and keep the Web open and accessible to all. Happy International Data Privacy Day!

Open Policy & AdvocacyIntroducing Lean Data Practices

At Mozilla, we believe that users trust products more when companies build in transparency and user control. Earned trust can drive a virtuous cycle of adoption, while conversely, mistrust created by even just a few companies can drive a negative cycle that can damage a whole ecosystem.

Today on International Data Privacy Day, we are happy to announce a new initiative aimed at assisting companies and projects of all sizes to earn trust by staying lean and being smart about collecting and using data.

We call these Lean Data Practices.


Lean Data Practices in action

Lean Data Practices are not principles, nor are they a way to address legal compliance— rather, they are a framework to help companies think about the decisions they make about data. They do not prescribe a particular outcome and can help even the smallest companies to begin building user trust by fostering transparency and user control.

We have designed Lean Data Practices to be simple and direct:

  1. stay lean by focusing on data you need,
  2. build in security appropriate to the data you have and
  3. engage your users to help them understand how you use their data.

We have even created a toolkit to make it easy to implement them.

We use these practices as a starting point for our own decisions about data at Mozilla. We believe that as more companies and projects use Lean Data Practices, the better they will become at earning trust and, ultimately, the more trusted we will all become as an industry.

Please check them out and help us spread the word!

Meeting NotesMobile: 2016-01-27


Friends of the Mobile Team

Give a shoutout/thanks to people for helping fix and test bugs. Make sure friends also get awarded a badge. New contributors are highlighted in bold. Want to update this section?

  • Alex Johnson (:alex_johnson) fixed bug 1205236 – History Panel: Update empty state
  • Daniel Vucci fixed bug 1236864 – Create RobotiumHelper.waitForExactText() and RobotiumHelper.searchExactText()
  • Dominique Vincent [:domivinc] fixed bug 1222234 – Change the tap area to trigger the zoomed view
  • alx91 fixed bug 1208564 – Inconsistent bookmark button highlight

Team Updates

Android platform

snorp, jchen, rbarker, esawin, droeh

Android front-end

margaret, liuche, mcomella, sebastian, ahunt (nalexander/rnewman)


st3fan, bmunar, bnicholson, fluffyemily, jhugman, sleroux

Builds & Releases

  • Third 2.0 build is out on TestFight. We will be doing a few more up until the point of app submission.
  • Goal is to finalize Rapid Release plan this week

Development Updates

  • Making great progress with burning down our 2.0 tracking list – See
  • We have enabled session/retention tracking via Adjust (behind an setting to opt-out)
  • We have switched to using Bitcode, hoping that will improve our troubles with getting symbolicated crashes from Apple
  • Logins manager that was demoed during the product call is feature complete and working out some of the bugs
  • Discussions about ways to authenticate users to access logins using Touch ID/Passcode/FxA
  • Investigating a long-standing top crash issue regarding alert prompts from multiple tabs
  • Moving to using Carthage correctly rather than including dependencies as subprojects
  • Fixing UI issues with opening tabs from 3D Touch and Spotlight
  • Putting in groundwork for l10n screenshots
  • A few session restore startup fixes
  • Opening an updated version of Firefox will open a new tab with a What’s New page


darrin, tecgirl, antlam, gemma

  • General
    • Hiring/interview prep
    • Activity stream follow up
  • Android
    • Cont’d RV/RL and Bookmarks improvements
    • Cont’d Home panels doc – Panels experiments!
    • ‘Add to Home screen’ promotion
    • Experiment with notifications UX (tab queue, reminders, etc)
    • Onboarding V2 follow up



Feature Focus


  • Wednesdays – 9:30am Pacific, 12:30pm Eastern, 16:30 UTC
  • Dial-in: conference# 99998
    • People with Mozilla phones or softphones please dial x92 Conf# 99998
    • US/Toll-free: +1 800 707 2533, (pin 369) Conf# 99998 (max 48 users at any time)
    • US/California/Mountain View: +1 650 903 0800, x92 Conf# 99998
    • US/California/San Francisco: +1 415 762 5700, x92 Conf# 99998
    • US/Oregon/Portland: +1 971 544 8000, x92 Conf# 99998
    • CA/British Columbia/Vancouver: +1 778 785 1540, x92 Conf# 99998
    • CA/Ontario/Toronto: +1 416 848 3114, x92 Conf# 99998
    • UK/London: +44 (0)207 855 3000, x92 Conf# 99998
    • FR/Paris: +33 1 44 79 34 80, x92 Conf# 99998
    • or, for some clients, (may not work for all rooms)
    • Gmail Chat (requires Flash and the Google Talk plugin): paste +1 650 903 0800 into the Gmail Chat box that doesn’t look like it accepts phone numbers
    • SkypeOut is free if you use the 800 number
  • #mobile for backchannel
  • Mobile Vidyo Room

Meeting NotesFirefox/Gecko Delivery Planning: 2016-01-27

Video/Teleconference Details

Planning Meeting Details

Air MozillaPeninsulaJS

PeninsulaJS A Monthly Web development meetup for the Peninsula and South Bay Area. 4th Wednesday of every month.

SeaMonkey2.40 news

Well…while this isn’t super good news since 2.40 still isn’t ready (Win32 candidate builds are up though but haven’t been ‘processed’ yet), we are progressing slowly.

The issue now lies with l10n.  (*roar* indeed ;P)

I was hoping that I’d fire off the l10n repacks automatically; but, something during the repack is causing the loaner to bsod (according to the windows recovery dialog).  So, I am watch the whole process go. (Think of watching paint dry, minus the paint fumes).

Once this is done, it only signifies the end of the first half.  The second half will be ‘interesting’ (for some loose definition).

So we  very much appreciate everyone’s extreme patience with us.  You guys/gals are the best!


WebmakerImproving the X-Ray Goggles Onboarding Experience

by Kristina Shu, Mozilla Foundation designer

X-Ray Goggles has been out in the world helping people kick off their code curiosities for a couple years now, but installing them has always been a pain point for many users. Ensuring users have a seamless experience is crucial for a good first impression and continued use. This post will take a look under the hood at how we redesigned the X-Ray Goggles onboarding experience.

Designer Jam Session

Sabrina, Luke, Natalie and I got together to brainstorm. Our main focus was on usability and finding the simplest way to show users how to install and use Goggles. In the end we decided on two separate web experiences: one for installing Goggles and another for teaching people how to use it.

handdrawn sketch showing relationship between landing page and activity pageWireframe of the two separate pages:

wireframes showing content areas of install page and activity page The Install Goggles page:

annotated version of install page highlighting different content areasBrand Alignment

In an effort to align Mozilla’s brand across Foundation projects we mirrored the look and feel of Thimble’s landing page. This helps create brand awareness through continuity and makes it easier for users to become familiar with our tools. Maybe you’ll notice some similarities?

annotated version of Thimble homepage, showing similarities to Goggles, e.g. "Same typeface" Let’s Get Technical

Working with Pomax, Software Engineer at the foundation, we created simple graphics to lead users through the steps to install the Goggles bookmark. With Pomax’s mad coding skills and browser detection, we are able to determine a user’s operating system and browser. Utilizing this, the site can now offer up graphics specific to a user and the system they are most familiar with. For example:

installation instructions for Firefox on Mac and WindowsActivity Page

Now the fun part, putting Goggles to use! We decided a simple mix-and-match game was the best way to engage users and the perfect opportunity to show off Goggles features like using code to swap out images. It’s eye-catching and fun, but simple enough for a first-time user to complete fairly quickly. Sticking with the Mozilla theme we chose a fox (for Firefox of course), a dino for Mozilla and a Thunderbird. Our fox has gone on to influence further design projects, such as the end of year fundraising campaign and has been christened the ‘dapper fox’.

fox, dinosaur, and bird illustrations, and three versions with top/middle/bottom body parts interchangedTo create an integrated and interactive walk-through tutorial, Pomax was able to overlay instructional bubbles overtop of the activity. We also limited the number of steps and kept the amount of text to a minimum in an effort to not overwhelm users.

screenshot of tutorial in action, with edit pane exposed and pop-up with instructionsTry Them On

Try out the new X-Ray Goggles at and let us know what you think in the comments below or by tweeting @mozteach. There is always room for improvement so if you have any suggestions or want to contribute to these products, check out our repo!

hacks.mozilla.orgGoogle Analytics, Privacy, and Event Tracking

Many of us use Google Analytics (GA) or similar third-party services to keep track of how people interact with our websites; telling us things like when people visit and what they click. This data can help us make important decisions, such as when to schedule maintenance or if a feature can be removed.

Because these services are installed on multiple websites these third-parties can collect a lot of information about people as they move around the internet. Not everyone is comfortable with that. Some people have started taking steps to protect their privacy by installing ad blockers like Ghostery or enabling tracking protection in Firefox.

I think this is great!

Sometimes this breaks things

When code depends on these third-party services and they’re not there stuff goes wrong.

I’m going to use tracking external links as my example because it’s a common use case, but I started investigating this problem because we accidentally broke the ability to navigate within our website for users who were choosing not to load the GA script.

I’m also going to use the universal analytics tracking code (analytics.js) for my examples here, not the classic analytics code (ga.js), so if you notice some differences between my code and yours that might be why.

What goes wrong?

The current method (Jan 2016) for tracking outbound links as recommended by Google looks like this:

<a href=""
   onclick="trackOutboundLink(''); return false;">
        Check out
var trackOutboundLink = function(url) {
    ga('send', 'event', 'outbound', 'click', url, {
        'transport': 'beacon',
        'hitCallback': function(){document.location = url;}

What Google is recommending here is:

  1. add return false to your links so that clicking on them doesn’t take the user off the page
  2. when a user clicks a link, add that click to the GA queue of events to track and tell GA to take the user to the new page after that is done
  3. GA processes the event
  4. GA triggers the callback, taking the user to the new page

This guarantees that the user doesn’t leave the site before their action is recorded. However, if GA fails to process the event… it never triggers the callback, breaking all links off the website. :(

We are relying on GA to send the user to the new page, but what if the GA code never executes?

How we can avoid problems

If you’re using the current recommended method of adding GA to your site you’re including something like this on all your pages:

(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//','ga');

ga('create', 'UA-xxxxx-x', 'auto');
ga('send', 'pageview');

This snippet creates a global ga object. The ga object is available in JavaScript whether the rest of the script successfully loads from Google or not.

This means two things:

  1. It is possible to add events to the queue before GA has loaded. (Cool! This is handy for tracking events that happen really quickly.)
  2. We can’t check if GA has loaded by checking for the existence of the ga object like we used to because it’s always there.

So how do we know if GA has loaded? Well, clever people have figured out that when it initializes, GA alters the global ga object in a few different ways. None of these changes are officially documented by Google which means any of them could break in the long term.

In Tracking outbound links with Google Analytics, Andreas Veithen (who works at Google but was writing on his personal blog) suggests that the most reliable check is to see if the ga object still has the q array. The array is removed after GA initializes and processes all the events waiting in the ga.q queue. Because ga.q is created by the snippet we paste on our sites, changing it would require us to make changes to our websites and so would be a major change for Google to undertake. On the other hand, it would also be possible for Google to change their code to not remove ga.q so I’m not sure this is more reliable than any other method.

In Google Analytics, Ghostery, and Event Tracking John Morton suggests checking for the create property on the ga object. This technique has been around the longest and is probably the most widely used (I say this after a quick informal glance at GitHub).

In Workaround for when the hitCallback function does not receive a response (analytics.js), Dom Sammut observes that we can check for the loaded property on the ga object. This is a method used informally in some Google documentation so it’s probably also somewhat reliable. I like this one because it is obvious what we’re checking for.

Opting for the last method, we alter Google’s suggested code like so:

var trackOutboundLink = function(url) {
    // check if the GA object exists and that it has initialized
    if( && ga.loaded) { {
        // if yes, rely on GA to follow link
        ga('send', 'event', 'outbound', 'click', url, {
            'transport': 'beacon',
            'hitCallback': function(){document.location = url;}
    } else {
        // if not, follow link ourselves
        document.location = url;

Making this kind of check before relying on any third-party script is good practice. You should also be including a local fallback for any script that is not coming from your own domain – including CDNs.

Respecting our users’ privacy

Most users care about their privacy and there are more steps we can take to protect it. Depending on where you work you may also be required by your country’s laws or your company’s privacy policy to take extra care with users’ data.

Configuring Google Analytics for privacy

If Google Analytics is your analytics platform of choice, there are a number of steps you can take to make it more private.

One of these is an easy configuration option to request anonymized user IP addresses. Essentially, Google Analytics changes the last octet of the user’s IP address to 0 before recording it.

This is triggered by adding an additional line to your tracking snippet after ga('send', 'pageview');.

ga('set', 'anonymizeIp', true);

Of course, Google still gets the users’ IP address (that’s the way the web works), we’re just trusting them not to store it.

Respecting Do Not Track (DNT)

It’s also possible to detect when a user has enabled Do Not Track and be pro-active about what scripts you choose to load.

Schalk Neethling documents the process in Respect User Choice ~ Do Not Track. In a nutshell, we wrap the GA call with a check to see if the user has enabled DNT before executing the call to include the file.

function _dntEnabled() { 
    // include the helper function from

// Check the value of DNT before including GA
if (!_dntEnabled()) {
    // include the Google Analytics snippet

This means that the ga object will not be added to the global scope for our page, but that’s okay, the code snippet above handles that case gracefully as well.

Do you have other techniques/suggestions for using analytics services while respecting the online privacy of visitors to your site? Feel free to share your experience.

Air MozillaQuality Team (QA) Public Meeting, 27 Jan 2016

Quality Team (QA) Public Meeting The bi-monthly status review of the Quality team at Mozilla. We showcase new and exciting work on the Mozilla project, highlight ways you can get...

Air MozillaBugzilla Development Meeting, 27 Jan 2016

Bugzilla Development Meeting Join the core team to discuss the on-going development of the Bugzilla product. Anyone interested in contributing to Bugzilla, in planning, development, testing, documentation, or...

SeaMonkeyNew: WINDOWS Trunk Build SeaMonkey-2.43a1 2016-01-15 13:54

New 2.43a1-WIN- Nightly available
Please use this unofficial build for intensive tests, but be careful, create a backup of your User Profile before you start!

Most functions work fine for me, but:

Only for testing, you will use those builds on your own risk.

Who will submit the  second Bug for this build? Or confirm the first one?

Air MozillaThe Joy of Coding - Episode 42

The Joy of Coding - Episode 42 mconley livehacks on real Firefox bugs while thinking aloud.

Air MozillaJanuary 2016 Brantina: The Right Way to Build Software: Ideals Over Ideology with Jocelyn Goldfein

January 2016 Brantina: The Right Way to Build Software: Ideals Over Ideology with Jocelyn Goldfein Rapid releases. Closed source software. Dogfooding. For legitimate reasons, Mozillians end up on all sides of these (and other) debates. We're not alone. Leading software...

Mozilla Add-ons BlogAdd-ons Update – Week of 2016/01/27

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, 1446 add-ons were reviewed:

  • 1068 (74%) were reviewed in less than 5 days.
  • 74 (5%) were reviewed between 5 and 10 days.
  • 304 (21%) were reviewed after more than 10 days.

There are 212 listed add-ons and 2 unlisted add-ons awaiting review.

If you’re an add-on developer and would like to see add-ons reviewed faster, please consider joining us. Add-on reviewers get invited to Mozilla events and earn cool gear with their work. Visit our wiki page for more information.

Firefox 44 Compatibility

This compatibility blog post is up. The bulk compatibility validation was run last week. Some of you may have received more than one email because the first validation run had many false positives due to a bug and many add-ons failed validation incorrectly.

If you’re using the Add-ons SDK to build your add-on, make sure you’re using the latest version of jpm, since some of the JavaScript syntax changes in 44 affect add-ons built with cfx and older versions of jpm.

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 the timeline, as well as responses to some frequently asked questions. The current plan is to remove the signing override preference in Firefox 46 (updated from the previous deadline of Firefox 44).


Electrolysis, also known as e10s, is the next major compatibility change coming to Firefox. Firefox will run on multiple processes now, running content code in a different process than browser code.

This is the time to test your add-ons and make sure they continue working in Firefox. We’re holding regular office hours to help you work on your add-ons, so please drop in on Tuesdays and chat with us!


If you read the post on the future of add-on development, you should know there are big changes coming. We’re working on the new WebExtensions API, and we recommend that you start looking into it for your add-ons. You can track progress of its development in

We will be talking about development with WebExtensions in the upcoming FOSDEM. Come hack with us if you’re around!

WebmakerCommunity Spotlight: San Emmanuel James

At Mozilla, we have been cultivating a global network of web literacy leaders who are teaching and learning the most important skills of our age: the ability to read, write and participate in the digital world. Many people across the globe have joined us in this effort, and we are constantly inspired by how they bring their knowledge and experiences back to their communities.

San Emmanuel James

San Emmanuel James at MozFestEA 2015.

One of those people, San Emmanuel James, has illustrated this kind of impact by being an early pioneer for Mozilla Uganda, MozFestEA, and localization projects. We interviewed San James to learn more about his journey towards web literacy leadership. Here’s what he had to say:

What is your background with the web? With Mozilla?

Growing up, computers were not accessible to everyone, the internet was an even scarcer resource. I first interacted with the web during my high school vacation while I was waiting to join the university. My love affair with the web began when I joined the University to pursue a degree in computer science.

In my final year at university, we embarked on a project to localize Mozilla Firefox, then version 3.0 to Luganda, a local language in Uganda. At the time, we were introduced to Pootle and the translate toolkit by a team from The project was fascinating. It was exciting to do the localization and build the language packs. Mozilla Firefox in Luganda became an official build in version 3.6.

At the launch, we were joined by various guests including the prime minister and the minister of state for ICT. The Reps program and the Mozilla community in Kenya were still new. When they had about the launch, Alex Wafula led a team to join us at the launch and there after we talked about birthing a Mozilla community in Uganda. That was 5 years ago in 2011. I started the local community in Uganda and was the first Mozilla Rep.
Today, we have over 10 Reps and 2 mentors and over 40 active community members, plus hundreds of others who join us occasionally at our community events. From localization, we have contributed to other functional areas such as Webmaker, Womoz, Firefox OS, Developer Relations, among others.

San Emmanuel James

San Emmanuel James (3rd row from front, 7th from left) with MozFestEA 2015 participants.

What is your most noteworthy #teachtheweb accomplishment?

In its second year, I believe MozFestEA has been my most noteworthy accomplishment. MozFest EA has turned out to be a major launch pad for local innovations and a key platform collaboration and technological development. It has attracted the attention of local and foreign partners, as well as government. Participants come from across the region and beyond to celebrate the awesomeness of Mozilla and learn more about how we contribute to nurturing the open web. At the event we run a number of #teachtheweb sessions. MozFest EA has the potential to become the largest tech event in the region.

San Emmanuel James

San Emmanuel James speaks with a participant at MozFestEA 2015.

How are you inspiring others to #teachtheweb/join in the Mozilla cause?

By sharing my experience and the experience of others. The way we teach the web in Mozilla is novel and revolutionary in places like Uganda where learning is mostly theoretical and classroom based. Using, train-the-trainer approach and practical/illustrative learning techniques, I help new and existing community members increase their knowledge and learn how to teach others. Mozilla has a wealth of learning resources it has created over time and I have made it a point to bring these to the attention of the community members so they can benefit from it. I have been quite keen on and developer relation resources I see impact the local community.

You can learn more about MozFest EA here, and the Mozilla Uganda community here.

Do you know someone that has made tremendous strides towards global web literacy or has made an impact through a Mozilla Club, classroom, or the #teachtheweb community at large? Share the story with us.

Meeting NotesChannel: 2016-01-26


Jorge, Milan, Philipp, Ritu, Lawrence, rrayborn, lizzard, KaiRo, bbermes, calixte, snorp, rolandtanglao, jst, blassey

Schedule Update

  • 44
    • Pushed to release channel, update rate set to 25%
    • Pushed to Google Play Store, staged rollout set to 10%
    • Snorp’s email re: bug 1142944.
      • Seems like a good ride-along but not a dot release driver per se.
      • Would like confirmation from Nightly/Aurora/Beta whether this helps or not.
  • 46 mostly ready (release notes still in progress) for release later in the week
  • ESR 38.6.0 pushed to cdntest and nearly ready for release, sec advisories ready. Should go out within the hour.


  • [Bug 1241237] – Blocklist vulnerable versions of Silverlight plugin (5.1.41105.0 and lower)
 * Someone (cpeterson?) looking for uptake and usage info to determine if block is good to go.


Aurora / Dev Edition

  • (45) Overall rate: 1.8 – browser 1.0, content 0.8 – yellow
  • Still dominated by the same bugs as in the recent weeks, mostly e10s which will only affect the experiment population in 45 beta

(46) We had a crash spike on Nightly on the weekend but has been fixed in yesterday’s data already (backout) – right now, no crashes known that need fxing before updates open


  • (44) Overall rate: 1.1 – yellow
  • bug 1242393 (Trusteer Rapport) is 2.8% of all RC3 crashes (and #4 Top Crash Score)
  • in addition, the signature of bug 1235257 (Trusteer as well) is another 3% (#2 Top Crash Score)
  • bug 1222933 (Ad Muncher) is #1 Top Crash Score


  • (43) Overall rate: 0.95 – borderline yellow/green


  • Android 44.0b11 looks OK, 3.1 on weekend, 2.8-2.9 on Friday/Monday – that puts us in the same area as 43 beta.
    • Overall (multi-beta) crash rates show a similar picture, putting yesterday just inside the yellow area.

User Advocacy

No updates


  • Milan mentioned about the video playback showing black screen on win10 which is gets worse due to the latest windows updates (occurs off and on)

Special Topics

Aurora/Beta Feature Review

  • e10s, APZ, preserve-3d enabled for 46 aurora (APZ meeting on Thurs). It sounds like they need to stay locked together.
  • WebVR
  • Profile manager (may not ship with 46)
  • Android runtime permissions for Camera, Phone, Storage, etc
  • Bug 1220906 – Delete Old Sync Android Account type

Post-Mortem (Tues 2wks from GA Release)

  • Fx44 post-mortem will be on 02/09

Channel Meeting Details

Video/Teleconference Details – NEW

  • 650-903-0800 or 650-215-1282 x92 Conf# 99951 (US/INTL)
  • 1-800-707-2533 (pin 369) Conf# 99951 (US)
  • Vidyo Room: ReleaseCoordination
  • Vidyo Guest URL

Meeting NotesThunderbird: 2016-01-26

Thunderbird notes 2016-01-26. NOON PT (Pacific). For meeting time, previous notes and call-in details see


  • rkent, ba, jcranmer, wsmwk, Jorg K, marcoagpinto, mkmelin, aceman, sshagarwal (audio only), Paenglab, MakeMyDay


  • version 45
  • governance, futures
  • builds
  • bug 1211160 – Why is updates with calendar add-on messing with Thunderbird?
    • I (rkent) hope to respond to review comments today.

Action items from last meetings

  • Thunderbird Council reorganization: we’ll discuss this in the Council directly and do some reorganization. This is not a forever governance plan, but we need to be practical given the many demands of the moment.
    • I (rkent) sent a proposal to the Council two weeks ago, now I need to badger a few people to give responses and decisions. Gerv has a process of voting to approve the slate using tb-planning that he will be running.
  • we should really clean up the module owners and peers at and Candidates for removal: Bienvenu, standard8, sid0, JosiahOne.
    • jcranmer??

Current status / Announcements

Current Release Critical Issues

Leave critical bugs here until confirmed fixed. If confirmed, then remove.


  • 38.3.1 bug 1211160 calendar is a workaround for 38.3.0 — Thunderbird Version 38.3 Buttons not working menu items // bug 1211291 – Folders are visible, but messages are not. (?related to bug 1211358 lightning chrome.manifest not updated in 38.3.0 ?
    • rkent has patch, see above

important (but not top critical)

  • status TBD – bug 1182629 – update to 38.1.0 from 38.0.1 re-enables disabled Lightning
  • status TBD – bug 1176399 – Multiple master password when GMail OAuth2 is enabled
  • status TBD – bug 1176748 – fix main thread proxies to the migration code (jorgk and m_kato have done such fixes in the past)
  • filelink, proxy,
  • topcrash bug 1149287 is ** 31% of our crashes** – see below

Version 45

  • tracking-tb45 flags: unfixed ?/+ –
  • Items that may need to be checked and tested: gtk3, windows 10, windows 64bit?
  • hardware acceleration – not looking promising (no changes / no testing in recent months)


  • Past
    • 38.5.1
    • 43.0b1 2015-12-31
    • 44.0b1 2016-01-18


Past releases:

  • (bundled)
  • (AMO)

Upcoming releases:

  • 4.0.6 (bundled) (TB 38.6)
  • 4.7.0 – bug 1225778 (TB 45)

Round Table

Jorg K

  • Landed:
    • bug 1175839 – JSMime regression, square brackets not quoted correctly.
    • bug 1231917 – funny artefacts when replying to a saved message.
    • bug 1235205 – dictionary selection problem.
    • bug 1239658 – Override charset carried over to the next message processed (part 1).
    • bug 1240903 – Links broken in compose (regression)
    • bug 301712 – M-C – More en-US dictionary clean-up, removed 4000 uncommon names.
    • bug 1241480 – Bustage fix.
  • Awaiting review:
    • bug 597369 – Override charset carried over to the next message processed (part 2).
  • Ongoing:
    • Investigating why drafts folder gets corrupted every few months bug 1216914
  • Other work: Aurora Landings


  • Review queue is still backlogged
    • Most complicated review at this point is the JSAccount stuff
  • Looking at JS-ification concerns, see mdat/tb-planning post
    • Current status of JS protocol libraries:
      • SASL: Complete, except for NTLM, GSSAPI, and EXTERNAL (not that it’s easy to pull in)
      • Email-socket: prototyping along with NNTP client
      • NNTP client: I want to test replacing our C++ implementation with this once JSAccount is finished
      • JSMime: I have untested prototypes for message composition for below
  • Working on improving JS send implementation
    • Current idea is to try to use an internal interface to break the patches into smaller sets
  • PSA: if you’re touching anything in nsMsgSend or nsMsgCompUtils (or anything else in mailnews/compose except for nsMsgCompose), PLEASE ADD AN XPCSHELL TEST (or a mozmill test if not possible via xpcshell)… if you don’t, it will probably break within a year!


  • Apologies for being invisible for quite some time
  • Completed delivery format status being persisted in draft feature request: bug 1202165
  • Will be working on Address book visibility issues in AB window and composition sidebar


  • We need decision on {{bug|584313)) from a mailnews peer if it can go in (was looked at by Neil and comments were solved)
    • Magnus make the call if needed.
  • 1202165 is ready in code (needs review from jcranmer, who gave r- due to test failure). I just work on some additional mozmill tests.

Question Time

When will we get 64 bit Thunderbird builds on Windows. They are built right now for Daily, for example:
See bug 634233


European meet-up dates:
TB is looking for events/dates in March to May timeframe, that would allow the team to meet with possible European partners in Europe. BA to send an e-mail to the TB team with upcoming European events.

Help Wanted

InstantbirdFacebook Chat Issues

Recently we’ve received many questions from users whose Facebook Chat accounts will no longer connect in Instantbird.

Facebook officially deprecated its XMPP gateway on April 30th, 2015, but it continued to function until recently. Unfortunately it appears this is no longer the case.

After investigating the issue, we have been unable to find a workaround to keep it working. However, since Facebook deprecated the gateway, it’s surprising it even worked for this long!

Meanwhile, libpurple has a new protocol plugin that uses Facebook’s proprietary chat API, which we are considering offering as part of a future release of Instantbird.

Stay tuned!

Arabic Mozillaماهو الجديد في فيرفكس ؟ : الإصدار 44 من متصفح فيرفكس

كالعادة يحمل الإصدار 44 من متصفح فيرفكس لسطح المكتب ليوم 26 جانفي 2016  أشياء مميزة جدا جديدة وأشياء أصلحت وأشياء غيرت. في هذا المقال سنستعرض لكم أهم ما جاء به هذا الإصدار.

الجديد :
1 – تحسين صفحات التنبيه أو التحذير الخاصة بالشهادات الغير آمنة (عموما تعرف أن الموقع آمن أو لا بوجود القفل أمام رابط الموقع في أعلى المتصفح، وكملاحظة يمكن للموقع أن يكون آمنا ولكن فيرفكس يحب أن تكون الشهادة من مصادر معروفة رغم أنه بعض المواقع تكون آمنة في الإتصال ونعنى به أنه لا يمكن معرفة ما تفعل في الموقع من قبل المترصدين بك، لذلك في بعض المواقع خاصة الصغيرة منها قد تجد أخطاء في الأمان رغم انه آمن وهذا ما يعني أن الموقع قد إشترى الشهادة من مصدر غير معروف أو غير مشهور أو قام ببناءها بنفسه.)

2 – تمكين ترميز H.264.

3 – تمكين ترميز WebM/VP9 في أنظمة التشغيل التي لا تدعم H.264.

4 – في animation-inspector تم وضع أيقونة جديدة ذات مهمة معينة يمكنك إكتشافها.

5- دعم صيغة ضغط the brotli عبر البروتوكول الآمن HTTPS .

6- أوامر جديدة للشاشة في أدوات المطور. وتخص إختيار المستخدم لنسبة البيكسل.
1-  لحل مشكل مطابقة خط مستخدمي لينكس عند تغيير المنصة نحو نظام آخر تم إضافة دعم unicode-range في خط الويب.

2- إستخدام شهادة توقيع SHA-256 في وينداوز builds ، لتلبية متطلبات توقيعات جديدة.

3- حذف دعم the RC4 decipher.

4- المتصفح لم يعد يثق بشهادات the Equifax Secure Certificate Authority 1024-bit root certificate أو  the UTN – DATACorp SGC 

5- تحقق أكثر صرامة فيما يخص خطوط الويب.

6- بشكل مؤقت دعم turned off في لوحة مفاتيح الشاشة في نظام وينداوز 8 و 8.1 .

الجديد في المطور :
لن أكتب كل الجديد في هذا القسم لأنها حقيقة أشياء كثيرة تم إضافتها ويمكنك الإطلاع عليها إن كنت مطور في موقع شبكة مطوري موزيلا ، أدخل على فيرفكس ثم رقم الإصدار. وبشكل سريع أهم المجالات التي مست عليها التغييرات هي CSS 
الإصلاحات :
1- إصلاج حدوث إنهيار أو تعطل عند مشاهدة فيديو في وينداوز إكس بي وفيستا. تقرير المشكل هنا

2- إصلاحات أمنية ( فيروسات). التقرير هنا


hacks.mozilla.orgWeb Push Arrives in Firefox 44

Have you ever wished that a website could notify you when something important happened, even if you didn’t have the site open? Maybe you’ve got an incoming WebRTC call, an instant message, or a financial update. Perhaps your city just declared an emergency snow plowing schedule.

Sometimes you just want to know when something happens.

That’s what Web Push does. It’s available now in Firefox 44.

What does Web Push look like?

As long as your browser is running, it can receive notifications from websites, even without having that site open. This means you can close your email tab and still find out when a new message arrives. That’s a huge win for memory usage, performance, and battery life.

Notifications from websites are indistinguishable from native notifications, and Mozilla’s Service Worker Cookbook has several live demos where you can see this for yourself.

Screenshot of a Push Notification on Mac OS X

Much like with geolocation or webcam access, Web Push requires explicit, revokable permission before a website can show notifications to a user.

Screenshot of the in-browser Push Notification permissions prompt

What about privacy?

Web Push works by maintaining a persistent connection to a Push Service that acts like a central relay for messages. Each browser vendor runs their own Push Service, and it’s been designed to safeguard your privacy:

  1. To prevent cross-site correlations, every website receives a different, anonymous Web Push identifier for your browser.
  2. To thwart eavesdropping, payloads are encrypted to a public / private keypair held only by your browser.
  3. Firefox only connects to the Push Service if you have an active Web Push subscription. This could be to a website, or to a browser feature like Firefox Hello or Firefox Sync.

You’re always in control: Push notifications are opt-in, and you can revoke permission from any website at any time, either from the page info panel or from the “Notifications” section in Preferences → Content.

How does Web Push work?

Before today, people had to rely on apps, emails, or text messages for timely notifications. Now the Web can do that.

Web Push is an extension to the Service Worker standard, which means you can find excellent, annotated demos of Web Push in Mozilla’s Service Worker Cookbook. MDN also has great documentation on Web Push, and if you need to go straight to the source, the most recent Editor’s Draft of the specification lives on GitHub.

Last October, Chris Mills wrote an excellent introduction to Web Push here on Hacks, which explains the Service Worker lifecycle and how it relates to Push. To recap:

  1. A website registers a Service Worker with the browser. Service Workers are small JavaScript programs with super powers like intercepting network requests or running even when their parent website is closed.
  2. The Service Worker registration object exposes a pushManager property.
  3. The website uses the pushManager to either get an existing subscription or create a new one
  4. The subscription object exposes metadata about the subscription, including a unique endpoint URL on your browser vendor’s Push Service.

Whenever the website POSTs to that endpoint, the Push Service routes the message to your browser, where the appropriate Service Worker receives a push event. The Service Worker can then show a notification or take other actions.

In code, the Service Worker might look like this:

self.addEventListener('push', function(event) {
    self.registration.showNotification('Example Notification', {
      body: 'Hello, world!',

Meanwhile, registering the Service Worker and getting permission to show notifications might look a bit like the code below.

Note: This code sample uses ES7’s draft async/await syntax, since it reads most clearly. To use this in production, check out the equivalent in plain JavaScript.

async function registerForPush() {
  // Register the Service Worker
  let registration = await navigator.serviceWorker.register('service-worker.js');
  // Check if we already have a subscription
  let subscription = await registration.pushManager.getSubscription();
  // If not, try to subscribe.
  if (!subscription) {
    subscription = await registration.pushManager.subscribe();
  // Save the subscription data on our website's backend.  
  await fetch('/save-push-endpoint', {
    method: 'post',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify(subscription)
  // Done! Now our backend can send Push messages by POSTing to subscription.endpoint!

Again, there are a bunch of live demos with annotated source code over at the Service Worker Cookbook. If you’re confused, start by reading those.

Other Questions

Will a user’s endpoint URL ever change?

The endpoint can change at any time. In practice, this should be rare, but you should always be prepared to handle a pushsubscriptionchange event, and should check for a new endpoint whenever you getSubscription() or subscribe().

What’s the state of browser support?

At the time of writing, Push works in Firefox for Desktop and has partial support in Chrome. Pushing to Chrome also requires some additional setup. The Microsoft Edge team lists Push as Under Consideration. More info at Can I Use?

How do I let a user unsubscribe from Push?

Use the subscription.unsubscribe() method. Don’t forget to also update your backend so you stop sending notifications to the old endpoint.

Can I check if subscribe() will prompt the user, before it actually happens?

Yep! Calling pushManager.permissionState() returns a Promise that resolves to your current permission state: "granted", "denied", or "prompt".

Make sure to let us know what you think about the Push API in the comments. We welcome all feedback including suggestions, questions, and bug reports.

QMOFirefox 45.0 Beta 3 Testday, February 5th

Hello Mozillians,

We are happy to announce that Friday, February 5th, we are organizing Firefox 45.0 Beta 3 Testday. We will be focusing our testing on the following features: Search Refactoring, Synced Tabs Menu, Text to Speech and Grouped Tabs Migration. Check out the detailed instructions via this etherpad.

No previous testing experience is required, so feel free to join us on #qa IRC channel where our moderators will offer you guidance and answer your questions.

Join us and help us make Firefox better! See you on Friday!

WebmakerMozilla Announces Expansion of Gigabit Innovation Program at US Ignite Event in Washington, DC

Today, Mozilla representatives are in Washington, DC with our partners from the National Science Foundation and US Ignite announcing the opening of the Mozilla Gigabit Community Fund for 2016. $300,000 will be made available for pilot projects that show how high-speed networks can be leveraged for learning in the two pioneering gigabit cities of Kansas City and Chattanooga, TN. From robots that can be controlled from across town without lag to virtual reality applications that transport students across the globe, Gigabit Community Fund projects will explore how next-generation technologies can make learning more immediate, equitable, and immersive. Application details and deadlines are available at

Since 2011, Mozilla has partnered with US Ignite and the National Science Foundation to move gigabit innovations out of the lab and into communities. As more and more cities benefit from high-speed networks and the national gigabit ecosystem grows, projects like the Gigabit Community Fund are critical to increasing participation in next-gen innovation. This program brings new voices into the conversation about what the future of the Web should look like and fuels Mozilla’s mission of supporting an Internet where all people are empowered, safe, and independent.

Community members beta test a Gigabit Fund project at Chattanooga’s first Mini Maker Faire. (Photo Credit: Jason Oswald)

Community members beta test a Gigabit Fund project at Chattanooga’s first Mini Maker Faire. (Photo Credit: Jason Oswald)

To date, the Fund has supported the development of 17 pilot projects in Kansas City and Chattanooga, engaging teachers, students, informal educators, and technologists of all stripes as co-creators and beta-testers of gigabit technologies.

“From relatively small grants have come huge impacts, as these projects continue as yearlong courses in our schools or even as full-fledged gigabit tech startups,” said Mozilla Gigabit City Lead Lindsey Frost. “Pilots have allowed students in these communities to collaboratively mix music, create media-rich videos that compile instantly, and even build a water-quality monitoring system that streams data in real time to local researchers.”

Gigabit Community Fund grant applicants can be companies, institutions or nonprofits eager to leverage gigabit Internet to improve education and workforce development. Though pilots must take place in Chattanooga or Kansas City, technologists and educators from all over the United States can apply, and cross-city grants are available.

Students at a Maker Party in New York test out The Gigabots, a Kansas City Gigabit Fund Project (Photo Credit: Hive NYC)

Students at a Maker Party in New York test out The Gigabots, a Kansas City Gigabit Fund Project (Photo Credit: Hive NYC)

These cross-city grants are not the only way we’re expanding the geographic reach of Mozilla’s gigabit innovation work. In partnership with the National Science Foundation and US Ignite, we’re also announcing at today’s event that we’re expanding the Gigabit Community Fund to three additional cities by 2018, with the first city to be announced in May 2016. Selected cities will receive support and staffing from Mozilla as well as $150,000 in Gigabit Community Fund innovation funding.

“There are more than thirty Smart Gigabit Communities from all over the United States represented at today’s event,” said US Ignite Executive Director Bill Wallace. “The Gigabit Community Fund presents a tremendous opportunity for them and for all gigabit communities to explore how next-generation applications can enhance education and workforce development.”

To submit your city for consideration to become the next Gigabit Community Fund city or to learn more about the 2016 Gigabit Community Fund grant cycle, visit