The Mozilla BlogMozilla Boosts Leadership Team With Connected Devices Appointment

Today, we are pleased to announce that Ari Jaaksi will be joining the Mozilla leadership team next month as our new Senior Vice President of Connected Devices.

In this role, Ari will be responsible for Firefox OS and broader exploration of opportunities to advance our mission across the ever-increasing range of connection points of the modern Internet, i.e. phones, TVs, IoT, etc.

His deep understanding of Open Source projects and mobile leadership experience at Intel, HP, and Nokia developing platforms and products make him ideally positioned to lead our Firefox OS and Connected Devices strategy.

Firefox OS is an important part of our mobile strategy, in addition to Firefox for Android and iOS and other initiatives. We believe that building an open, independent alternative to proprietary, single-vendor platforms is critical to the future of a healthy mobile ecosystem. And it is core to our mission to promote openness, innovation and opportunity in online life.

We believe Mozilla’s role in the world is more important today than it has ever been. Issues of digital rights, privacy, online safety and security are real and impact our lives daily. The pace and complexity of online life continues to accelerate from here.

Over the last year we’ve focused on building our our team to compliment the vibrant Mozillian community adding the necessary know-how to continue to bring choice, control and opportunity to everyone on the Web.

Please join me in welcoming Ari to Mozilla!

Ari’s LinkedIn Profile and Bio

Meeting NotesMozilla Project: 2015-10-05

  • 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
    • US/Toll-free: +1 800 707 2533, (pin 369) Conf# 8600
    • 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
    • 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

Upcoming Events

Tuesday, 06 October
Wednesday, 07 October
  • Firefox OS meetup: a monthly meetup to gather parisian Firefox OS enthusiasts. This month Dietrich Ayala, Wilson Page and Guillaume Marty are speaking.
  • Networking Workshop in the SF office for the TechWomen program – 98 technical women from the Middle East, Africa, and Central Asia are in the bay area for month long professional mentorships (6 at Mozilla) and many of them will be in our commons to practice professional networking skills, mingle, and eat appetizers, all Mozillians are welcome to meet them! 6:30 pm, SF commons.

Project Status Updates (voice updates)

Firefox and Cloud Services

Speaker Location: mfinkle – remote

Firefox for Android

  • Click-to-view images landed in Nightly
  • Search history suggestions land on Nightly & a glimpse of some UI Telemetry in a blog post
  • A/B Testing a new onboarding flow lands on Nightly, could be enabled on Fx43
Firefox OS

Peter Dolanjski, Ontario, Canada (remote)

Participation/Foxfooding Update

  • Participation pathways:
    • Foxfooding (objective: Increase product quality, innovation ideas)
    • Porting (objective: Increase Firefox OS availability)
    • B2GDroid (objective: Increase number of foxfooders)
    • Gaia development (objective: Increase product quality, reduce parity gap, innovation ideas)
  • Paris meetup last week very productive –> updated and consolidated overall strategy and plan for Q4
  • Reviewing results of feedback for foxfooding program and working on ways to scale to larger community audience. Stay tuned.


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
Jeff Bryner Director of Infosec Michal` Purzynski appointed to Bro IDS Leadership team. Moz PDX office no n/a n/a
Potch That Guy from the Podium View Source Conference Mountain View no Tickets are on sale NOW! Register now for View Source- Mozilla’s first Web Development conference. Spread the word – Mozilla Portland Office, we need you to help get local volunteers! Help spread the word. Direct volunteer form:, Link via website:


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?
Lara, Mutriba, Esraa, Alaa, Ayah, Kumba, Techwomen Emerging Leaders! Techwomen Mentors Mountain View and San Francisco Mountain View/SF this month and then Lebanon, Gaza, Egypt, Sierra Leone, Tajikistan and beyond Building community in Lebanon, Gaza, Egypt, Sierra Leone, Tajikistan

Introducing New Hires

New Hire Introduced by Speaker location New Hire location Will be working on
Isabel Rios Escobar Pallavi Yaramada Mountain View Spain Sr. Mobile QA Engineer
Heather Crince Sean Rich Mountain View San Francisco Senior Product Manager
Franziskus Kiefer Christoph Kerschbaumer Mountain View Berlin Office Security Engineer
Juan Gómez Mosquera Gregor Wagner Berlin Office Berlin Office Senior Platform Engineer


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

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


MOZFEST 2015!!!!

In your inbox right now is an invitation to come to Mozilla Festival 2015, taking place from the 6th- 8th of November at Ravensbourne College. Joins us in London as we bring together networks and community leaders working towards universal web literacy to share practices, tools and experiences. Details of how to get involved or register for tickets can be found in the email or on the wiki page

Air MozillaParticipation Demos

Participation Demos Watch the Participation Team share what we've learned and worked on in Q3 2015.

Air MozillaMozilla Weekly Project Meeting

Mozilla Weekly Project Meeting The Monday Project Meeting

hacks.mozilla.orgBuild and Run Firefox OS on Sony Open Devices

A few years ago, Sony released their first port of Firefox OS, for the Xperia E. Since then, Sony has started the Open Devices initiative to bring support for AOSP (the Android Open Source Project) to many more of its smartphones. The porting work described in this post is based on this effort and brings Firefox OS to a dozen different Sony devices.

Sony tablet and phone

Build from the FXP Project

Builds of Firefox OS for a number of Sony devices are now available from the FXP project. Thanks to Adam Farden for his work on improving the default look and feel of unbranded Firefox OS builds, and hosting these images. These builds also have over-the-air updates, so you can stay up to date as Firefox OS continues to improve! They’re built from the nightly branch of Firefox OS though, so make sure to back up your information regularly.

FXP Project

Read on to create your own build of Firefox OS for a Sony Xperia device…

Building Firefox OS

Before you begin, a few warnings:

  • TIME! It will take overnight to download the source code. I am not joking! Expect it to take 10 hours or more to fetch the entire source tree. Firefox OS sits atop a number of other projects, including Linux, the Android Open Source Project, and many others. Building a smartphone image is not like building the Firefox browser, or even like compiling a custom kernel.
  • DATA! Flashing your device will destroy the existing operating system and may delete your user data. Always do a complete back-up of any information you want to keep.
  • BRICKS! Flashing a new operating system on a device always comes with the risk of rendering the device permanently unusable. It’s rare, but possible. Sony provides an official tool called Emma. It works with the S1 Bootloader flashmode so the chances of completely destroying a device are indeed very low and mostly everything can be saved by this tool. It is very simple to use and documentation is available. It’s running in Windows but we have been using it successfully in VirtualBox: don’t forget that the USB IDs for S1 Bootloader mode are different. So you need to force your device to be attached to the virtual machine.

Oh, you’re still here? Great, but don’t say we didn’t warn you. Read on to learn how to build Firefox OS for your Sony device!

Device Support

Firefox OS currently has support for the Shinano and Yukon Sony device platforms. This means that you can build for the Xperia Z2, Z3, Z3 Compact, Z3 Tablet Compact, as well as the E3, T2 Ultra. Support for the Xperia M2 should be available soon. You can see the full list of devices that are supported on Sony’s website. Note that your device to be flashed must be updated to Android Lollipop (5.1) prior to flashing.

Most features of Firefox OS are tested and you can expect these to work. This includes phone, SMS/MMS, and data connections, as well as device capabilities such as Wi-Fi, GPS, Bluetooth, and NFC.

The only major exception to this is the camera. The Sony team is porting the camera, and we’ll update this post when they’ve completed that work. The FM radio is also not yet supported. Areas where you might see variable support or some bugs are in audio/video decoding and processing, and hardware acceleration. Make sure to report a bug if you see a problem in these areas. Instructions for reporting issues are at the bottom of this post.

Getting Ready to Build

Mozilla’s developer site, MDN, has extensive documentation on building Firefox OS for devices. Currently the only supported operating systems for building Firefox OS are 64-bit Linux. Start by installing the prerequisites (things like Git and the Android SDK) and setting up your build environment. Follow the directions there and you’ll be just fine.

Clone, Configure, Build

Once you’ve the build environment taken care of, you’re ready to get the source code. Remember, this may take many many hours! The code comes from many different repositories, and can take 10 hours or more even over a fast internet connection. Make sure you have at least 20gb of free disk space available for the source code and the build files that you will be generating.

The next few steps look like this:
* Clone the root repository of the project, which downloads the build scripts. This takes about a minute over a decent connection.
* Configuring for your device, which downloads all the B2G and Gonk source code and some configuration files and libraries specific to your device. This can take 10 hours or more over a decent connection.
* Compiling into a device image which can be flashed to the device. This step should take about an hour on a decently powered desktop computer.

Start by cloning the B2G repository with the command below. This should only take a minute:

git clone git://

This will have created a B2G directory, which you can now enter:

cd B2G

Before you begin the next step, connect your device through USB, and confirm that you can see it connected by executing the following command:

adb devices

You should see something like:

List of devices attached 
YT910VTPWY    device

Next you’ll configure the build for your specific device, using its code name. You can find your device code name by executing the script with no arguments:


Once you’ve found it, you can now configure the build. Here’s the configure step for the Z3 Compact:

./ aries-l

The immediate next step is to go sleep. Or drive to visit your grandmother. Or see if you can run a marathon before the source code finishes downloading.

Okay! It’s the next day, and you’ve got all the source code. You’re now ready to build:


Now go watch half of a movie, or see how many push-ups you can do in an hour!

Flash Your Device

This is the moment you’ve been waiting for. Make sure your device is connected via USB and then execute the following command:


You should see the device go into bootloader mode and then various files being copied over and then written to it:

Terminal while flashing

After the flashing process is complete, your device will reboot into Firefox OS!

Boot screen

That looks great, how can I help?

There are several ways you can contribute and stay in touch. One of the most obvious is getting access to a device already supported, and using it and reporting bugs. Another step forward is hacking the device to help maintain it, making sure bug are fixed, and providing a smooth user experience. For those of you who are brave enough, you can help bring support for more Sony Xperia devices. The list of devices supported by the Open Devices project is bigger than those currently working with Firefox OS. For example, hacking to get the Z1/Z1 Compact series (Rhine platform) would be a good start.

Got questions about running Firefox OS on new hardware or devices? Try the dev-fxos mailing list or #fxos on IRC. Thanks!

QMOFirefox 42.0 Beta 3 Testday Results

Hello Mozillians!

As you may already know, last Friday – October 2nd – we held a new Testday event, for Firefox 42 Beta 3.

I must admit that this testday is by far one of the most successful event. Besides the fact that we had a large number of participants we also have an impressive number of verified bugs. Congratulations to all participants!


We’d like to take this opportunity to thank Bolaram Paul, Mohammed Adam , Ionce Stelian, Ruwan Ranganath, Jayesh KR, Arshad Abid, Moin Shaikh, Syed Muhammad Mahmudul Haque (Yamin), Nischaytv, Jyotsna Gupta, PreethiDhinesh, Kevin Le, Gunjan Tank and the people from our Bangladesh Community: Hossain Al Ikram, Khalid Syfullah Zaman, Ashickur Rahman, Md. Asiful Kabir, Rezaul Huque Nayeem, Kazi Nuzhat Tasnem, Nazir Ahmed Sabbir, Saheda Reza Antora, Md.Ehsanul Hassan, Mohammad Maruf Islam, Sayed Mohammad Amir, Meraj  Kazi, Forhad Hossain, T.M. Sazzad Hossain and Towkir Ahmed 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!

Mozilla Add-ons BlogAdd-on Compatibility for Firefox 42

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




Please let me know in the comments if there’s anything missing or incorrect on these lists. If your add-on breaks on Firefox 42, 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 41.

WebmakerHow I Got Onboard With RideW/Me

Hi! I’m Marina Malone, and I’m a high school student from Chicago Public Schools. This post is about my experience with RideW/Me, which is an app that makes it easy for high school students to find educational opportunities in Chicago and get there safely. It’s produced by members of Mozilla’s Hive Chicago Learning Network, Mozilla staff, volunteer developers, and other interested community members just like me!


That’s me on the left with Esteban Martinez and Amaris Alanis-Ribiero.

It all started when my College First program manager at the Chicago Botanic Garden, Amaris, sent an email looking for students to help out with some app about transportation for teens. She was vague about exactly how we could help with something like app development and only said that we would be “working with tech experts,” which sounded intimidating. When I walked into TechNexus and into what turned out to be a civic hacking competition, I was right (but only at first). I was confronted by a bunch of old people – college students and guys with beards – writing on whiteboards and typing on keyboards. I had never been in such a board-centric room before and it made me wonder even more how I, a board-less high school student, could fit in an environment like this.


Fortunately, my friend Esteban also volunteered to help with the app and even though I still had no idea what the app specifically did, Esteban had arrived before me and caught me up. He told me that our job was to make the diagrams on one of the whiteboards pleasing to the eye using Google Slides; they were calling them storyboards, a rough draft of what the app would look like. The sloppiness of the storyboards on the whiteboard actually made them seem a lot friendlier. They were filled with phrases like “CoOL Urban Scene,” “Im In If Ur In” and other obvious attempts to appeal to teens. It made the team we were working with more relatable, rather than distant computer geniuses. But words like “My Events,” “Find Events,” and “Join Event” caught my eye. I thought this app was about transportation, so what was going on with these events?

DSC_1309That’s where Robert Friedman, a Mozilla educator stepped in with another whiteboard. He explained that the app, called RideW/Me, would make it easier for teens to find educational events and get there safely with people they know. His explanation cleared up what the app was about, and I realized that it actually applied to me, my friends, and my school.

Chicago is a huge city, with a lot of educational opportunities that are often completely missed out on because nobody knows about them or it’s difficult to get to them. Understanding the goals of the work and how it was relevant to my personal experience gave me a reason to contribute as much as I could to this project… even if all I could do was make the diagrams on the whiteboard pleasing to the eye on Google Slides.

ridewme slideshow1 slideshow2 slideshow3

Turns out, making diagrams on whiteboards pleasing to the eye isn’t as simple as I thought it would be. Esteban and I were delving into the realm of graphic design for RideW/Me but it felt like we sort of hit a wall when we finished the basic storyboard in Google Slides. We could only do so much with simple rectangles and Google’s choices for the color green. That’s when Robert introduced us to Ricardo Vasquez, a User Experience and Interaction Designer at Mozilla to help us understand how designers think and work. Ricardo is a graphic designer and he happened to host a YouTube livestreaming series called “Hour of Design” where he walks viewers through his process of designing something for the web.

Ricardo wanted to dedicate an episode or two of his show to RideW/Me. To help him in his work, he asked Esteban and me to create a mood board. A mood board is an arrangement of pictures that’s used to demonstrate a certain style, and, in this case, we made them to represent the look and feel of the app. We made two: one a bit formal and mute, but the other gritty and loud. Now I was finally getting a hold of a board of my own!

mooooooodboard bandaidsandskate_board (1)

On the livestreams, Amaris, Robert, Esteban, a bunch of my friends, and I watched Ricardo do his magic on YouTube and communicated with each other, remotely, through Slack, which is a collaboration tool that basically combines Twitter and Facebook. He created a style guide that provided choices for color palettes and font sets, and he taught us how certain colors and fonts were perceived by people. Instead of making one absolute choice of fonts and colors he made two or more for people to vote on. There was an incredibly heated battle on Slack about going blue and red or blue and yellow for the app. Personally, I was Team Ketchup, Team Mustard is lame! We actually polled a bunch of people about the color palette, and we found out that kids tend to like blue and red, while adults like blue and yellow. At the end of the day, we learned how important color choice and fonts are when it comes to connecting to our intended audience for the app.

At the end of August, I attended a Chicago Hack Night at Merchandise Mart, which was another environment filled with more whiteboards and keyboards. There were all sorts of people there like web designers, GIS experts, college students, community leaders, and even lawyers, and the main thing they had in common was that they were ready to collaborate with each other. I learned about Code Academy there, and through Code Academy, right now, I’m learning to use the command line.


You really can’t work alone with a project like RideW/Me. A project made for a community is most successful when it’s made by the community. Input from a variety of people is key, and the Internet has made it so much easier for us to get connected, from little things like asking my friends which color looks great on green through Facebook, to awesome stuff like getting an actual graphic designer from Canada collaboratively making a style guide with us through YouTube and Slack. The web is a hub for collaboration, and it can be used to find people who genuinely want other people to succeed. The web really ‘does make things that feel so distant and unachievable, like high school students helping tech experts, feasible after all.

A few months ago, I was a student who was overwhelmed by how board-centric the RideW/Me project was, and now, I feel like I’ve got a lot under my belt when it comes to boards. I’ve worked with storyboards, created mood boards, and now I’m typing on the keyboard to learn how to code. All of this is because I’ve met great people in person, and through the Internet. I never thought I’d be able contribute much to the RideW/Me app, but I underestimated how much our community cares about youth.


Whether it be tomorrow or in five years, you can find me writing on whiteboards building on RideW/Me or another community project. As a part of this great community, I want to be the best I can be to help others be the best that they can be. I’m currently involved in conservation biology at the Chicago Botanic Garden, and from my experience I have been inspired to improve the natural environment of my peers. I plan to apply what I learned from the Garden and with the RideW/Me project to improving the biodiversity of prairies in the United States.

SUMO BlogWhat’s up with SUMO – 2nd October

What have you been up to this week, SUMO warriors? We have some news and announcements for you, so start reading before the weekend sweeps us all away from our screens!

Welcome, New Contributors!

If you joined us recently, don’t hesitate – come over and say “hi” in the forums!
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!

Contributors of the week

  • A group nomination to all the people who keep being awesome and supporting millions of users around the world :-) If you are reading these words… this most likely means YOU!

Last SUMO Community meeting

Reminder: the next SUMO Community meeting…

  • …is going to take place on Monday,5th of October. Join us!
  • If you want to add a discussion topic to upcoming the live 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).



Support Forum

  • Some details from the last SUMO Day:
    • 45 participants: 32 for Firefox, 5 for Firefox for Android, 2 for Firefox for iOS
    • 93% issues replied to in 24 hours, 96% in 72 hours (FF, FF OS and FF iOS)
    • 37% issues replied to in 24 hours and 87% in 72 hours for FF for Android
    • Once again – HUGE thanks to all participants! You rock!
  • Save the date: the next SUMO Questions Day is coming up on the 8th of October.

Knowledge Base

  • The tracking protection articles will be revised and finalized by mid-October, depending on the coordination with Legal and Product teams.
  • If you want work with us directly on the Knowledge Base as an intern, take a look at this Outreachy opportunity.


  • (for Android) The documentation for version 42 has started, and a dot release for 41 took place as well.
  • (for Desktop) Version 41 has landed! Head over to our forums to learn more and discuss.
    • There has been a general increase in the number of browser hanging cases, so expect to see users reporting problems of that type. Yes, Farmville 2 is unfortunately affected, as well.
That’s all for now. May you have a great weekend! We all hope to see you refreshed, rested, and relaxed on Monday.
P.S. Don’t forget that we’re on Twitter… where we recently passed the 500 follower mark! Thank you!

hacks.mozilla.orgInspecting Security and Privacy Settings of a Website

Inspecting the Content Security Policy of a Website

Starting in Firefox 41, Mozilla provides a developer tool that allows users to inspect the security settings of a website. Using GCLI (Graphic Command Line Interface) a user can inspect the Content Security Policy (CSP) of a website. CSP is a security concept that allows websites to protect themselves against cross-site scripting (XSS) and related attacks. CSP allows website authors to whitelist approved sources from which content can be loaded safely. Browsers enforce that Content Security Policy header and only allow whitelisted resources to be loaded into that website. The CSP inspection tool » security csp lists all whitelisted sources.

The main intention behind CSP is to protect websites against XSS attacks, but the protection needs to be deployed in a way that allows support for legacy code on these sites. For example, the keyword ‘unsafe-inline’ was originally introduced to support legacy inline scripts while transitioning sites to use CSP. This keyword whitelists all inline scripts for a site, but it also allows attacker-injected scripts to execute, making CSP ineffective against most XSS attacks. Hence, the CSP devtool not only lists all whitelisted sources, but also provides a rating for each whitelisted source, to indicate the level of protection.

Inspecting the referrer policy of a website

Starting in Firefox 43, Mozilla exposes more website privacy settings and also allows users to inspect the Referrer Policy » security referrer. The referrer policy allows websites to exercise more control over the browser’s referrer header. Specifically it allows website authors to instruct the browser to strip the referrer completely, reveal it only when navigating within the same origin, etc. The referrer devtool provides an example of what referrer will be used when visiting different websites, allowing the user and developer to inspect what information is sent when following a link.

Inspecting the Content Security Policy as well as the Referrer Policy is only the starting point to providing end users with more feedback about the security and privacy settings a web page uses. We hope to add more tools in the future to give users more transparency and control over the security and privacy of the websites they visit.

WebmakerVolunteer Spotlight: Webmaker and Web Literacy in Bangladesh

When Mozilla built Webmaker for Android, we had countries like Bangladesh in mind — mobile-first regions where individuals are eager to create original content, but might lack the right tools. And so the Mozilla Bangladesh community was indispensable in designing Webmaker. Volunteers provided insight, feedback, ideas and more all throughout the development process.

Bangladesh continues to play an equally important role beyond development. Creating Webmaker was only half the equation; sharing it with users across Bangladesh was the second half. And Mozillians in Dhaka, Sylhet and other cities have done an amazing job sharing Webmaker with their communities.

Webmaker volunteers in Bangladesh

Webmaker volunteers in Bangladesh

Take, for example, Mozillian Mijanur Rahman Rayhan. Mijanur wears many hats at Mozilla — he’s a Firefox Student Ambassador (FSA), Local Mozilla community leader of Sylhet, Webmaker mentor and Club founder. And over the past few months, Mijanur has helped Webmaker thrive in Bangladesh. On a recent Friday in September, Mijanur and other Mozillians attended a major event in Sylhet for Bangladesh Internet Week. The group set up a Webmaker kiosk, eager to introduce the app to the world.

“We demonstrated the log in process, features to make projects and the techniques of how to share projects on social websites,” Mijanur explains in a blog post.

It was a busy day. “From the very beginning, our kiosk was almost full every minute,” Mijanur says. “We had five volunteers for demonstration, and I don’t remember if I saw them sitting or being idle for a single minute.” Mijanur and the others ended up introducing Webmaker and its mission to about 300 people — 100 of which downloaded the app on the spot.

Mijanur isn’t alone. Atique Ahmed Ziad is a longtime Mozillian based in Dhaka who has also made tremendous contributions to the Webmaker launch. Earlier this month, Atique hosted a Webmaker event at Notre Dame College in Dhaka. Here, dozens of people came together to learn about Webmaker. Users built a range of projects in both English and Bengali: fan pages for favorite athletes and cricket teams, recycling tips, photography portfolios, study guides, science explainers and more. (To view additional Webmaker projects created at Atique’s event, click here.)

“It was a great experience for me to teach people to create the Web by us and for us,” Atique says. “I must say I enjoyed the event and people’s interest in Webmaker.”

Webmaker users in Bangladesh

Webmaker users in Bangladesh

Mijanur and Atique are two of the many talented Mozillians in Bangladesh who are sharing Webmaker and teaching web literacy. Alone, these volunteers make a positive impact in their communities. Together, they’re making a difference country-wide. Last month, from Sept. 5-11, was Bangladesh Internet Week, a nation-wide initiative that sought to bring 10 million citizens onto the Web. During these seven days, Mozillians across Bangladesh brought Webmaker to the forefront of the conversation. Important topics like web literacy, open source and hands-on learning became centerpieces.

Webmaker volunteers in Sylhet

Webmaker volunteers in Sylhet

There are more Webmaker events planned in Bangladesh, and we’re looking forward to them. Mozilla thanks all our community members in Bangladesh for their outstanding work!

Air MozillaWebmaker Demos Oct 2 2015

Webmaker Demos Oct 2 2015 Webmaker Demos Friday October 2 2015

Mozilla Add-ons BlogOctober 2015 Featured Add-ons

Pick of the Month: New Tab Tools

by Geoff Lankow
Customize the new tab page, add more tiles, add the launcher from Firefox start. Set new tile images and titles, see recently closed tabs, and more!

“I was trying to figure out how to get more tiles without zooming the page out. I stumbled on this and it’s perfect.”

Featured: Privacy Settings

by Jeremy Schomery
Alter Firefox’s built-in privacy settings easily with a toolbar panel.

Featured: PriceZombie

by Price Zombie
Price Zombie is a price tracker and price comparison browser extension. PriceZombie lets you see full price history on millions of products across hundreds of stores such as Amazon, BestBuy, Bloomingdale’s, and many more.

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!

Air MozillaWeb QA Weekly Meeting

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.

Meeting NotesMobile: 2015-09-30


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?

  • Christian fixed bug 1085406 – Update new tablet reload assets
  • Jonathan Almeida (:jonalmeida) fixed bug 1170725 – Click-to-play images
  • Jonathan Almeida (:jonalmeida) fixed bug 1195063 – Create a UI Settings option for changing the image threshold image size for click-to-play images
  • Kartikaya Gupta ( fixed bug 1201076 – invisible text when typing comments on facebook
  • Sergej Kravcenko fixed bug 1201623 – On tablets URL bar, about:home magnifying glass and globe icon take up different widths
  • Sergej Kravcenko fixed bug 1205149 – Update to use resource values.xml over private constants
  • Vlad Filippov :vladikoff fixed bug 1205280 – Sync sign in page exceeds the viewport on small displays

Team Updates

Android platform

snorp, jchen, rbarker, esawin, droeh

  • Notes
  • I landed my gfx patches — got some good checkerboarding improvements according to talos (73%). I regressed Mac, though, so….probably need to look at that.
  • Did a bunch of work on Gecko for iOS. Fixed up WebGL, now looking to get the Gecko thread split out from the iOS main thread.
  • Landed a fix for the battery rounding thing (bug 1191918)
  • Eugen is fixing up test failures from the VP9 stuff, and also doing more investigation into JS slowness. Found that things are actually faster if we disable the JIT.
  • Dylan still looking into reftest whackiness, closing in on a solution
  • Randall is still fighting coordinate system badness with synthetic mouse events (used in mochitest). We probably need a fairly major change to the widget event stuff to fix this. He’s discussing with DOM/layout/widget folks.
  • Jim landed some stuff to move prefs code over to native calls. He’s now working on doing the same with IME. He also fixed some fallout from earlier patches regarding viewport event coalescing. Looking at headless stuff Soon.

Android front-end

margaret, ally, liuche, mcomella, mhaigh, sebastian

  • Click to view images landed! (bug 1170725)
  • Polishing search history suggestions (bug 1086952)
  • Finishing first run changes for A/B testing (bug 1199859)
  • Helping FxOS TV team write an add-on to integrate with Fennec (bug 1199549)
  • Continued work on “Set a homepage” pref (bug 1195721)
  • Work on prompting users before launching intents from private browsing (bug 1173147)
  • Downloading fonts in review (bug 1194338)


st3fan, bnicholson, fluffyemily, jhugman, sleroux

  • [bnicholson] Tracking protection experiments. Fixing up and landing pending v1.1 PRs from wesj and bkmunar.
  • Allow opening of pdf’s in other apps (bug 1183166)
  • [sleroux] Private browsing mode is nearing completion. Major UI work landed on master and investigating avoiding storing favicions in PB Mode.


darrin, tecgirl, antlam

  • General
    • Toronto work week
  • Android
    • Contributor bugs/reviews
    • bug 1140048: Add shareplane to top level menu
    • bug 1164879: Use sysytem UI checkbox for “Request desktop site”
    • bug 1209558: Polish Search suggestion pills
  • iOS
    • Planning


Feature Focus


  • Wednesdays – 9:30am Pacific, 12:30pm Eastern, 16:30 UTC
  • Dial-in: conference# 99998
    • US/Toll-free: +1 800 707 2533, (pin 369) Conf# 99998
    • 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
  • #mobile for backchannel
  • Mobile Vidyo Room

Meeting NotesFirefox/Gecko Delivery Planning: 2015-09-30

Video/Teleconference Details

Feedback Summary (Rob/Tyler/Matt)


  • Looking into stability issues


  • No updates

Planning Meeting Details

about:communityParticipation Lab Notes: Volunteer vrs Contributor


As part of the Participation Lab’s efforts we recently began conducting  experiments on the Get Involved Page seeking to better understand how people navigate and connect (or fail to connect) to contribution opportunities. In preparation for this experiment we looked at some of the research that the team had conducted in recent years, and a number of their  key learnings led us to a deeper conversation about the language and labels we use to invite contribution to Mozilla. Some of the those learnings were:

  • People need to understand what, and why before they’ll be interested in understanding how they can contribute to Mozilla.
  • We must make it immediately apparent that the Get Involved  page is seeking volunteers and not employees.
  • We need to set clear expectation of investment/journey needed to get involved or become a Mozillian.

This matched some other feedback,  and as a result we decided to conduct a series of interviews to discover more ideas and prejudices that exist around the terms volunteer and contributor. Eighteen interviews covering diverse perspectives were conducted, these included core contributors, project leaders, alumni, community project leads, those working in open science, advocacy and randomly selected people in my life who had never contributed to Mozilla.  We discovered four interesting insights shared below.

Project preference is ‘Contributor’


Overall, people working in, or already volunteering with Mozilla were more comfortable with ‘contributor’, but agreed that unless your background was working in a field like software engineering, or science where the term is already part of the language ecosystem, it might be challenging to grasp.  I also noticed  a trend in feedback that acknowledged  once you’re regularly involved  in a project you might no longer be objective, and that we may, in fact, be skewing even the most common understanding of these terms. One example given was the use of  ‘paid contributor’ and ‘volunteer contributor’, which made no sense for most people outside of Mozilla.

The term ‘Volunteering’ is more universally  associated with lending time and skills but…


While people seemed to generally understand that volunteering was about lending time and skills, I encountered sensitivities that the word ‘volunteer’ which invoked feelings of being ‘charitable’ vs the more empowered feeling of being a ‘contributor’ .  I heard that ‘contribution’ lends to a feeling we’re part ‘part of something ’ while ‘volunteering felt more detached.  One core contributor felt very, very strongly, that volunteering was not the term for what they do at Mozilla.

‘Contribution’ feels more like giving a gift or donation


Feedback from non-technical contributors ,and those I spoke with outside the Mozilla community indicated that  the term “contribution” was easy to misinterpret as being about donating funds or something of greater significance than some people felt they could offer.  When asked, a couple of people cited political campaigns, and fundraisers as the most common association they with the word ‘contribution’.

What’s in a Name?


It was also suggested that at Mozilla we should stop labouring over generalized terms like volunteer and contributor,  and instead focus  energies on clarifying ways people can help – One person felt that such opportunity  exists in more explicit ‘role titles’  i.e. Android Community Ambassador’.   The hypothesis is, that by providing role titles we can help people connect to opportunities that are resume-worthy with recognition that contribution is an opportunity.  Of course, there are already examples of success with role names demonstrated by the Mozilla Reps program and most recently Club Captains and Regional Leads in Webmaker Clubs.


We had an interesting suggestion that  we make up our own name!  Create a Mozilla-fied name for volunteers that makes volunteering at Mozilla a unique version of both terms.  An inspiring example was the London Olympics which called volunteers ‘Games Makers’, what a Mozilli-fied version would be remained unclear :)  but I’m sure we could come up with something.  What do you think?

Additional lure of a Mozilla-fied name is a chance to help people recognize the amazingness of the community they would be joining which MDN reported to be a factor in repeat contribution in their area  – and similar to how an Olympic volunteerism resonated with a name describing their impact.

So where from here?


There is the opportunity for continued experimentation and testing using the Get Involved Page, and  we would love to hear from you – contributor volunteer, Mozillia-fied name?

What experiment  do you think the Participation Lab should design  next with these new insights?



Image: “Mozilla Summit Day 2” by Roland Tanglaois licensed under CC BY 2.0

about:communityMeet an MDN contributor: klez

Photo of Frederico klez Culloca

Federico klez Culloca made his first few edits to MDN in 2013, but started contributing in earnest in 2014, as a localizer for Mozilla Italia. After a couple of months, he started attending the bi-weekly MDN Community meeting, and later the Learning Area meetings. After that, he concentrated his efforts on the Learning Area of MDN, especially the Glossary.

He says that working on MDN gives him a good idea of how an organization as big as Mozilla actually works, bringing together paid staff and volunteers.

His advice for MDN newcomers?

Don’t be afraid to make mistakes in good faith. Someone is always able and willing to correct them and help you learn from your errors. It’s a wiki, after all :-)

Thanks, klez, for all your contributions to MDN!

about:communityParticipation Lab Notes: The Power of Swag

It doesn’t take long, once you’ve entered the Mozilla community before you notice that swag is a big part of Mozilla. Stickers, t-shirts, lanyards are everywhere and for many Mozillians these things have become a kind of currency with emotional and physical value.

Photo by: Doug Belshaw on Flickr

Photo by DougBelshaw/CC BY 2.0

In 2014, Mozilla spent over $150,000 on swag to engage contributors across four major initiatives: Maker Party, MozFest, Mozilla Reps, and Firefox Student Ambassadors (FSAs).

However we rarely stop to examine what we are learning about the results, benefits and challenges of this investment.

In order to surface and capture these insights the Participation Team interviewed four groups at Mozilla, for whom swag is a core part of their activities, and identified the most interesting insights and challenges faced by each group.

As a result, we discovered that many of the groups face similar challenges but have found distinct solutions and strategies for managing them. The two major insights were that by encouraging local production of swag, and creating swag that is tailored specifically to the needs of the community, costs can be minimized and value to the community increased.

Maker Party

Although in the past year, swag has become a much smaller part of Maker Party as the campaign has become shorter (17 days vs. the previous 2 months) and more contained. In 2014 thousands of people spent the summer throwing events, and swag was an integral part of growing and motivating the Maker Party community.

Insight : Swag Legitimizes Hosts & Events

Much more than a form of recognition for event hosts, in many communities swag is perceived as a vote of confidence from Mozilla that legitimizes both the host and the event. Many communities feel that if we are willing to support an event host and their event through physical things, and it marks them as “officially sanctioned” by Mozilla and this alignment with the brand dramatically increases the influence and reputation of the contributor and the event.

For example, in South America, a Maker Party host created Mozilla branded mouse pads to legitimize their events in the eyes of local internet cafe owners who let them use the space for free in exchange for Mozilla branded mouse pads.

Challenge: Cost of Shipping

For Maker Party, shipping swag across the world, often to extremely remote areas, was very expensive and problematic. Certain countries charge enormous taxes on clothing and have been known to detain parcels with t-shirts – to the detriment of volunteers who often cannot pay the high customs fees.


While MozFest, as a short-term festival is a bit different from the other examples,  it identifies another way in which we use swag to build and support community.

Insight: Swag is Key to Partnerships

Every year MozFest partners with other like-minded organizations to put on the event. As part of this relationship, partners are offered the opportunity to distribute swag and some promotional material to attendees. As a result Mozilla can produce a small amount of swag like a tote bag and water bottle, and have partners add their swag to create fun gifts for participants that also act as promotional pieces for partners and Mozilla.

Challenges: The Right Swag

Finding swag that is re-usable and has value outside of the event is challenging, but water bottles and tote bags have proven popular and effective, and have the added benefit of reducing the event’s environmental footprint.

Mozilla Reps

Unlike Maker Party or MozFest, Mozilla Reps is a community where individuals participate in multiple ways over a sustained period of time. For this group, it is often the variety rather than quantity of swag that drives excitement.

Insight: Creating A Collectors Culture

Within Reps, swag is a great way to acknowledge contributors and support events. However, in some circumstances, swag can come to be seen as a symbol that represents value and status in the community. Therefore as more of a swag item is produced the value of each item diminishes, and collectors culture has developed. While rare swag is a very powerful tool for driving engagement and recognizing achievement in the Reps community, it is important to be aware of the number and variety of an item that is produced, and to carefully manage expectations to prevent swag becoming an end in and of itself.

Challenge: Mitigating Expectations

As swag is a large part of the Reps culture, it is important to be careful about the expectations that are set around the value of swag. Limiting the kinds of official swag that is produced to t-shirts, stickers, and posters and having clear value attached to each, may be one way to keep expectations low and guard against increasing expectations.


The Firefox Student Association has many parallels in it’s structure and its relationship to swag as the Mozilla Reps program. However by carefully controlling the value of swag, and encouraging local production, many of the challenges faced by other groups have been avoided.

Insight: Careful Curation & Local Production

The FSA’s have solved problems related to shipping swag, and reduced the “freebee” quality by having FSA’s create their own swag locally and then be reimbursed for the cost. Like the Reps program they also have a collectors culture but set formal expectations on the “value” of different kinds of swag ie. t-shirts are something you have to earn, stickers are freebees you can give away at your event, and posters are something you have to produce yourself.

Challenge: Tracking Designs

Because unique designs are a large part of what gives t-shirt swag it’s value, there is a struggle to find and keep track of the many ways t-shirts and designs are being used across Mozilla. In order to coordinate the FSA program suggested creating a central repository of t-shirt designs and what/when they should be distributed so that the use of swag can be better aligned across all of Mozilla.

Overall, across Mozilla there is a great deal being learned and experimented with around swag as well as many areas for growth and improvement. Our hope is that by surfacing these lessons and insights, we’ll spark new conversations and gain more insights into the swag processes and how it can be improved. If you have experience or thoughts around swag at Mozilla please share them in the comments here, or on the Participation Team Discourse page.

Air MozillaQuality Team (QA) Public Meeting

Quality Team (QA) Public Meeting This is the meeting where all the Mozilla quality teams meet, swap ideas, exchange notes on what is upcoming, and strategize around community building and...

Air MozillaProduct Coordination Meeting

Product Coordination Meeting Duration: 10 minutes This is a weekly status meeting, every Wednesday, that helps coordinate the shipping of our products (across 4 release channels) in order...

Meeting NotesSeaMonkey: 2015-09-29


  • Who’s taking minutes? -> TBD
  • Nominees for Friends of the Fish Tank:
    • TBD

Action Items

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


  • Need to port Sync 2.0 to SeaMonkey – IanN has spoken briefly to ewong about options, Ratty might be able to help too.


  • 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.
  • bug 1121281 tracks the RelEng automation migration off CVS. Everything is now in a single repo, patches for using that new repo are awaiting a review from Callek.


Status of the SeaMonkey Buildbot Master and Tree

  • Notes:
    • 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).
    • Buildmaster is up and running, and produces en-US builds, see 9/16 meeting’s Friends of the Fish Tank. Builds and langpacks in 18 languages including en-US are available unofficially thanks to A.Kalla.
    • 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.
  • [29th September 2015]
    • All trees:
      • Windows platform still busted due to needing Win2008R2 installed.
      • We have a loaner which ewong is working on (see blog for more information).
    • comm-central to comm-beta:
    • comm-aurora to comm-beta:
      • Linux32-debug : busted due to bug 1204162.
        • temporary patch was pushed to c-c so it’s green there; but, needs to either be pushed to c-a and c-b, or the bug fixed. (depends on bug 1203803).
    • comm-release:
      • OSX64: Orange due to bug 958812. (This has always been orange since a long time ago.)
  • Re: Tests.. This hasn’t been mentioned before, but that was only because we have been trying to get our normal builds to run.
    • That said, all the tests are busted in some way or another. (SERGE… WHERE ARE YOU?)
  • See RelEng page for the RelEng status history.

Release Train

  • SeaMonkey 2.38 release:
    • Released September 26th 2015.
    • Merge day was September 21 as scheduled
  • Useful Firefox Release Schedule link: Releases Scheduling
  • Started doing nightlies again on the Win32, but due to the fact that they need to be triggered manually, ‘nightlies’ would be considered a misnomer. “Regularlies” would probably be a better word. Maybe “somewhat regularly”.

Extensions and Plugins Compatibility Tracking

  • See Basics page. Please only list current changes here.
  • Addon Compatibility Listings
  • 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 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].
  • Proposed replacement for Venkman for shipping with SeaMonkey: Tiny JavaScript Debugger. TinyJSD is a JavaScript debugger for privileged code running Mozilla products like Firefox, Thunderbird, SeaMonkey. It serves to debug the application as well as extensions written in JavaScript.
    • IanN filed bug 1133723 Investigate options for replacing Venkman with the TinyJSDebugger.

2.x (Last, Current, Next)


open tracking (0)
tracking requests (2)
targeted (1)
fixed (12)

  • 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:
  • Mozilla-central bugs that affect us:
    • Changes to Safe Browsing.
    • mozilla-central bug 1146454 changed the printing API. IanN has migrated comm-central to the new API [bug 1195863].
    • 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.
    • 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.
    • bug 769764 move proxy resolution to separate thread and remove sync api. Tracked in:
      • MailNews bug 791645 Rewrite calls to synchronous nsIProtocolProxyService::DeprecatedBlockingResolve with Async code before DeprecatedBlockingResolve disappears as well.
    • 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.

Feature List, Planning

Bug statistics for the last two (full) weeks: 19 new, 16 fixed, 19 triaged.

  • Medium triaging effort, medium-low number of new bugs filed.
  • 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 draft is currently at
    • I have a new computer (at last) and on the last Sunday of August I even found out how to connect it to the Internet. I think the page is essentially finished but I badly need your opinion about it. Anyone with a wikimoz account can edit the page and/or create its Talk page (and is welcome to). If you don’t have a wikimoz account you can still comment on the bug. — Tonymec (talk) 00:17, 27 September 2015 (PDT)

Open reviews/flags:
47 review
5 super-review
1 ui-review
10 feedback

  • See Feature List page for major wanted/needed features.
  • TODO:
    • bug 1127784 proposes to add a preference and UI to enable/disable playback of Encrypted Media Extensions.
      • FIXED has landed, with UI seen in non-release builds only
      • but uncertain if it does anything useful to be tested

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).

  • Been working on the 2.38 release and working on bug 1187222 for most of my waking moments.
  • Did start on the Sync 1.5 bug, but that got backburnered again.
  • Usual 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
    • bug 1195129 Port |bug 1027890 – Remove all sorts of build system code dedicated to pymake| and |bug 1082323 – Reject pymake in| to comm-central
    • bug 1195246 Port changes from |bug 1188766 – sccache setup with UPLOAD_EXTRA_FILES makes some files uploaded multiple times| to comm-central
    • bug 1195258 Port |bug 710147 – Pass more targets from to the build system| and |bug 911936 – Kill make depend| to comm-central
    • bug 1195264 Port |bug 741839 – consolidate $(wildcard calls) to reduce overhead| and parts of |bug 774106 – Change how virtualenv is populated| to comm-central
    • bug 1195331 Port |bug 762358 – .mozconfig changes don’t cause configure to run| to comm-central
  • 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 1200199 Update en-GB for Gecko 41
    • 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.

Still need to look into that Livemarks bug…

Checked in to comm-central:

  • bug 1202216 Clicking on a desktop notification should switch to the notifying tab.
  • bug 1204513 DOM Full Screen should be really full screen.

Waiting for feedback:

  • bug 888915 Convert SeaMonkey Downloads Manager to Downloads.jsm

Still waiting for review:


From the previous meeting. Reviewed and checked-in on a greenish tree:

  • bug 507676 Port bug 435804 Remaining rdf cleanup for FilterListDialog| to SeaMonkey.
  • bug 640420 Add draggable splitter between urlbar and searchbar.
  • bug 1176602 Make sure that the dictionary stored in spellchecker.dictionary is valid (Adapt Thunderbird bug 1175908).
  • bug 1192276 Restore about:privatebrowsing UI to before it was messed up by Project Chameleon styles.


  • bug 1125689 Lightning isn’t working in SeaMonkey due to __LOCATION__ missing (Error: ReferenceError: __LOCATION__ is not defined). Do not pack Lightning into a XPI. Also leaves the default theme unpacked (needed for bug 1189918)

In Progress:

  • bug 1011857 Implement CustomizableUI shim for SeaMonkey.
  • bug 1022354 SeaMonkey forces 3rd-party themes to not use defaultFavicon.png but hardcode a bookmarks-item.png.
    • bug 1189918 Theme overrides should work in safe mode for comm-central applications too. [Mozilla Core]
    • bug 1190465 Move default theme overrides into separate chrome.manifest for other non-firefox toolkit consumers too. [Toolkit].
    • Thunderbird defaut theme overrides.
  • bug 1174466 Popup blocker: Need to allow popups opened by loaded javascript: URIs from the location bar. Regression from bug 896947.
  • bug 1204338 More Refactoring: Followup to bug 403800 Refactor netError.dtd/netErrorApp.dtd. [mozilla-central]
  • bug 1208112 Package DevTools client in SeaMonkey now that it’s been moved out of /browser/.


  • Front end changes needed for bug 1042699 Block cross-origin add-on install requests.
  • Port bug 1048048 add preload content policy types for images.
  • Implement tabbrowser methods getBrowserForOuterWindowID() and getTabForBrowser() used by about:performance

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:

  • bug 1149581 Remove SSLv3 strings from SSL panel in Privacy & Security preferences.

Waiting for re-review:

  • bug 1152644 Add UI in Notifications preference pane whether or not to use libnotify for new-mail alerts on Linux.

May need retargeting:

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


  • Updated Releases and main SeaMonkey wiki pages for 2.38 release.
  • Bug triage, testing, and commenting for SeaMonkey and MailNews Core.
  • End-user information and discussion on MozillaZine.

I have a new computer and I think the QA HowTo is essentially done. I badly need your opinion about it, and I don’t know where its permanent home shall be. See Feature List, Planning above.

Data Manager is badly broken, see bug 1208700

Any other business?

SeaMonkey Meeting Details

Mozilla UXFirefox OS Emoji

In Spring of 2014, we embarked on the Firefox Emoji project with the main purpose to add a little more whimsy into the Firefox OS Messaging (SMS/MMS) app and we wanted to give the community more choice when it came to free, high quality yet open source emojis.

The project was perfect for our freelance illustrator, Sabrina Smelko. The art direction focused on creating a sense of familiarity to our users while maintaining a style that speaks to our brand, Mozilla. At first we thought about using a single mascot (perhaps the fox) for all the smileys, human and animal figures but in the end we believed that focusing on creating distinction in shape (silhouettes), colour and form among the different emojis was more important due to the potential of limitless types of emojis to be added to the spec.

Our final set includes two types of character designs; one for the emotions in the form of smileys, the other one for everything else in the form of real world human figures and animals.

The smileys use a flatter shading reflecting the Firefox OS visual design. However we departed from the expected all yellow colour scheme as we wanted to accentuate certain feelings and moods further with unique colour.

The figures are based off the smiley but with more subtle facial features while still maintaining the fun, casual and approachable feel already established. These themes are carried onto the animal figures like the cat (now the fox) and monkey, drawn with large facial features similar to the smileys. We kept racial diversity in mind, and have designed all our emojis using SVG, allowing for skin tone modifiers to be applied in an upcoming release.

We are hoping this first set of emojis (Unicode 6.0 spec) will land in the next release of Firefox OS thanks to the hard development work of Pavel Ivanov and Reza Akhavan as well as the support of our visual designer Amy Lee and our font guru Jonathan Kew.

A Selection of the Emojis


Air MozillaMartes mozilleros

Martes mozilleros Reunión bi-semanal para hablar sobre el estado de Mozilla, la comunidad y sus proyectos.

hacks.mozilla.orgTrainspotting: Firefox 41

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

Firefox 41 (the Fire-y-est Fox to date) brings a bevy of new and improved features for browser users and web developer audiences. Let’s take a look at some highlights.

For a full list of changes and additions, check out the Firefox 41 release notes.

Screenshot a single element

Need to capture just one bit of a web page? Using the Inspector panel, you can now screenshot the area of a page contained by a single element:

Right click on a node in the markup view.

The result is a snapshot cropped to perfection:

Resulting Screenshot of an element on the page.

Connection status

The navigator.onLine API, historically, wasn’t all that useful. Pages could only inquire whether Firefox itself was in a specific “Work Offline” state, regardless of whether the computer had any network connection. Now, navigator.onLine uses system network information to mirror the state of the device’s Internet connection!

See the Pen QjGoRP by Potch (@potch) on CodePen.

Clipboard management

Copying text on behalf of the user used to be the hardest problem in computer science. Web developers would have to embed a Flash widget on the page just to put some text in the user’s clipboard. No more! Developers can now copy text to a users’ clipboard programmatically directly in JavaScript, provided the user takes an explicit action such as clicking a button.

Read the Hacks Post on clipboard manipulation for more details.

Network Panel HAR exports

We should rename the Network Panel to Hagar, because it’s now HAR-able! HAR is a network request archive format used by many performance and request analysis tools, and it’s now possible to export HAR information from the Network panel from the context menu.

The location of the Save As HAR option in the context menu.

<picture> perfect

In a previous edition of Trainspotting, I provided the following caveat about responsive image support in Firefox:

Responsive images will load using the correct media queries, but presently do not respond to viewport resizing. This bug is being actively worked on and tracked here, and will be fixed in a near-future version of Firefox.

Well, that near-future version is this now-present version! Responsive images will now respond to post-load changes to the page’s viewport. Isn’t it nice when a plan comes together!

There couldn’t possibly be more…

…But there most definitely is. There’s plenty of additional information in the Developer Release Notes or, for large <table> enthusiasts, the full list of fixed bugs.

Keep on rocking the Free Web!

Meeting NotesMozilla Project: 2015-09-28

  • 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
    • US/Toll-free: +1 800 707 2533, (pin 369) Conf# 8600
    • 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
    • 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

Upcoming Events

Monday, 28 September
Tuesday, 29 September
Wednesday, 30 September
Thursday, 01 October
  • Paris Web starts Oct 1-3 in Paris, France
    • Paris Web 10th Edition! is a 3-day, not-for-profit event with conferences & workshops about webdesign, accessibility and best-practices in web development.
    • Mozillian Mathieu Pillard + Julien Wajsberg + Dietrich Ayala attending and demoing games, VR, dev tools, webIDE to 800+ attendees
  • Firefox for iOS demo event in the Toronto Commons. Starting at 6 p.m., come by and meet the Firefox for iOS team, see how the product works and enjoy some tasty treats.
Friday, 02 October
  • inGenius 2015, Bangalore, India.
    • inGenius is one of Bangalore’s prominent college-level hackathon. The aim is to foster and bring up the developer community in colleges as well as provide them a platform to showcase their maker skills. It’s an event where people from all India take part to create and build products of value.
    • Reps: Kaustav das Modak, Saikiran Chandha, Santosh Viswanatham.
    • More information in the Reps Event Page

Project Status Updates (voice updates)

Firefox OS

John Bernard (remote)

Dominik Strohmeier, Berlin, Germany (remote)

Foxfooding Update

  • The Firefox OS Metrics works with Firefox OS product teams to prioritize work and to improve product features, e.g.
    • help Firefox OS Product teams to understand, for example, the importance of different features in different countries
    • help Firefox Marketplace teams to identify popular apps per locale
    • Find our more about our framework and the roadmap here:
  • Help us to learn more about usage of Firefox OS by switching on “Submit data” on your Firefox OS devices under your Settings > Improve Firefox OS (this requires Firefox OS v2.1 or higher)
    • Interested: reach out to Ravi Dandu,, or Dominik Strohmeier,

Joe Cheng, Mountain View

Smart TV

  • TV Marketplace workshop will be happening this week 9/29-9/30 in Mountain View
  • Fennec to TV use cases
    • Send video to TV
    • Send URL to TV
    • Presentation API for 2nd screen use cases
    • Remote Control integration with TV and the fennec to TV experience
  • Firefox Account integration with TV Browser
    • Bookmark/Password/History for Datasync
    • Pocket integration with TV Browser
  • TV development board getting all the pieces together for internal team use
  • TV simulator to be available in WebIDE by next week
  • DEMO: Remote Control prototyping completed. Demo video:
  • DEMO: TV Simulator is still on going. Demo video:
  • Refer to TV 2.5 Wiki for latest status:
Mozilla Learning Networks

Robert Bryan Friedman, Chicago (remote): The Foundation has just released its latest research report, an exploration of how youth in Chicago use and understand the mobile Web.


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
Potch Tech Evangelist Dev Rel View Source Conference Mountain View no View Source Conference is happening Nov 2-4 in Portland, OR. Spread the word – Early bird tickets are still on sale. Tweet @viewsourceconf, #viewsource. We are also looking for regional volunteers! Direct volunteer form:, Link via website:
Benjamin Smedberg Engineering Manager, Mozilla Firefox Retirement of Steven Michaud Vidyo No
Larissa Shapiro Engineering Program Manager, Mozilla Firefox Outreachy Program Applications Now Open! Vidyo No
Mike Hoye Engineering Community Manager Onramp Toronto No How easy can we make it to get started?


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?
Mariot Tsitoara Amy Tsay MV Madagascar App reviews for Marketplace

Introducing New Hires

New Hire Introduced by Speaker location New Hire location Will be working on
Mark Liang Harley Hsu (Recording) Taiwan UX Design
Astley Chen Thinker Lee (Recording) Taiwan Software Engineering
Iris Hsiao Gary Cheng (Recording) Taiwan Senior QA Engineer
Tina Pan Emily Hu (Recording) Taiwan Accountant
Christine Lin Emily Hu (Recording) Taiwan Accountant
Julie McCracken Candice Serran Mountain View Remote (San Diego) Senior Program Manager, FirefoxOS
Punam Dahiya Hema Koka Mountain View Mountain View Sr. Front End Software Engineer
Belén Albeza González Soledad Penadés Comadrán London office Barcelona Technical Evangelist
Michael Nolan Andy McKay Vancouver Remote Web Engineer, Add-ons
Philipp Kewisch Amy Tsay Mountain View Germany Admin add-on reviewer, part time


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

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


WebmakerWhat I’ve learned since leaving the classroom

What are the resources and values I wish I could ship backwards in time to myself?

An infographic explaining tiem-travel.

Image credit Tom B

When I left the classroom (in the parlance of our times) after 14 years of teaching middle school humanities and technology classes, I left content. I knew I had changed for the better as a teacher and person over the arc of my career. Despite all the instincts, habits, and mistakes of privilege I never shook, I got better. More kids successfully engaged with more of the work we shared at the end of my tenure than at the beginning. I left at the top of the game I’d been playing against myself since the start of my career.

Nevertheless, there are days I wish I could go back in time and teach myself some of what I’ve learned in my first few weeks as a curriculum developer at the Mozilla Foundation.


Iterating is habit forming and we should provide teachers and students with the project-management methods they need to experience learning as an on-going, connected experience, rather than as a choppy, episodic one.

Project Management

We should help learners position their work safely in places where constructive feedback and social media tropes such as “like,” “love,” and stickers combine intentionally and structurally to encourage iteration.


Norms and expectations set up around, “Tell me what you learned,” are so much more relevant, motivational, and powerful than norms and expectations set up around, “I’m going to tell you what to do.”


Learners, instead of teachers, should report their learning; teachers should facilitate self-assessment and extend kids the trust to make mistakes on the way to evaluating their learning honestly.

Working in the Open

It’s no good to have a stance on teaching and learning if no one can see it in your work. We learn best in community. Copy and search are vital life and workplace skills that lead to improvisation, invention, and contact with innovative communities of practice. We shouldn’t insist otherwise at the behest of app, device, test, or textbook vendors.

In my new role, I want to work with these values at the front of my mind. I want to serve our community of leaders and educators by putting these values into practice throughout our shared work, and I want to craft curriculum that helps learners experience and enact the same values. As these new understandings have been of use to me, I want to be of use to others championing Universal Web Literacy and the Open Web.

Rumbling Edge - Thunderbird2015-09-27 Calendar builds

Common (excluding Website bugs)-specific: (41)

  • Fixed: 357012 – Week number support in multiweek/month view
  • Fixed: 388926 – Use If-Modified-Since when checking for updates in ICS calendars
  • Fixed: 412202 – Long text strings in reminder should use line breaks and not scroll horizontally
  • Fixed: 533265 – Show differences when receiving an event update via email
  • Fixed: 1048035 – Remove occurences of deprecated parseHeadersWithArray from calendar code
  • Fixed: 1110183 – Displayed reminders can be improperly snoozed or duplicated when the calendar is refreshed
  • Fixed: 1151472 – Remove use of expression closures in calendar/
  • Fixed: 1169062 – Lightning extremely slow/unresponsive with Google Birthday calendar
  • Fixed: 1170271 – Provider does not sync single occurrences deleted occurrences
  • Fixed: 1180413 – Attendee list in event dialog should not be comma separated
  • Fixed: 1180416 – Tracking bug for Lightning 4.0.2
  • Fixed: 1184704 – ReferenceError: gs is not defined
  • Fixed: 1184714 – Fix some more strict warnings
  • Fixed: 1186579 – TypeError: is undefined when calling openUILink(kSupportUri, {});
  • Fixed: 1186828 – Support gtk3 builds
  • Fixed: 1187072 – Cache support gets reset disabled for network calendars in calendar property dialog
  • Fixed: 1187574 – calendar.context.togglevisible.accesskey is used for multiple strings
  • Fixed: 1187670 – AUDIO alarms without attachments are rejected although valid
  • Fixed: 1187675 – Icons to add an event or task are hard to distinguish
  • Fixed: 1187728 – There are still calendar-windows css files referenced
  • Fixed: 1187741 – VTODO only calendar disables “add as task” button
  • Fixed: 1188070 – Closebuttons are looking weird on hover
  • Fixed: 1188111 – Failed to read ‘hs’ and ‘ds’ errors in add to calendar button’s drop down list
  • Fixed: 1189109 – Errors in import of .ics file: “Component does not have requested interface [calIOperationListener.onOperationComplete]” nsresult: “0x80004002 (NS_NOINTERFACE)”
  • Fixed: 1192600 – create deterministic header list ical.h
  • Fixed: 1192883 – Fix timezone definition test
  • Fixed: 1193482 – Make gdataRequest backwards compatible again
  • Fixed: 1194997 – Tracking bug for Lightning
  • Fixed: 1195974 – Lightning 4.0.2 switches caldav calendards off and read-only when offline
  • Fixed: 1197320 – Free/Busy information of CalDAV calendar is no longer displayed after latest Lightning Calendar’s update (v4.0.2)
  • Fixed: 1198412 – Use Array.includes in calendar
  • Fixed: 1199942 – Event approval dialog does not filter calendars anymore
  • Fixed: 1200039 – VS2015 build fails in calendar/libical: fatal error C1189: Macro definition of snprintf conflicts with Standard Library function declaration
  • Fixed: 1200861 – Lightning repacks get fooled by interfaces.manifest generated from make export
  • Fixed: 1201169 – TEST-UNEXPECTED-FAIL | xpcshell-libical.ini:calendar/test/unit/test_gdata_provider.js | xpcshell return code: 0
  • Fixed: 1201838 – Printing tasks is broken [Error: TypeError: aItem[cal.calGetStartDateProp(…)] is null]
  • Fixed: 1202268 – App menu (Hamburger button) in calendar and task tab doesn’t work anymore
  • Fixed: 1202901 – Earlybird 42a2 email text from Outlook hidden by Lightning 4.4a2
  • Fixed: 1203539 – make[1]: *** [upload-en-US] Error 1 | make: *** [upload] Error 2
  • Fixed: 1204255 – Replies to email invitations which have been sent by Lightning 4.0.2 may have email attendees with and without mailto prefix for the same email address
  • Fixed: 1205050 – TEST-UNEXPECTED-FAIL | xpcshell-icaljs.ini:calendar/test/unit/test_bug1199942.js | xpcshell return code: 0

Sunbird will no longer be actively developed by the Calendar team.

Windows builds Official Windows

Linux builds Official Linux (i686), Official Linux (x86_64)

Mac builds Official Mac (2015-08-12 build only, due to bug 1195442)

Rumbling Edge - Thunderbird2015-09-27 Thunderbird comm-central builds

Thunderbird-specific: (89)

  • Fixed: 256628 – change wording of Recheck Page button in spell checker
  • Fixed: 267663 – Strange behaviour of “read” check for group header
  • Fixed: 267673 – indicate that a closed group has any unread messages, should not be bold if all are read (usability issue)
  • Fixed: 273110 – Thread pane context menu (group): disabled item becomes enabled on hover
  • Fixed: 323391 – Opens only items from one group when the “group-by”-bar is included in selection
  • Fixed: 368915 – Selection of spell check dictionaries disabled in subject line
  • Fixed: 368920 – Darken the background for Message Grouping (Group by Sort) headers
  • Fixed: 376610 – “load” event on Messenger Window fired twice (Mac OS X only)
  • Fixed: 478863 – Messages with future dates (>= tomorrow) badly break “Group by sort”, missing group header string for “Future Dates”
  • Fixed: 496045 – Disable “View message source” as a group action
  • Fixed: 500610 – Dummy headers (groupby view) should have context menus disabled
  • Fixed: 531285 – Use OpenStreetmap for maps (even allow the user to choose from list of map services)
  • Fixed: 532084 – (Message Header) Missing context menu to copy Subject line when mail opened in new window
  • Fixed: 655653 – When Message view is “Grouped by sort”, double-clicking anywhere but the expand/collapse arrow (eg in group heading) does not expand or collapse group
  • Fixed: 876165 – Threaded/Grouped View: not working if there’s only one unread message in a group
  • Fixed: 890332 – Hamburger menu button doesn’t open the menu on mouse down on first use
  • Fixed: 904812 – Make resources ‘testing-common’ and ‘testing’ available in Mozmill tests
  • Fixed: 998312 – Contacts sidebar: Implement Alt+Enter keyboard shortcut to edit the properties of selected AND focused contact (ux-consistency with TB address book and Windows/Linux default shortcut for “Properties”)
  • Fixed: 1037404 – drag’n’dropped reply mails should have “Re: ” in the filename
  • Fixed: 1043146 – Port to GTK3 for Thunderbird
  • Fixed: 1082551 – wrong call in log4moz.js ( “this._fos().XXX(…)” should be “this._fos.XXX(…)” )
  • Fixed: 1127580 – TEST-UNEXPECTED-FAIL | /builds/slave/test/build/mozmill/content-policy/test-general-content-policy.js | test-general-content-policy.js::test_generalContentPolicy
  • Fixed: 1131879 – Default to disable hardware acceleration (HWA) for Thunderbird
  • Fixed: 1138063 – Replace manual install rules (e.g. tests, FINAL_TARGET files) with equivalents
  • Fixed: 1148790 – Font indicator doesn’t update when cursor is placed into text with unsupported font in message composer
  • Fixed: 1152743 – Saved Files tab (about:downloads): Re-Implement “Search” field and “Clear List” button
  • Fixed: 1155655 – TEST-UNEXPECTED-FAIL | /builds/slave/test/build/tests/mozmill/quick-filter-bar/test-display-issues.js | test-display-issues.js::test_buttons_collapse_and_expand (The collapsy bar should not be shrunk!)
  • Fixed: 1171218 – Build symbols not working correctly in Thunderbird 38
  • Fixed: 1176216 – TEST-UNEXPECTED-FAIL | toolkit/components/search/tests/xpcshell/test_async_distribution.js | search_initialized – [search_initialized : 29] “bug645970” == “override”
  • Fixed: 1176716 – “Spelling” button should not be disabled when contacts side bar has focus
  • Fixed: 1178093 – Use darker toolbar icons on Windows 10
  • Fixed: 1180360 – Can’t compose a message to a newsgroup from the header
  • Fixed: 1180462 – Let Account Central show HTML tooltips
  • Fixed: 1180472 – Port bug 1173730 to TB [Use solid tab separator image on Windows 10]
  • Fixed: 1180475 – Remove aero from the tree. Part 1
  • Fixed: 1180478 – Remove aero from the tree. Part 2 (chat)
  • Fixed: 1180481 – Remove aero from the tree. Part 3 (messenger)
  • Fixed: 1180487 – Remove aero from the tree. Part 4 (tabmail)
  • Fixed: 1180588 – Spinner size is wrong on retina computer (when manually entering details for new account)
  • Fixed: 1182831 – typo in autosync.js
  • Fixed: 1185268 – [yosemite][Thunderbird] Simplified Chinese shows up in Traditional Chinese mode when saving an image (attachment)
  • Fixed: 1185540 – Support YouCompleteMe vim plugin in comm-central
  • Fixed: 1187158 – Direct users to the Notification Center settings to disable badge of Dock Icon
  • Fixed: 1187519 – Take Bug 1152517 “Recipient autocomplete wrongly considers last mouse-hovered contact …” and Bug 1130858 “Recipient autocomplete suggestion overrides ANY manual address …” into TB 38.x
  • Fixed: 1188306 – Import of address book in CSV format fails if data contains accented/international characters
  • Fixed: 1188778 – Windows 10 closing tb with X not possible (minimize, maximize and close not working)
  • Fixed: 1189365 – “anti-virus” typo US/GB
  • Fixed: 1190080 – [Windows 10] Jumplist icon almost not visible
  • Fixed: 1190092 – Zoom button cut off after startup if facet date view is unhidden
  • Fixed: 1190124 – run_tooltool process cannot find gtk3.tar.xz
  • Fixed: 1191941 – Disable addon signing via comm-central mozconfigs
  • Fixed: 1192494 – Remove aero from the tree. Part 5 (tagColors)
  • Fixed: 1192495 – Remove aero from the tree. Part 6 (quickFilterBar)
  • Fixed: 1192496 – Remove aero from the tree. Part 7 (mailWindow1)
  • Fixed: 1192497 – Remove aero from the tree. Part 8 (messageHeaders)
  • Fixed: 1192951 – Remove aero from the tree. Part 9 (primaryToolbar)
  • Fixed: 1192952 – Remove aero from the tree. Part 10 (addressbook)
  • Fixed: 1192953 – Remove aero from the tree. Part 11 (composer)
  • Fixed: 1192954 – Remove aero from the tree. Part 12 (tree removal)
  • Fixed: 1192969 – Unneeded preprocessing of messengerLWTheme.css
  • Fixed: 1192972 – Remove the tag definitions from searchDialog.css
  • Fixed: 1193143 – RuntimeError: File “mail/messengerLWTheme.css” not found in mail\themes\windows, mail\themes\windows
  • Fixed: 1193601 – Consider a different titlebar color for Windows 10
  • Fixed: 1193679 – Port bug 1173738 and following bugs to TB (Update URL and search bar borders on Windows 10)
  • Fixed: 1193682 – I’s hard to see the hovered treeitems in the sidebars on Windows 10
  • Fixed: 1193690 – Use the global close icon for Tabs
  • Fixed: 1193716 – Port Bug 1187286 to TB [prevent the ‘No account configured yet’ message from flashing when the account manager window opens]
  • Fixed: 1193721 – Window controls overlay the switch to tabs icons in Windows 10
  • Fixed: 1195143 – Use MOZ_ENABLE_SIGNMAR in instead of mozconfig
  • Fixed: 1195337 – ReferenceError: smtp is not defined when opening Troubleshooting Information, causing whole page to have no data
  • Fixed: 1195462 – Remove release-l10n mozconfigs as they are no longer use
  • Fixed: 1196662 – Thunderbird not checking for mails and becomes unresponsive after hibernation (problem is caused by upgrade to Thunderbird 38.2.0)
  • Fixed: 1197714 – Should not create more than one “Saved Files” download manager tab (about:downloads)
  • Fixed: 1198314 – A starred/marked message does not display the star icon
  • Fixed: 1198709 – crash in NS_strlen(wchar_t const*), TB 38.1.0, Irish (ga-IE) locale
  • Fixed: 1198729 – Attachments tab in Options has no icon
  • Fixed: 1199668 – Contact status and icon not shown for search result conversations
  • Fixed: 1200549 – imtooltip.xml, line 230: NS_ERROR_UNEXPECTED: Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIPrefBranch.getCharPref]
  • Fixed: 1202168 – Multiple TEST-UNEXPECTED-FAIL | toolkit/components/search/*
  • Fixed: 1202756 – Error during |make-package| because of missing
  • Fixed: 1203244 – Huge context menu after right click in message [ReferenceError: GetThreadTree is not defined] in mailContextMenus.js
  • Fixed: 1204206 – Close icon in Contacts sidebar mispositioned
  • Fixed: 1204901 – Remove filter to exclude some plugin strings
  • Fixed: 1205666 – blue bar as background of Options panes list
  • Fixed: 1206595 – Port relevant changes from | bug 885982 – Move MozTCPSocket and MozTCPServerSocket to WebIDL | to Thunderbird
  • Fixed: 1207267 – No horizontal border between toolbar and folder pane and message pane
  • Fixed: 1207363 – Use Array.includes in mail/ instead of indexOf != / == -1
  • Fixed: 1207707 – Port Bug 1189212 to TB [Pinned tab separators are sometimes too thick]
  • Fixed: 1207716 – Port Bug 1188194 to TB [Top border for lightweight theme in Windows 8 is too dark]

MailNews Core-specific: (35)

  • Fixed: 114607 – Newsgroups: Dialog for ‘download max number of headers’ will not appear for following subscribed NG if once set to “0”
  • Fixed: 209189 – Undo delete of message in local Trash folder causes corruption of Mail summary file with blank subject and body and crazy message date 1964/1969
  • Fixed: 301131 – junklog.html dates are taken from the message rather than system time
  • Fixed: 582170 – Need warning for destructive retention settings for POP (Disk Space) and IMAP (Synchronization & Storage) accounts
  • Fixed: 764323 – needs to pass the revision argument to
  • Fixed: 764987 – Allow extensions to add exposed protocols in nsMsgContentPolicy
  • Fixed: 766495 – Draft composition shows wrong in-line images from other draft, if other draft mail is placed at original offset of editing draft mail by Compact. So, if mail is sent without draft save after Compact, wrong image is silently sent by Tb.
  • Fixed: 797710 – Crash on message nsMsgFilterAfterTheFact::ApplyFilter, because of double free?
  • Fixed: 799450 – Thunderbird adds the text of an email in the Drafts folder to an email I send (Confidential data in other/irrelevant draft mail is silently exposed to unexpected recipients by Tb as data of image part)
  • Fixed: 817245 – If Offset of replied-mail/forwarded-Inline-mail/previous-draft-mail is altered by Compact while composing mail, Send/Save can’t find image data in the original mail then Tb spins with “Attaching…”, when the original mail is HTML mail with embed image.
  • Fixed: 843320 – Add number/list of folders chosen in the saved search (virtual folder) creation/edit dialog
  • Fixed: 1032302 – 8BITMIME keyword ignored in EHLO greeting, BODY=8BITMIME absent in MAIL request for 8-bit transfers
  • Fixed: 1100801 – Share duplicated functions from mail/components/addrbook/content/abCommon.js and mailnews/addrbook/src/nsAbAutoCompleteSearch.js
  • Fixed: 1131122 – You have to click “Recheck Page” twice to get it to spell check again
  • Fixed: 1143812 – Always allow creating new contacts and lists, eg after opening addressbook window, when ‘All Address Books’ is selected, or when search field has focus (eg Ctrl+N fails on all of these)
  • Fixed: 1144999 – If MailDirStore, ignore Quarantine option for POP3(mailnews.downloadToTempFile=true), because no need to do it
  • Fixed: 1158179 – Add missing entities of neterror page introduced to m-c in bug 1147212
  • Fixed: 1159255 – Build error: MSVC_ENABLE_PGO = True is not permitted to be used in mailnews/intl/
  • Fixed: 1174832 – In Grouped View, by Subject is special cased to lack a root header row, inconsistent with all other categories
  • Fixed: 1175242 – whole Inbox deleted at every start – maildir
  • Fixed: 1179442 – imap maildir folder has false excess unread message count in folder pane
  • Fixed: 1186141 – Still Outlook import crash via Tools | Import in Thunderbird 38.1.0, after bug 1175055
  • Fixed: 1186782 – nsMailComps.o: In function `DirectoryProvider’: mail/components/build/../shell/DirectoryProvider.h:35: undefined reference to `vtable for mozilla::mail::DirectoryProvider’
  • Fixed: 1189528 – mailnews/local/src/nsMailboxService.cpp:29:22: fatal error: nsRefPtr.h: No such file or directory
  • Fixed: 1189619 – Port bug Bug 1188745 [Rename nsTArray::SizeOfExcludingThis() as ShallowSizeOfExcludingThis() ] to comm-central
  • Fixed: 1189736 – Port Bug 1189156 [Don’t use enumeration style in hash table SizeOf*() functions ] to comm-central
  • Fixed: 1190489 – Port Bug 830801 – Add -DNOMINMAX to the default OS_CXXFLAGS on Windows
  • Fixed: 1192061 – SVG images attachments do not display inline
  • Fixed: 1192696 – Enable custom columns to be Grouped By Sort – backend
  • Fixed: 1195480 – Enable custom columns for secondary sort, persist and restore all column primary and secondary sort states
  • Fixed: 1196422 – error LNK2001: unresolved external symbol GetAsciiHostPort(class nsACString_internal &)
  • Fixed: 1197686 – jsmime fails on long references header and e-mail gets sent and stored in Sent without headers. “Error: Cannot encode … due to length.”
  • Fixed: 1203042 – Port bug 1201224 – stop unifying test package during mac universal builds
  • Fixed: 1205183 – Update comm-central for PLDHashTable changes in bug 1121760
  • Fixed: 1205762 – Port Bug 1201135 to mailnews [Rename pldhash.{h,cpp} to PLDHashTable.{h,cpp}]

Windows builds Official Windows, Official Windows installer

Linux builds Official Linux (i686), Official Linux (x86_64)

Mac builds Official Mac (2015-08-12 build only, due to bug 1195442)

SeaMonkeyUpdate for lists of supporters (wiki)

Mozilla WikiUnfortunately our supporters list in the wiki has become very outdated and useless, because most of  the listed persons no longer do support SeaMonkey.

So I decided to rework that list, goal is to have a reliable overview what persons actively do support SeaMonkey and are available for questions of other users, support to SeaMonkey tasks and similar.

For former supporters who have left the SeaMonkey project I created a new page.

As preparation I wrote an e-mail to all persons listed in the old supporters table. My result:

  • 44 Wrong e-mail-addresses
  • 03  users who asked me to remove them from the table
  • 01 Users Who told me that he is still active
  • 02 Users who told me that they still are interested in contributing, but currently hibernating
  • 05 personal e-mails with various other contents
  • 108 e-mails without any automated or personal reaction

I expect that users, who received an e-mail but did not answer, are not interested in any contact or activity, so I removed them from the table. The result is a very short stub of an accurate supporters list.

Of course I know that this new list is incomplete, I do not know all supporters and did not yet find enough time for further research. So please add yourself to the list if you are active in the SeaMonkey project, if you agree that other supporters will  address you and if and your name is missing in the new list. If your name has been deleted from the old table you can simply copy / paste the text line with the table row for your name from an older Version of the wiki page. If you do not have a Wiki-account and do not want to create one for that single action please simply leave a comment here with required information, someone will add it to the table.

And of course, please update your entry and correct errors, any help to get a more useful “contact-brokering service” in the wiki is appreciated.

Mozilla IndiaGrow Firefox download in Indian Languages – Pilot campaign

To spread Localized Firefox in India, Mozilla Hindi Localization community is planning for a coordinated pan-India campaign. The campaign would run from 2nd October to 1st November.

Why 2nd October: 2nd October is birthday of our Father our Nation, Mahatma Gandhi  and we celebrate this day as Gandhi Jayanti.
“Gandhi led nationwide campaigns for easing poverty, expanding women’s rights, building religious and ethnic amity, ending untouchability, but above all for achieving Swaraj or self-rule.”

To show users that Firefox is available in their language we are creating a campaign that helps fans of Firefox invite the people in their networks to download Firefox. We are creating unique, shareable pieces of content that are humorous, insightful and topical to get the conversation and activities started.


What are we saying?

Firefox is a non-profit browser that was created by thousands of volunteers who believe the Internet should be free and open to everyone. Firefox is built for people, not for profit. We don’t believe in tracking and selling people’s data. Firefox believes in creating a safe, open and customizable way to experience the web. Our dedication to privacy is the reason we were voted the most trustworthy Internet company.

Why are we asking you?

You are a passionate member of the Mozilla community. You tell people all the time about how amazing Firefox is and you probably have some super creative thoughts on how other people could tell their families and friends to download Localized Firefox too.

Get Involved!

There are several ways to get involved:

  • Host an event!
    • Help host an event in your city! A number of events will be hosted between 2nd October to 1st November in support of Grow Firefox download  in Indian Languages-Pilot  Campaign. We will work together to provide talking points, speakers and guidance on how to create localized content to be used in your channels.
        • Promote your event by:
          • Telling and inviting friends!
          • Create an original invitation for that group (Flyers! or a creative meme)
          • Writing about it on Facebook & Twitter.
          • Posting updates, creating events or sending invites via Facebook and social networks.
          • Share it with us!
  • Need to find a location? Here are some ideas:
    • Rec rooms at schools, universities or community centers
    • Restaurants, cafes, bars or LAN houses
    • Your company or your home
    • Local parks and picnic area
  • Firefox for Desktop in Hindi     :
  • Firefox for Desktop in Marathi :

Let’s get everyone from Mozillians to internet users sharing the campaign. You will be an important voice in making sure we’re heard. Share the Firefox Love!Help spread the word about our latest news, events, announcements and more, using your Facebook, Twitter, and other social media accounts. The more you share, the more opportunity you have for being recognized and rewarded. Plus, you’ll be in the know for all the latest Firefox news and announcements.

Who Can Sign Up?

This campaign is open to Mozillians, Firefox Student Ambassadors, Mozilla Reps & Anyone interested.

We’ll be supporting several community led events across India by helping with content, talking points, speakers, swags & more. Selected ideas/ events will be guided/supported by the Mozilla Hindi and Marathi Localization team.

Signup Now!

Form for Request:

Deadline to apply: September 30th 2015

Check out these links as well:



hacks.mozilla.orgDo not let your CDN betray you: Use Subresource Integrity

Mozilla Firefox Developer Edition 43 and other modern browsers help websites to control third-party JavaScript loads and prevent unexpected or malicious modifications. Using a new specification called Subresource Integrity, a website can include JavaScript that will stop working if it has been modified. With this technology, developers can benefit from the performance gains of using Content Delivery Networks (CDNs) without having to fear that a third-party compromise can harm their website.

Using Subresource Integrity is rather simple:

<script src=""

The idea is to include the script along with its cryptographic hash (e.g. SHA-384) when creating the web page. The browser can then download the script and compute the hash over the downloaded file. The script will only be executed if both hashes match. The security properties of a collision resistant hash function, ensure that a modification results in a very different hash. This helps the site owner detect and prevent any changes, whether they come from a compromised CDN or an evil administrator.

An important side note is that for Subresource Integrity to work, the CDN must support Cross-Origin Resource Sharing (CORS). The crossorigin attribute in the above code snippet enforces a CORS-enabled load. The anonymous value means that the browser should omit any cookies or authentication that the user may have associated with the domain. This prevents cross-origin data leaks, and also makes the request smaller.

Integrity syntax

As you may have noticed, the integrity attribute does not just include the hash value. It also contains the digest name. The syntax for the integrity attribute allows multiple tokens of this name-value format. This allows site owners to specify hashes of different strengths as well as the values of multiple scripts that may be behind a URL. This is useful for browser sniffing or content negotiation.

<script src=""


For the best performance, users would load all resources from the CDN, but if integrity cannot be verified, you don’t want your users to be trapped on a non-working web page. To make failover work, we recommend hosting a copy of the script on your own origin. To recover from failure one could then extend the previous snippet with the following code:

<script>window.jQuery || /* reload from own domain here */;</script>

This code will check if jQuery has been defined and could otherwise insert a script tag that loads the same origin version of the script.

Please note that many scripts update regularly, especially if they do not come with a version number. If you want to secure your CDN-loaded scripts, it is best to stick to a specific version and not use filenames with the word ‘latest’ in them.


Subresource Integrity works on both HTTP and HTTPS. If you are serving your page over plain HTTP, the browser can still figure out if the script was modified on the CDN, but it is not protected against active network attackers, as they would be able to just remove the integrity attribute from your HTML. It is, however, in the interest of your users to provide confidentiality, integrity, and authenticity of your web applications by using HTTPS for the entirety of your website.

Stylesheet support

While we are working on adding support for subresources other than scripts, you can also use Subresource Integrity for CSS. Just use the integrity attribute that you now know so well on your <link> tag!

Try Subresource Integrity Now!

If you want to test browser support or toy with examples, take a look at, which can do all the grunt work of computing hashes as well as checking if your CDN already supports HTTPS. A few early adopters like BootstrapCDN, CloudFlare and GitHub are already experimenting with it.
There is some additional documentation of Subresource Integrity on MDN. But if you want to read all the fine details of Subresource Integrity, take a look at the specification.

To conclude, Subresource Integrity can make your website safer when using a CDN that you do not fully control. It’s as simple as adding just a few extra attributes to your script tags.

SUMO BlogWhat’s up with SUMO – 25th September

Hello, SUMO Nation! Summer is definitely gone (at least in the calendars), but we are going strong into autumn, aren’t we? It’s a release week, after all… Here are the latest and greatest news from the world of SUMO.

Welcome, New Contributors!

If you joined us recently, don’t hesitate – come over and say “hi” in the forums!
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!

Contributors of the week

We salute you!

Last SUMO Community meeting

Reminder: the next SUMO Community meeting…

  • …is going to take place on Monday, 28th of September. Join us!
  • If you want to add a discussion topic to upcoming the live 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).



Support Forum

Knowledge Base




See you on Monday – take care and eat fresh fruit! I hear it’s good for you ;-)

SeaMonkeysource tarball

To all distro-maintainers and others who need the official source tarballs, while the source tarball was available earlier, the *actual* tarball was uploaded earlier today.

Please ensure your tarball has the following checksums.

e1278489c5cc41e1cd87f4a01a7e5d16addea197ef5e04003459d7989bcf66a1d135f08dde7291227a9d556ad07928ed5f41d75d6e288bb68488ffd74a2657eb sha512 176647220 source/seamonkey-2.38.source.tar.xz

d77b2550665a94a88c69368f4cf54833 md5 176647220 source/seamonkey-2.38.source.tar.xz
fc9c22f7411372876d4f151ff6aca39cde31f711 sha1 176647220 source/seamonkey-2.38.source.tar.xz

If it’s not that, please redownload.  Don’t be alarmed if it isn’t.  During the source step, a file was mistakenly modified when it shouldn’t have (My fault).

The file is suite/   In the release source, the suite/ should not have the source-upload rule.  If yours does, delete the source and download it again.  That change will be in the next release/beta.

I apologize for the goofup.


QMOFirefox 42 Beta 3 Testday, October 2nd

Hello Mozillians!

I’m writing to let you know that the following Friday, October 2nd, we’ll be hosting the Firefox 42.0 Beta 3 Testday. The main focus of this event is going to be set on Tab visual sound indicator and Control Center. Detailed participation instructions are available in this etherpad.

No previous testing experience is required so feel free to join us on the #qa IRC channel and our moderators will make sure you’ve got everything you need to get started.

Hope to see you all on Friday! Let’s make Firefox better together! :)

Meeting NotesChannel: 2015-09-24


Jorge, KaiRo, lizzard, philipp, ritu, jlund, sylvestre

Schedule Update

  • 41
    • Updates disabled at the moment
    • Plan for a dot release early next week due to:
      • bug 1207665 IMA 350 graphics card related start up
      • bug 1178601 Crashes coming from facebook
  • 42.0 beta 1 live on Desktop & Mobile
  • GTK 3 will be disabled in beta 2


  • Upcoming Flash blocks:
 *, 13.* branch (old ESR). Staged and awaiting QA. Will deploy as soon as it's ready.
 *, up to version Staged and QA'd. Will deploy next week.



Overall rate: 1.7 (no changes as no updates turned on yet

  • Waiting for data to come in over the weekend.


Overall rate: 1.0 (trending slightly up)

  • bug 1178601 (gl::GLBlitHelper::BlitImageToTexture), almost 4% overall, see release section
  • bug 1208071 (layers::PImageBridgeChild::Write) is 2.2%
  • bug 1208059 (plugins::PluginAsyncSurrogate::Cast) is 2%


Overall rate: 0.9 (trending up, but only slightly and 41 does not have many users yet)

  • bug 1207665 (startup, CompositorD3D11::GetTextureFactoryIdentifier), #1 Top Crash Score, 1.7% of overall 41.0 crashes
  • bug 1178601 (gl::GLBlitHelper::BlitImageToTexture), 5% – this has been rising yesterday in all of 40, 41, and 42, so probably a website change, almost all of those crashes are on Facebook
  • bug 1204669 (nsXBLService::GetBinding) is 0.8% but we thought we had fixed this :(
  • bug 1208008 (with “Mozilla Archive Format” add-on), #4 Top Crash Score, 0.8%


  • bug 1207642 (random hex addresses) causes crash rates to explode on release 41.
  • bug 1178601 – in the top 5


  • Currently, we don’t enable updates for Aurora until Friday after the release. Do we get enough data from people downloading aurora, to be useful? I’m looking at Wednesday, and it lists 464 people total on 43.0a2. That isn’t a lot. We’re losing a week where we could be catching problems in early aurora on a broader population. I think we should try letting updates be enabled from release day onward and plan to throttle if there is a problem. (lizzard)
    • This period is used for QE to validate aurora and find critical issues (syl)

Special Topics

Aurora/Beta Feature Review

  • 43 aurora: Unified autocomplete, search suggestions, MLS location service

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: ReleaseCoordination
  • Vidyo Guest URL

The Mozilla BlogMozilla’s Vision for a Healthy, Sustainable Web

Not surprisingly, the latest discussions around content blocking have resulted in a polarizing debate about the users who choose to block content as a way to control their Web experience, and the commercial interests who monetize that content. All of this inevitably leads to a discussion about which content is good, which content is bad, and which content should be blocked.

Rather than focusing on the symptoms of the problem, we should be asking ourselves why users have sought to use blunt instruments like content blockers to help them navigate their online lives. We don’t know the full answer to this question yet. What we see is that the reasons differ among users and may depend on the device (e.g. on desktop users may be focused on privacy and performance may be a side benefit, whereas on mobile performance and data usage may be a main focus). We as an industry need to understand the user’s needs.

User needs and commercial interests are not a zero-sum game – they are complementary parts of one thriving, resilient Web. Creating a balance between commercial profit and user benefit is critical to the health of the Web.

An issue needing more balance is user data. The collection and use of data is not inherently harmful. It helps with powering personalized features, keeping products up to date, providing user support and improving the ways products work. Providing user value through data collection is a healthy and necessary way to help create compelling experiences. However, when data is collected without providing the user with value or control, and the value exchange becomes opaque, confusion sets in. Then users start to mistrust the entire system—including the good actors.

We are trying to get to the root of the problem – but not just through research. We are also working to develop products, features and engagement supporting a great user experience and commercial sustainability.

We need your help to find this delicate balance and to chart the path for a Web based on trust.
You can help us test Private Browsing with Tracking Protection in Firefox Beta. The tracking protection feature in private browsing is targeted toward those users who are seeking more control – whether that control is about the protection of data or the desire for better performance. Additionally tools such as Lightbeam, Smart On Privacy, and Web Literacy programs educate users and offer better insight into how the Web works.

On the commercial end of the equation, we are playing a leading role with publisher initiatives to take charge of the experiences delivered on their sites and deliver more acceptable advertising experiences to users.

As an industry we need to keep the user at the center of the product vision rather than viewing the user as just a target to acquire. It’s the only way to honor the user’s choice and deliver the best, most trusted and most valuable experiences possible.

Webmaker#Thimblechat Recap

If you missed out on last night’s Remix the School Year with Thimble Twitter chat, don’t worry! You can still join in the conversation on our forum and/or read the entire discussion here.

We had 26 individuals from 7 countries (U.S., Canada, Central African Republic, India, Venezuela, Indonesia, Nepal) on 4 continents join us in real time for the conversation.

We shared stories about the different contexts in which we #teachtheweb, what people look for in a great project to remix, how to help struggling learners grasp basic web literacy concepts, the types of supports people  need to help them learn about some of Thimble’s new features, and more.

Here are just a few quick highlights:

Thanks so much to everyone who participated! We look forward to continuing this conversation in our forum, and will be scheduling more Twitter chats soon–please feel free to comment here with suggested topics.

hacks.mozilla.orgBuilding RTL-Aware Web Apps & Websites: Part 1

Making the web more accessible to more people, in more languages, is an ongoing effort and a mission we take very seriously at Mozilla.

This post is the first of a series of articles to explain one of the most neglected and least well-known corners of web development: RTL (right-to-left) development. In a web development context it means making your web content compatible with RTL languages like Arabic, Hebrew, Persian, and Urdu, which are all written from right to left.

This area is often neglected by developers because of the lack of teaching resources. In this series, we hope to provide enough information to allow developers to make content that’s accessible to a broader global audience using the RTL capabilities that most web browsers currently provide.

What actually is RTL?

To make things clear, there is a difference between a language and its script. A script is the text or written form — while the language refers to the spoken form. So technically, right-to-left describing the script in which a language is written, comparable to left-to-right scripts, like English or French, more familiar to many Western readers.

For example, “Marhaban” – which means hello – is a word written in the English script, but has Arabic as its language, while “مرحبا” is both Arabic script and Arabic language.

On the web, as we said earlier, the term Right-To-Left indicates more than just a script for writing. It stands for all facets of developing web apps and websites that do not break or become unreadable when used with Arabic, Urdu or any other RTL script.

Before continuing, let’s just clear up some misconceptions about RTL.

First, RTL is not about translating text to Arabic: It means more than translating your website into Arabic and calling it a day. It’s about making every aspect the UI and layout RTL-friendly. And as I always say – and can’t stress it enough – do RTL right or don’t bother! Doing it halfway will lose your audience and credibility.

Second, RTL is more than just “flip all the things”: I’m not sure if this issue has been fixed yet or not, but setting your locale to Arabic in Gnome will cause the time to be shown as PM 33:12 instead of 12:33 PM.

Well, that is not how it works. I’m a native Arabic speaker but that doesn’t mean I tell time backwards. There are some exceptions and things to pay attention to about numbers, and we will cover them in this series.

Why should I care about RTL?

You might have the impression that RTL is hard, scary, and will add a great deal of work to your project! Really, it’s not that difficult. Once you comprehend the basics, the extra effort required is not that great.

You should really care about adding right-to-left support to your web app or website for many, many reasons. There are over 410 million native RTL speakers around the world as of 2010 (That’s a lot of people! Note: The assessment is based on Wikipedia’s list of all the languages.) It’s also millions of potential users and a huge potential market for your app or website. Most companies now add RTL support to their software (e.g. Windows, iOS, Android) and websites, so native RTL speakers expect your website to meet their expectations regarding RTL support. Without this support visitors to your web application may not become repeat users.

In the case of Firefox OS, we only started shipping devices to the Middle East when we had RTL support fully implemented in the system, and thus our partner Orange was able to sell devices with the OS on it. This obviously opens up a whole new market of users to Firefox OS.

Best practices for RTL

Here are some general rules of thumb to keep in mind when developing RTL-aware websites and web apps:

  • Think from the right: In a region with an RTL script and language, books open from the right-hand side. Thus, most UI elements related to readability are going to be mirrored.
  • Hardware legacy UI is a thing: In MENA (Middle East and North Africa) and other regions where RTL languages are spoken, people use gadgets too. Audio hardware has the same control layout as anywhere else in the world. So buttons like Play, Fast Forward, Next, Previous have always been the same. And because of that, it’s not a good idea to mirror any of those buttons. Please don’t RTL the media player buttons. Another example of hardware legacy is the physical feature phone keyboard; before there were Blackberries and similar keyboards for handhelds, there was the simple physical numpad — until very recently it was widely popular in MENA countries. For this reason, It is strongly advised to *not* mirror the number keys. A good example of this is Firefox OS. As its initial target was developing countries, we made sure not to make the dialer mirrored in RTL.
  • Firefox OS Contacts AppThinking Right-To-Left is not thinking left-handed: Remember not to confuse developing RTL UIs with southpaw-first ones. In RTL regions of the world, right-handed people are a majority, just like in the rest of the world. So anything that is not related to how the user reads the actual content on the page should not be mirrored. An example of this is the Firefox OS A-Z scrollbar (image to the right) in the Contacts App. It is placed on the right because it’s easier to scroll through with the right hand, so such a thing should not go on the other side when your page is in RTL mode.

Down to business: How to RTL content

The first step towards making a web page RTL is adding the code dir="rtl" to the <html> tag:

<html dir="rtl">

dir stands for direction and setting its value to rtl defaults the horizontal starting point of elements to the right instead of the left.

To target an element with CSS only when the page is RTL:

  1. Create a copy of any regular CSS rules that target it.
  2. Add a html[dir="rtl"] attribute selector onto the front of the selector chain.
  3. Next, whenever you find a property or a value that represents horizontal positioning of some kind in the RTL rule, use its opposite. For example, if you find `float: left` you should change it to float: right.

As an example, if the original rule is as follows —

.someClass {
    text-align: left;
    padding: 0 10px 0 0;
    text-decoration: underline;

we would paste a copy of it after the original and update it as follows:

html[dir="rtl"] .someClass {
    text-align: right;
    padding: 0 0 0 10px;

Notice that the text-decoration: underline; declaration has been removed. We don’t need to override it for the RTL version because it doesn’t affect any direction-based layout elements. Thus, the value from the original rule will still be applied.

Here’s an even more detailed example you can hack on directly:

See the Pen dYGKQZ by Ahmed Nefzaoui (@anefzaoui) on CodePen.

Of course, real-life cases won’t be quite as simple as this. There are applications with a huge number of CSS rules and selectors, and there are multiple strategies you could adopt. Here is one recommended approach:

  1. Copy and clean up: First, copy the content of your stylesheet to another file, add html[dir="rtl"] to all the rules, then clear out any properties that do not relate to horizontal direction setting. You should end up with a more lightweight file that deals purely with RTL.
  2. Mirror the styles: Change all of the properties left in the new file to their opposites: e.g. padding-left becomes padding-right, float: right becomes float: left, etc. Note: if you originally had padding-left and you changed it to padding-right, remember that the original padding-left still exists in the original rule. You must add padding-left: unset alongside padding-right, otherwise the browser will compute both properties: the padding-left from the original CSS rule and the new padding-right in the RTL rule. The same is true for any property that has multiple direction variants like the margin-left|right, border-left|right
  3. Paste back: After you’ve completed the previous steps, paste the newly created rules back into the original file, after the originals. I personally like to add a little comment afterwards such as: /* **** RTL Content **** */ for the sake of easier differentiation between the two parts of your style file.

A better way: isolating left/right styles completely

Sometimes you will find yourself facing edge cases that produce code conflict. This involves properties inheriting values from other properties, meaning that sometimes you won’t be sure what to override and what not to. Maybe you’ve added the margin-right to the RTL rule but are not sure what to set as the value for the original margin-left? In all real-world cases it is advisable to adopt another approach, which is better in general but more long-winded. For this approach we isolate direction-based properties completely from the rules for both the LTR and the RTL cases. Here’s an example: say we have .wrapper .boxContainer .fancyBox listed like this:

.wrapper .boxContainer .fancyBox {
    text-align: left;
    padding-left: 10px;
    text-decoration: underline;
    color: #4A8CF7;

Instead of adding another property for RTL with both padding-left and padding-right, you can do this:

.wrapper .boxContainer .fancyBox {
    text-decoration: underline;
    color: #4A8CF7;

html[dir="ltr"] .wrapper .boxContainer .fancyBox {
    text-align: left;
    padding-left: 10px;

html[dir="rtl"] .wrapper .boxContainer .fancyBox {
    text-align: right;
    padding-right: 10px;

This solution consists of 3 parts:

  1. The original rule/selector with only non-direction based properties, because they are shared by the LTR and the RTL layout.
  2. The left to right case — html[dir="ltr"] — with only the direction-based CSS properties included, their values set to match your LTR layout.
  3. The right to left case — html[dir="rtl"] — with the same properties as the LTR case, only with their values set according to what you want in your RTL layout.

Notice that in the second rule we had padding-left only and in the third one we had padding-right only. That’s because each one of them is exclusive to the direction that was given to them in the dir attribute. This is a nice, clean approach that doesn’t require unsetting of properties. This is the exact approach we use when adding RTL support to Firefox OS. (Note: the unset keyword isn’t supported in all browsers. For the best compatibility you may need to explicitly re-declare the desired value for any properties you want to unset.)

How do we get and set the direction of the page using JavaScript?

It’s fairly easy, and requires only one line of code: document.documentElement.dir
You can assign this line to a variable, and have it outputted to the console to see for yourself:  

var direction = document.documentElement.dir; console.log(direction);

Or try this example:

See the Pen WQxWQQ by Ahmed Nefzaoui (@anefzaoui) on CodePen.

To set the direction of the page, just use the following:
document.documentElement.dir = "rtl"

And here’s an example of both getting and setting the direction value for a web page:

See the Pen gaMyPN by Ahmed Nefzaoui (@anefzaoui) on CodePen.

Automatic RTL solutions

Enough talk about manual ways to do RTL. Now let’s take a look at some automated approaches.


Twitter has developed a solution to automate the whole process and make it easier for bigger projects to implement RTL. They have open sourced it and you can find it on Github.

This NPM plugin covers pretty much all the cases you could find yourself facing when working on RTL, including edge cases. Some of its features include:

  • no-flip: To indicate to the mirroring engine that you don’t want a certain property flipped, just add /* @noflip*/ at the beginning of the property. So, for example, if you write /* @noflip*/ float: left, it will stay as float: left after css-flip is run.
  • @replace: When you have background images that differ between LTR and RTL, you can specify a replacement image by including /*@replace: url(my/image/path) before the original property. Let’s say you have background-image: url(arrow-left.png). If you update the line to
    /*@replace: url(arrow-rightish.png) */ background-image: url(arrow-left.png);
    You will end up with background-image: url(arrow-rightish.png); in the RTL layout.

You can use css-flip through the command line by executing
css-flip path/to/file.css > path/to/file.rtl.css or by requiring css-flip in your page. More about that on their github repo. css-flip is being actively used on Twitter properties.


Another option for automatic conversion is a tool from Mohammad Younes called rtlcss — this is also available on github and provides some pretty nifty features. With this one engine you can:

  • Rename rule names (e.g. renaming #boxLeft to #boxRightSide).
  • Completely ignore rules from the mirroring process.
  • Ignore single properties.
  • Append/prepend new values.
  • Insert new property values in between other property values.

Basic usage is via the command line — you can create your RTL CSS equivalent by the running the following in the same directory your original CSS is available in:

rtlcss input.css output.rtl.css

And of course you can just require it in your page. More details are available on github.

This project is very popular and is being used by several projects including WordPress.

Final words

While there is still a lot to cover, this article aims to provide you with enough knowledge to start exploring RTL confidently. In the next article we’ll cover more advanced topics around RTL.

Be sure to ask any questions you may have around RTL in the comments section and we will try to answer them here or in the next post!

Air MozillaSeptember 2015 Brantina with Deanna Zandt: "Should I Put It On Yammer?"

September 2015 Brantina with Deanna Zandt: "Should I Put It On Yammer?" Our September Brantina speaker, Deanna Zandt, has generously volunteered to speak with us about the neuroscientific dynamics of online communications. She'll provide a deeper understanding...

SeaMonkeySeaMonkey 2.38..

We are currently spinning SeaMonkey 2.38 and hope to have it out soon, barring any technical difficulties.

Please stay tuned.


Meeting NotesMobile: 2015-09-23


Topics for This Week

  • The new meeting style! Our tracking review & standups go to smaller team meetings. This is a high level summary & discussion meeting, like Snorp has been doing with his team.

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?

  • Christian fixed bug 1204655 – Respond to a main launcher intent with category APP_BROWSER selector
  • Dominique Vincent [:domivinc] fixed bug 1200181 – Zoomed view and Form Assistant should not be displayed at the same time
  • GaryChen [:GaryChen][:PYChen][:gchen][:陳柏宇] fixed bug 1189832 – Send URL or Video/Audio to FxOS Smart TV
  • Justin Inouye [:inouju] fixed bug 1196387 – Remove unneeded “reading time” code and layouts
  • Nathan Toone [:toonetown] fixed bug 1203800 – Allow for specifying the ANDROID_VERSION_CODE to use
  • Nikhil Marathe [:nsm] (please needinfo?) fixed bug 857135 – AWSY: ~1MB regression in resident memory usage on Fennec ARMv6 from push notifications
  • Prabhjyot Sodhi [:psd] fixed bug 1167382 – Reset search engine bar scroll state when it is shown
  • Prabhjyot Sodhi [:psd] fixed bug 1186683 – BrowserSearch Fragment is destroyed when hidden
  • Prateek Arora fixed bug 1201340 – update aboutBase.css to include an explicit background color
  • Sergej Kravcenko fixed bug 1186077 – Default favicon (globe) is briefly shown on about:home before updating to favicon
  • Vivek Balakrishnan[:vivek] fixed bug 1178378 – Make Fennec listen for profile events from
  • Vivek Balakrishnan[:vivek] fixed bug 1184760 – Avoid opening TOS and privacy links from Account settings in a new tab.
  • Vivek Balakrishnan[:vivek] fixed bug 1204565 – Provide intelligent gradle unit test options

Team Updates

Android platform

snorp, jchen, rbarker, esawin, droeh

  • Notes
  • Mostly the same as last week
  • Have Gecko on iOS built and running, working on fixing up some things that ted asked about
  • Started thinking about e10s — need to start coordinating with frontend folks on that

Android front-end

margaret, ally, liuche, mcomella, mhaigh, sebastian

  • [mcomella] In bug 1201206, I will have our app inherit from the “AppCompat” base styles from the support library.
    • I’ll send out an email when this lands, but look-out for styles that have changed and don’t look right! Particularly on lesser used API levels (e.g. Gingerbread)
    • This is to allow use of some support library features which require the styles (e.g. DialogFragment)
    • Will also eventually move towards a unified UI across API levels (bug 1202076).
  • [mcomella] Material 3-dot menu icon (i.e. round 3-dot icon) fallout is fixed – let me know if you see further issues
  • [sebastian] Project “KidFox”: Everything’s fixed in Nightly and Aurora. bug 1203011 has not been uplifted in time (Merge Day). Requested uplift for Beta.
  • [liuche] Onboarding A/B testing landed (43), next is updating firstrun titles bug 1185002, importing bookmark structure bug 1205824
  • [ally] Awesomescreen: Search History is now independent of Search Engine suggestions bug 1200367, Nightly only, making everything prettier bug 1199335 & bug 1195614


st3fan, bnicholson, fluffyemily, jhugman, sleroux

  • [fluffyemily] Open PDF in external apps, adding login manager to injected forms, squashing a few PB tickets
  • [bnicholson] Finished all Clear Private Data dependencies. Experiments with JS-based content blocking.
  • [sleroux] Landed tab tray support for creating/toggling private mode. Browser chrome private mode theming in review


darrin, tecgirl, antlam

  • General
    • Toronto week (next week!) meeting agenda
    • Connected Reading List
  • iOS
    • private browsing UX
    • screenshots/marketing coordination and planning
    • ui-reviews for all the great 1.1 work
    • “peek drawer” sketches
    • first run copy + illustrations
    • monthly research planning


Feature Focus

Round Table

  • [mcomella] I find it helpful to have a list of what I’ve done for these summary meetings so I wrote a script to print out Bugzilla links:
    • Prints links from the past week so this can be useful for your team standup meetings too


  • Wednesdays – 9:30am Pacific, 12:30pm Eastern, 16:30 UTC
  • Dial-in: conference# 99998
    • US/Toll-free: +1 800 707 2533, (pin 369) Conf# 99998
    • 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
  • #mobile for backchannel
  • Mobile Vidyo Room

Meeting NotesFirefox/Gecko Delivery Planning: 2015-09-23

Video/Teleconference Details

Release Week 0

Focus of this meeting: Firefox 41 Release, follow-up.

Schedule & Progress onUpcoming Releases (Liz/Sylvestre/Lawrence/Ritu)

  • 41.0, 38.3.0esr released
  • Beta 42.0b1 released, 42.0b2 release next Tuesday
  • Aurora 43 released, but updates aren’t yet enabled
  • Please note issues with 41 in our post-mortem doc, meeting in 2 weeks.

Feedback Summary (Rob/Tyler/Matt)


Norton Toolbar won’t be compatible until the end of October, Driving lots of feedback.

Planning Meeting Details

Mozilla Add-ons BlogAdd-ons Update – Week of 2015/09/23

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

  • Most nominations for full review are taking less than 10 weeks to review.
  • 163 nominations in the queue awaiting review.
  • Most updates are being reviewed within 7 weeks.
  • 88 updates in the queue awaiting review.
  • Most preliminary reviews are being reviewed within 10 weeks.
  • 152 preliminary review submissions in the queue awaiting review.

The unlisted queues aren’t mentioned here, but they have very low numbers. We’re in the process of getting more help to reduce queue length and waiting times for all queues. A new admin reviewer started helping us this week and we’re looking for a second one.

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 41 Compatibility

The compatibility blog post has been up for a while. The compatibility bump was run on Monday, which is way too late, and I apologize for that. I just lost track of it. Fortunately it was a fairly small validation with very few developers affected.

Firefox 42 Compatibility

Expect the blog post to come up soon. Again, this is something I expected to have done sooner, but it’s coming.

As always, we recommend that you test your add-ons on Beta and Firefox Developer Edition (formerly known as Aurora) 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 new add-on installation UI and signature warnings are now enabled in release versions of Firefox.

We recently announced an extension to the signing deadline. The current plan is to turn on enforcement by default in Firefox 43.


Electrolysis, also known as e10s, is the next major compatibility change coming to Firefox. In a nutshell, Firefox will run on multiple processes now, running content code in a different process than browser code. This should improve responsiveness and overall stability, but it also means many add-ons will need to be updated to support this.

If you read Kev’s post on the future of add-on development, you should know there are big changes coming. We’re investing heavily on the new WebExtensions API, so we strongly recommend that you start looking into it for your add-ons. If you have requests for new APIs, please suggest them in the uservoice forum.

about:communityMDN Fellows: What They Did & What’s Next

It’s hard to believe our MDN Fellowship Pilot is winding down! Announced in May and oriented in June, our five Fellows and mentors have been heads’ down ever since.  Here’s a short summary of their accomplishments in the program and a taste of what’s next.

Curriculum (Steve Kinney, Fellow; Chris Mills, Mentor)

For the curriculum Fellowship we selected to write a full course on “Advanced beginning JavaScript.”  Steve and Chris considered this to be important because, while there are loads of resources looking at beginner-level stuff like variables and basic function usage + a load of discussion of really advanced techniques, there is very little to help a budding developer who has already mastered the basics and wants to level-up their skills.

Steve and Chris are still working on the course, and will be for weeks to come — see the repo, and read the index file for an idea of the content we’ll include.

If you want to dig in right away, you can already start working through some of the tutorials and demos.

Service Workers (Flaki Szmozsanszky, Fellow; Brittany Storoz + Anne Van Kesteren, Mentors)

With more widespread browser support for service workers fast approaching, we were aiming for creating a “baseline” service worker content kit. It was to cover the general, high-level “what are service workers and why should I care?” questions as well as being able to provide resources for interested parties. Take a test drive of the content kit here.

Beyond just collecting and completing the above baseline content kit, during the Fellowship Flaki had the chance to work closely not just with his service worker mentors Brittany Storoz and Anne van Kesteren but also with the content & platform teams at Mozilla who work hard on implementing service workers and related features in Firefox & Firefox OS.

We also devised a proof-of-concept transparent image format polyfill that uses service workers, which, besides being a novel approach in using service workers, helped a lot in uncovering some lurking bugs in Firefox’s preliminary implementation. We especially want to thank Ben Kelly of the platform team who was invaluable in tracking down, reporting and fixing those issues.

See this blog post for more details on the content kit and the proof-of-concept polyfill.

Test The Web Forward (Ben Boyle, Fellow; James Graham and Josh Matthews, Mentors)

As Test the Web Forward already has great documentation on getting involved, we had two goals: (1) address the quality of the contributions, and (2) build confidence in new contributors.

We’ve focused on understanding web specifications in order to write accurate tests both in terms of coverage (understanding the detail in a simple specification) and in challenging assumptions so that tests are based on what the spec says (and not what we think it means).

We’ve set up a codepen to use the testing framework. This can be forked to write new tests to check behaviour and is useful for exploring a problem, or for accompanying bug reports. It’s a nice quick way to get started, before installing the Test the Web Forward repo to contribute directly.

We are also working on a couple of case studies (more to come) showing the experience after finding an interoperability issue including researching the specs and analysing the behaviour seen in browsers. Each journey is different, and a wonderful chance to learn more about the web.

Web App Performance (Vignesh Shanmugam, Fellow; Harald Kirschner, Mentor)

With the increase in average website size, we need to better access the web from varying levels of computing power devices and experiments to show the impact on revenue with the increased load times – particularly during development.

The content kit that we are building helps web developers and others understand basic techniques for their websites to load faster. The focus is heavily on the network side of the performance since 70% of the time is spent on the network. Our Content Kit also has various beginner and advanced tutorials, slides and demos.

The kit is not complete yet. We are also planning to include lots of deep dive tutorials on understanding packet level information on TCP stack, how to leverage modern capabilities in browser etc. Please feel free to pour in your ideas.

It was an amazing experience to work with the fellows and mentors who are all part of the MDN fellowship program. Thanks to Mozilla for making this happen :)


WebGL (Greg Tatum, Mentor; NIck Desaulniers, Mentor)

It has been really exciting being part of the first Mozilla Fellowship group. One of the big reasons for my involvement with the web and open source communities is the feedback from my peers and the quick sharing and collaboration on ideas. The fellowship has quick-started my involvement with MDN and their enthusiastic team of staff and contributors. One of the most valuable experiences was being able to write an article for MDN and get immediate in-person feedback from one of the staff writers. It was really empowering to know that the docs I use every day are so easily improved.

I had a blast diving into explanations of some of the fundamentals of how you go from abstract data to 3D-rendered images in the browser. It was really helpful for my own understanding to build out content kits and articles that step through matrix math fundamentals, the 3d projection process, and finally getting to taking that data and lighting it.

I’m very passionate about creative coding and the technologies surrounding it. It still feels like a niche genre with a community that is growing, especially with people moving from desktop applications to web projects. I only want this community to get larger and produce more and more interesting works that inspires me. I hope my time spent with the Mozilla Fellowship and other open source contributions can help to continue to grow people’s knowledge and interest in technologies like WebGL.

Content kits

Shared utility library for WebGL explanations:

MDN Articles based off of the content kits:

…with Lighting Models coming soon

What’s Next?

We’ll be evaluating the role that this type of program might make towards the goals of both MDN and Mozilla overall. You also might see more contributions on MDN from our Fellows. And rumor has it you may be seeing some of this great work – and even contributing to it – at our November MozFest event in London.
Can’t get to London? Nothing’s stopping you from diving into those repos.

Air MozillaProduct Coordination Meeting

Product Coordination Meeting Duration: 10 minutes This is a weekly status meeting, every Wednesday, that helps coordinate the shipping of our products (across 4 release channels) in order...

Mozilla Web DevelopmentBeer and Tell – September 2015

Once a month, web developers from across the Mozilla Project get together to design user-friendly advertisements. When we’re not deciding which police alarm we want to auto-play, we find time to talk about our side projects and drink, an occurrence we like to call “Beer and Tell”.

There’s a wiki page available with a list of the presenters, as well as links to their presentation materials. There’s also a recording available courtesy of Air Mozilla.

Erik Rose: Whitespace-significant Meta-grammar for Homoiconic Languages

The only presenter this week was ErikRose, who shared a prototype grammar for a class of whitespace-significant programming languages. The goal was to represent the nested-list structure of homoiconic languages like Lisp while keeping redundant bracing out of the way like Python.

if is_yak then
    shave yak
    bathe yak
    do productive_work

--> (if is_yak then
        ((shave yak)
         (bathe yak))
        ((do productive_work))

Normally, when the else statement in code similar to the sample above isn’t indented and is at the same level as the if statement, the parser must know that else statements may follow after if statements and are related to them. To get around this, ErikRose suggests using a partial outdent. This way, the parser can recognize that the else statement is separate from the shave and bathe lines but should still be grouped with the if statement, even if the parser doesn’t know what an if statement is.

Erik’s gist contains a few more samples and a possible grammar for parsing a language like this using Parsimonious, his parsing library.

Our focus group of QVC customers has given us great insight in to just what the average internet user is looking for in their sponsored content. Early retirement, here we come!

If you’re interested in attending the next Beer and Tell, sign up for the mailing list. An email is sent out a week beforehand with connection details. You could even add yourself to the wiki and show off your side-project!

See you next month!

Air MozillaImprove QA: Community

Improve QA: Community Continuing on the Improve QA path, this chat is focused on generating ideas to improve our interaction and outcomes with the community.

Air MozillaBugzilla Development Meeting

Bugzilla Development Meeting Help define, plan, design, and implement Bugzilla's future!

Meeting NotesChannel: 2015-09-22


ritu, sylvestre, lizzard, kairo, kglazko, milan, kbrosnan, rolandtanglao, jst

Schedule Update

  • Merge done
    • m-c – 44
    • m-a – 43
    • m-b – 42
    • m-r – 41
    • esr38 – “38.3.0 – done/38.4.0”
  • 41.0 live
    • Congrats to Ritu for her first release! \o/ Yay!!
  • planning to do a 41.0.1
  • ESR38 – What’s new page?
    • Need to decide whether to keep it for the remainder of esr38 cycle
    • It seems we can remove it. Liz will follow up.



  • Overall rate (Nightly 43): 14 – browser: 7.5, content: 6.5

We backed out 2 imagelib fixes (for crash spike) which should improve things for aurora.
The fix for nightly should be coming today.

and one fix to Disability Access APIs,

  • Overall rate (Dev Ed 42): 1.7 – browser: 1.0, content: 0.7
  • Waiting on Beta data.


  • Overall rate: 0.9
  • No new concerns
  • The nsXMLHttpRequest crashes have successfully been fixed in 41 according to manual testing and RC data.


  • Overall rate: 0.9
  • no changes.
  • Linux Gstreamer 1.0 and Win10 NVidia crashes are still main concerns.



  • Release update tests and throttle tests running right now, looking good so far.

Special Topics

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: ReleaseCoordination
  • Vidyo Guest URL

Mozilla L10NFirefox l10n report (Aurora 43)

Hello localizers!

Thank you all for your great work with Firefox 41 and 42. Here’s an outline of what is currently in Aurora this cycle (43) and what we accomplished together last cycle. Note that in light of what we learned with the report’s information last time, we’re attempting to improve how we identify new strings each release. If you see something that seems off, please call it out:

This cycle (Fx43) — 22 September – 2 November


Key dates:
– Beta (42) sign offs for *already shipping locales* must be completed before 21 October.
– Aurora (43) sign offs must be completed before 2 November.

– Approximately 165 new string changes landed in Firefox Aurora desktop and 49 for Fennec Aurora exclusively (unshared).
– 35% of the new strings in desktop are in devtools and DOM. 21% are for the Firefox Hello client. 12% have to do with preference menu settings. Please see for more info.
– 27% of the new strings in Fennec are related to Firefox Accounts. 16% are for the Fennec first run screens. 14% are about bookmarks. Additionally, this bug may be breaking string freeze soon – .Please see for more information.

Last cycle — 11 August – 21 September


Noteworthy events:
63% of all locales shipped signed off updates of Firefox 41 on desktop. Congratulations to everyone who signed off and shipped this last cycle! Sadly, this is a 12% decrease in locale coverage between Firefox 40 and Firefox 41.
74% of all locales shipped signed off updates of Fennec 41 on Android. Congratulations to everyone who signed off and shipped this last cycle! Sadly, this is a 4% decrease in locale coverage between Fennec 40 and Fennec 41.
– Please congratulate the Croatian team on launching their first localization of Firefox for Android with version 41!
– We’re also looking forward to seeing the Purépecha, Kaqchikel, and Lao localization teams launch their first Mozilla localizations in Firefox for Android soon.

Thank you to everyone for all of your dedication and hard work this last sprint. As always, if you note anything missing in these reports, please let me know.

The Mozilla BlogUpdates to Firefox Accounts and Firefox Hello Beta

The latest Firefox update is now available. This release includes minor updates to personalize your Firefox Account and adds a new functionality to Firefox Hello Beta.

Firefox Accounts provides access to services like Firefox Sync to let you take browsing data such as passwords, bookmarks, history and open tabs across your desktop and mobile devices. The latest update to Firefox Accounts allows you to personalize your Firefox Account profile in Firefox for Windows, Mac, Linux and Android by adding a photo.

Firefox Hello Beta, developed with our partner Telefónica, is the global communications system built directly into a browser and it will now let you send and receive instant messages when you’re in a video call in Firefox for Windows, Mac and Linux.

More information:

Meeting NotesMozilla Project: 2015-09-21

  • 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
    • US/Toll-free: +1 800 707 2533, (pin 369) Conf# 8600
    • 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
    • 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

  • Big thanks to Mozilla Tech Speaker program pilots, Season 2: André, Christos, Elio, Francesco, Gabriel, Rizky, Santosh & Sumanth, special shout-out to Rizky who joins our Tuesday am PDT call after midnight on Wed.
  • Shout-out to Mozillian Alex Saladrigas, a Venezuelan from Barcelona for his talk about Firefox OS and some interesting use cases at Full Stack Fest earlier in the month.

Upcoming Events

Monday, 21 September
  • UNITE Boston is happening from Sept 21-23 in Boston Mass.
    • One of Unity Technologies major conferences in Boston attracting 1600+ game developers
    • Mozillians Luke Wagner and Andre Vrignaud speaking on WebGL, and Sandra Persing, Barry Munsterteiger and Naveed Ihsanullah attening
  • Privacy Lab combines with TA3M at EFF (815 Eddy Street, San Francisco). 6pm tonight. For a joint discussion about psuedonymity and online anonymity, featuring Liz Henry.
Tuesday, 22 September
  • Smart Web Conference (for designers and developers) happening on Sept 22nd in Bucharest Romania
    • Soledad Penadas speaking on Web Audio
Wednesday, 23 September
  • Rocky Mountain Ruby on Sept 23-25th in Boulder, CO
    • Rocky Mountain Ruby is a single track software conference focused on the Ruby programming language
    • Justin Crawford and Steve Klabnik attending
Thursday, 24 September
  • Reject JS on Sept 24th in Berlin Germany
    • It’s a one-day, single track conference (with Lightning Talks), born out of BerlinJS meetups and the “rejected speakers of JSConf EU”, to have grown a conference on its own right.
    • Mozillia Tech Speakers Flaki Speaking, Tech Speaker Andrzej Mazure + Andre Fielder attending, and Mozillians Guillaume Marty + Dietrich Ayala attending

How do you respond when people at Mozilla ask you this? Do you sigh, roll your eyes, let out a small resigned laugh? Most of us know that many seemingly-benign posts can devolve into a debate nobody expected, necessarily wanted or knows what to do with. Our September Brantina speaker, Deanna Zandt will provide a deeper understanding of how our brains work when we’re engaged in online discussions which can help us communicate better, make better decisions, be more productive, and ultimately engage with more people driving richer, more dynamic outcomes.

Our monthly Speaker Series aka Brantinas are for the public so please invite your colleagues to attend live or via the stream. Views represented by our speakers do not necessarily reflect the views of Mozilla.

Friday, 25 September
  • JSConf Eu happening Sept 25 and 27th in Berlin, Germany
    • Two track conference with 50 talks, each is 30 mins. CSSconf EU takes place in the same venue during the “gap day”.
    • Mozillian Panos speaking, and Mozillians Michael Henretty, Flaki, Andrzej Mazure and others with Participation team as well running Add Ons Hack, Games + web VR demo at our sponsored lounge.
  • Over The Air on Sept 25t + 26th in London UK
    • Over the Air is an annual grassroots mobile developer event that is ever expanding the definition of ‘mobile’ into new areas (such as mobile web, IoT and wearables).
    • Mozillians Alex Lakatos (speaking), and Francisco Jordano, Soledad Penades attending
Saturday, 26 September
  • Open Help Conference happening Sept 26-30th in Cincinnati OH
    • Open Help focuses on documentation and support in open source projects.
    • Mozillian Janet Swisher attending

Project Status Updates (voice updates)

Firefox OS

Peter Dolanjski, Ontario, Canada (remote)

Foxfooding Update

  • Building a program and participation hub to help us find the people we need to bring Firefox OS to the next level
  • Barrier: availability of devices to run Firefox OS on
    • Porting program for Android devices
      • Hit list: Nexus 6, Samsung Galaxy S5/6, LG G3/4, Moto G
      • Interested in helping: reach out to Brian King,

Candice Serran, San Francisco Office

2.5 Release Update

  • Landed features in testing
    • B2gdroid
    • View Source
    • Bugzilla Lite
    • New default homescreen
  • Upcoming landings
    • Add-ons
    • Private Browsing
    • Pin the Web
  • Upcoming milestones:
    • 9/30 Checkpoint
      • Go/No-go for features which haven’t landed
      • Solidifying quality and blocker fixing
    • 11/2 – RA (Release Available)
  • Please refer to 2.5 Release wiki for more info on additional features and status:
Mozilla Hive

Lindsey Frost, Chattanooga, TN: Mozilla has received $3.2M from the National Science Foundation to continue our gigabit work. Read our blog, and coverage in ZDNet.


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
Guillermo Huerta AV Ops VidyoDesktop 3.5 Mountain View no


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?
Lorenzo Guizzaro Amy Tsay MV London App reviewing

Introducing New Hires

New Hire Introduced by Speaker location New Hire location Will be working on
Kevin Fann Tim Murray San Francisco Portland Engagement
Matthew Howell Jim Blandy Portland Portland Firefox Measurement and Quality
Sam Giles Wilson Page London London FirefoxOS (inc. B2GDroid)
Victoria Gerchinhoren Fairhurst Patryk Adamczyk Toronto Toronto Firefox OS Design


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

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


about:communityFirefox 41 new contributors

With the release of Firefox 41, we are pleased to welcome the 62 developers who contributed their first code change to Firefox in this release, 51 of whom were brand new volunteers! Please join us in thanking each of these diligent and enthusiastic individuals, and take a look at their contributions:

WebmakerGlobal Web Literacy Studies: Chicago Report

Teenagers in Chicago

As part of our ongoing research efforts to understand our users, we spent three weeks in Chicago in April 2015 to conduct ethnographic research in collaboration with the Hive Chicago team. Learning from this study can be found in this Research Report from Chicago :

During our previous six months of research, we focused mainly on emerging countries and conducted studies in India, Bangladesh, Kenya and Brazil. With this project in Chicago, we intended to analyze the similarities and differences between our audience in emerging markets and our audience in North America.

As a result, we curated in-depth conversations with 69 participants from various communities, and talked with 41 teenagers, 12 informal educators and program managers, 13 parents and three bloggers.

In this report you will find:

– A description of how people understand and engage with the Web in Chicago through the Web Journey framework. We cover behaviors, skills, blockers, mechanisms of entry and motivations.

– A comparison between our observations in emerging markets and our observations in Chicago.

– Key findings, such as:
Being Internet famous is better than just being famous
Remixes are for glory
Learning code is not appealing
There exists a gap in current learning product offerings
Libraries are a safe zone for parents

– A deep dive on teenagers with a Webmaker user segmentation and three selected portraits
– A deep dive on informal educators with a similar structure
– A benchmark on learning products
– A set of recommendations for our strategy, our learning products and our learning programs
– A list of 110 things that people want to learn details about our research methods

We would love to hear your feedback and questions. Feel free to reach out to

hacks.mozilla.orgLet’s Write a Web Extension

You might have heard about Mozilla’s WebExtensions, our implementation of a new browser extension API for writing multiprocess-compatible add-ons. Maybe you’ve been wondering what it was about, and how you could use it. Well, I’m here to help! I think the MDN’s WebExtensions docs are a pretty great place to start:

WebExtensions are a new way to write Firefox extensions.

The technology is developed for cross-browser compatibility: to a large extent the API is compatible with the extension API supported by Google Chrome and Opera. Extensions written for these browsers will in most cases run in Firefox with just a few changes. The API is also fully compatible with multiprocess Firefox.

The only thing I would add is that while Mozilla is implementing most of the API that Chrome and Opera support, we’re not restricting ourselves to only that API. Where it makes sense, we will be adding new functionality and talking with other browser makers about implementing it as well. Finally, since the WebExtension API is still under development, it’s probably best if you use Firefox Nightly for this tutorial, so that you get the most up-to-date, standards-compliant behaviour. But keep in mind, this is still experimental technology — things might break!

Starting off

Okay, let’s start with a reasonably simple add-on. We’ll add a button, and when you click it, it will open up one of my favourite sites in a new tab.

The first file we’ll need is a manifest.json, to tell Firefox about our add-on.

  "manifest_version": 2,
  "name": "Cat Gifs!",
  "version": "1.0",
  "applications": {
    "gecko": {
      "id": ""

  "browser_action": {
    "default_title": "Cat Gifs!"

Great! We’re done! Hopefully your code looks a little like this. Of course, we have no idea if it works yet, so let’s install it in Firefox (we’re using Firefox Nightly for the latest implementation). You could try to drag the manifest.json, or the whole directory, onto Firefox, but that really won’t give you what you want.

The directory listing


To make Firefox recognize your extension as an add-on, you need to give it a zip file which ends in .xpi, so let’s make one of those by first installing 7-Zip, and then typing 7z a catgifs.xpi manifest.json. (If you’re on Mac or Linux, the zip command should be built-in, so just type zip catgifs.xpi manifest.json.) Then you can drag the catgifs.xpi onto Firefox, and it will show you an error because our extension is unsigned.

The first error

We can work around this by going to about:config, typing xpinstall.signatures.required in the search box, double-clicking the entry to set it to false, and then closing that tab. After that, when we drop catgifs.xpi onto Firefox, we get the option to install our new add-on!

It’s important to note that beginning with Firefox 44 (later this year), add-ons will require a signature to be installed on Firefox Beta or Release versions of the browser, so even if you set the preference shown below, you will soon still need to run Firefox Nightly or Developer Edition to follow this tutorial.


Of course, our add-on doesn’t do a whole lot yet.

I click and click, but nothing happens.

So let’s fix that!

Adding features

First, we’ll add the following lines to manifest.json, above the line containing browser_action:

  "background": {
    "scripts": ["background.js"],
    "persistent": false

now, of course, that’s pointing at a background.js file that doesn’t exist yet, so we should create that, too. Let’s paste the following javascript in it:

&aposuse strict&apos;

/*global chrome:false */

chrome.browserAction.setBadgeText({text: &apos(ツ)&apos});
chrome.browserAction.setBadgeBackgroundColor({color: &apos#eae&apos});

chrome.browserAction.onClicked.addListener(function(aTab) {
  chrome.tabs.create({&aposurl&apos: &apos, &aposactive&apos: true});

And you should get something that looks like this. Re-create the add-on by typing 7z a catgifs.xpi manifest.json background.js (or zip catgifs.xpi manifest.json background.js), and drop catgifs.xpi onto Firefox again, and now, when we click the button, we should get a new tab! 😄

Cat Gifs!

Automating the build

I don’t know about you, but I ended up typing 7z a catgifs.xpi manifest.json a disappointing number of times, and wondering why my background.js file wasn’t running. Since I know where this blog post is ending up, I know we’re going to be adding a bunch more files, so I think it’s time to add a build script. I hear that the go-to build tool these days is gulp, so I’ll wait here while you go install that, and c’mon back when you’re done. (I needed to install Node, and then gulp twice. I’m not sure why.)

So now that we have gulp installed, we should make a file named gulpfile.js to tell it how to build our add-on.

&aposuse strict&apos;

var gulp = require(&aposgulp&apos);

var files = [&aposmanifest.json&apos, &aposbackground.js&apos];
var xpiName = &aposcatgifs.xpi&apos;

gulp.task(&aposdefault&apos, function () {
  console.log(files, xpiName)

Once you have that file looking something like this, you can type gulp, and see output that looks something like this:

Just some command line stuff, nbd.

Now, you may notice that we didn’t actually build the add-on. To do that, we will need to install another package to zip things up. So, type npm install gulp-zip, and then change the gulpfile.js to contain the following:

&aposuse strict&apos;

var gulp = require(&aposgulp&apos);
var zip = require(&aposgulp-zip&apos);

var files = [&aposmanifest.json&apos, &aposbackground.js&apos];
var xpiName = &aposcatgifs.xpi&apos;

gulp.task(&aposdefault&apos, function () {

Once your gulpfile.js looks like this, when we run it, it will create the catgifs.xpi (as we can tell by looking at the timestamp, or by deleting it and seeing it get re-created).

Fixing a bug

Now, if you’re like me, you clicked the button a whole bunch of times, to test it out and make sure it’s working, and you might have ended up with a lot of tabs. While this will ensure you remain extra-chill, it would probably be nicer to only have one tab, either creating it, or switching to it if it exists, when we click the button. So let’s go ahead and add that.

Lots and lots of cats.

The first thing we want to do is see if the tab exists, so let’s edit the browserAction.onClicked listener in background.js to contain the following:

chrome.browserAction.onClicked.addListener(function(aTab) {
  chrome.tabs.query({&aposurl&apos: &apos}, (tabs) => {
    if (tabs.length === 0) {
      // There is no catgif tab!
      chrome.tabs.create({&aposurl&apos: &apos, &aposactive&apos: true});
    } else {
      // Do something here…

Huh, that’s weird, it’s always creating a new tab, no matter how many catgifs tabs there are already… It turns out that our add-on doesn’t have permission to see the urls for existing tabs yet which is why it can’t find them, so let’s go ahead and add that by inserting the following code above the browser_action:

  "permissions": [

Once your code looks similar to this, re-run gulp to rebuild the add-on, and drag-and-drop to install it, and then when we test it out, ta-da! Only one catgif tab! Of course, if we’re on another tab it doesn’t do anything, so let’s fix that. We can change the else block to contain the following:

      // Do something here…
      chrome.tabs.query({&aposurl&apos: &apos, &aposactive&apos: true}, (active) => {
        if (active.length === 0) {
          chrome.tabs.update(tabs[0].id, {&aposactive&apos: true});

Make sure it looks like this, rebuild, re-install, and shazam, it works!

Making it look nice

Well, it works, but it’s not really pretty. Let’s do a couple of things to fix that a bit.

First of all, we can add a custom icon so that our add-on doesn’t look like all the other add-ons that haven’t bothered to set their icons… To do that, we add the following to manifest.json after the manifest_version line:

  "icons": {
    "48": "icon.png",
    "128": "icon128.png"

And, of course, we’ll need to download a pretty picture for our icon, so let’s save a copy of this picture as icon.png, and this one as icon128.png.

We should also have a prettier icon for the button, so going back to the manifest.json, let’s add the following lines in the browser_action block before the default_title:

    "default_icon": {
      "19": "button.png",
      "38": "button38.png"

and save this image as button.png, and this image as button38.png.

Finally, we need to tell our build script about the new files, so change the files line of our gulpfile.js to:

var files = [&aposmanifest.json&apos, &aposbackground.js&apos, &apos*.png&apos];

Re-run the build, and re-install the add-on, and we’re done! 😀

New, prettier, icons.

One more thing…

Well, there is another thing we could try to do. I mean, we have an add-on that works beautifully in Firefox, but one of the advantages of the new WebExtension API is that you can run the same add-on (or an add-on with minimal changes) on both Firefox and Chrome. So let’s see what it will take to get this running in both browsers!

We’ll start by launching Chrome, and trying to load the add-on, and see what errors it gives us. To load our extension, we’ll need to go to chrome://extensions/, and check the Developer mode checkbox, as shown below:

Now we’re hackers!

Then we can click the “Load unpacked extension…” button, and choose our directory to load our add-on! Uh-oh, it looks like we’ve got an error.

Close, but not quite.

Since the applications key is required for Firefox, I think we can safely ignore this error. And anyways, the button shows up! And when we click it…


So, I guess we’re done! (I used to have a section in here about how to load babel.js, because the version of Chrome I was using didn’t support ES6’s arrow functions, but apparently they’ve upgraded their JavaScript engine, and now everything is good. 😉)

Finally, if you have any questions, or run into any problems following this tutorial, please feel free to leave a comment here, or get in touch with me through email, or on twitter! If you have issues or constructive feedback developing WebExtensions, the team will be listening on the Discourse forum.

Air MozillaWebdev Beer and Tell: September 2015

Webdev Beer and Tell: September 2015 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 in...

WebmakerJoin us for a #Thimblechat: Remix the School Year w/ Thimble

To celebrate the recent re-launch of Thimble, we’re hosting a tweetchat and you’re invited!

Here are the details:

  • When: Wednesday, September 23, 8pm ET / 6pm UTC

  • Where: Twitter, follow #thimblechat, @Mozteach

  • What: Remix the School Year w/ Thimble Tweetchat

We’re looking forward to a discussion about bringing web literacy into the classroom–what it might look like today, and how we might support teachers and learners moving forward as they explore new skills like HTML, CSS and JavaScript. Here’s a sneak peek of some of the specific questions we’ll ask. Take some time to think about your responses so you’re ready chat!

  • What kinds of offline or analog activities do you use to #teachtheweb?
  • How do you help struggling learners grasp basic web literacy concepts?
  • Thimble lets you create projects with multiple pages, like a website. How could you imagine using that feature in your teaching and learning?
  • What other tools do you use to teach learners how to read, write, and participate on the Web?

Want to join in the conversation but haven’t yet tried Thimble?

Here are some activities to play with (and remix) ahead of time.

  • My Six-Word Summer –
  • Remix My Schedule –
  • Homework Excuse Generator –

Mozilla Thimble

SUMO BlogWhat’s up with SUMO – 18th September

Hello, SUMO Nation! It’s been a while, but we are back! Are you aware that tomorrow is Software Freedom Day? Celebrate in style!

Welcome, New Contributors!

If you joined us recently, don’t hesitate – come over and say “hi” in the forums!
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!

Contributors of the week

We salute you!

Last SUMO Community meeting

Reminder: the next SUMO Community meeting…

  • …is going to take place on Monday, 21st of September. Join us!
  • If you want to add a discussion topic to upcoming the live 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).



  • The Cross-Product Team has been spending time together this week to discuss a number of plans, issues, and ideas. More details to come as we turn ideas into actions, but here are some spoilers:

Support Forum

  • Save the date: the next SUMO Questions Day is coming up on the 24th of September.

Knowledge Base


  • (for iOS) Australia, Austria, Canada, and New Zealand! More to come. Huge thanks to everyone involved as tester, localizer, and otherwise iOS launcher.
  • (for Desktop) Details about upcoming versions coming soon, stay tuned!
That’s it for now, we’ll be back to more regular activities soon. Will you join us on Monday for the meeting? We hope so!

Air MozillaWebmaker Demos Sept 18 2015

Webmaker Demos Sept 18 2015 Webmaker Demos Friday Sept 18 2015

Air MozillaTaskCluster GitHub, Continuous Integration for Mozillians by Mozillians.

TaskCluster GitHub, Continuous Integration for Mozillians by Mozillians. TaskCluster GitHub is a CI system built atop Mozilla's own infrastructure. As a result it offers more freedom and flexibility than you'll find from any...

Air MozillaWeb QA Weekly Meeting

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.

Meeting NotesMobile: 2015-09-16


Tracking Review


  • Next Build:
ID Summary Status Assigned to Last change time
1170651 crash in js::jit::GetPropertyIC::update(JSContext*, JS::Handle<JSScript*>, unsigned int, JS::Handle<JSObject*>, JS::MutableHandle<JS::Value>) NEW Kevin Brosnan [:kbrosnan] 2015-08-06T17:42:20Z
1201054 Multiple tabs can be selected in tab tray NEW Martyn Haigh (:mhaigh) 2015-09-16T16:34:07Z

2 Total;
2 Open (100%);
0 Resolved (0%);
0 Verified (0%);


  • Next Build:
ID Summary Status Assigned to Last change time
1156553 Tab queue makes captive portal use annoying ASSIGNED Martyn Haigh (:mhaigh) 2015-08-20T17:14:28Z
1177414 Queued tabs stall on load ASSIGNED Martyn Haigh (:mhaigh) 2015-08-20T18:14:05Z
1191330 Autophone – July 31 regression in Throbber start nexus 5 Android 4.4 NEW GaryChen [:GaryChen][:PYChen][:gchen][:陳柏宇] 2015-08-06T17:35:10Z
1191918 Round battery level to integers (or tens?) to mitigate finger printing NEW James Willcox (:snorp) ( 2015-08-06T17:40:13Z
1194049 NsdManager increases power consumption NEW Gary Chen [:xeonchen] 2015-09-15T03:48:29Z
1199177 KidFox: Restricted profiles – Can’t install add-ons ASSIGNED Sebastian Kaspari (:sebastian) 2015-09-16T15:02:22Z
1200665 Update SUMO URL and title for restricted profiles ASSIGNED Sebastian Kaspari (:sebastian) 2015-09-17T01:18:52Z
1200729 Low-res Displayport has regressed on Fennec nightly NEW Jamie Nicol [:jnicol] 2015-09-15T14:32:54Z
1203011 KidFox: Restricted profiles – Hide ‘Remove’ context menu item from Top Sites list ASSIGNED Sebastian Kaspari (:sebastian) 2015-09-16T11:40:13Z

9 Total;
9 Open (100%);
0 Resolved (0%);
0 Verified (0%);


  • Next Build:
ID Summary Status Assigned to Last change time
776030 Allow Fennec to use the AsyncPanZoomController NEW Randall Barker [:rbarker] 2015-09-10T14:53:58Z
886969 Fennec allows scrolling of pages with overflow:hidden on the body element NEW Randall Barker [:rbarker] 2015-09-01T14:29:56Z
1047127 Panning very stuttery on this page with overflow-x NEW 2015-06-10T18:43:44Z
1131084 Can not mirror tab to Chromecast device NEW Randall Barker [:rbarker] 2015-06-17T18:31:14Z
1144534 fuzzy/bad looking text depending on scroll position, or fuzziness coming and going NEW 2015-09-12T12:36:34Z
1168867 Size of new Gecko selection carets doesn’t take font inflation into account NEW 2015-07-31T02:27:20Z
1171860 Tapping the tab queue notification will open the link in normal browsing with “Open links in Private browsing” pref enabled NEW 2015-08-20T17:15:28Z

7 Total;
7 Open (100%);
0 Resolved (0%);
0 Verified (0%);

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?

  • Anirudh S [:anirudh24seven] fixed bug 1197874 – Remove MatchstickApp.jsm from the build
  • Christian fixed bug 1197428 – Remove UrlBar.ImageButton.Icon style and change inheritors
  • Eitan Isaacson [:eeejay] fixed bug 1203697 – Panning right with a braille display should eventually navigate to the next item
  • Prateek Arora fixed bug 1197427 – Move UrlBar.ImageButton.TabCount out of styles
  • Vivek Balakrishnan[:vivek] fixed bug 1182193 – Add unit test support to fennec.

Stand ups

Suggested format:

  • What did you do last week?
  • What are working on this week?
  • Anything blocking you?

Please keep your update to under 2 minutes!

James W. (snorp), Android Platform Team (Jim, Randall, Eugen, Dylan)

  • Notes
  • I’m trying to land a bunch of gfx stuff, fighting debug reftest stupidity
  • Dylan fixed up some JNI stuff, now working on trying to bring sanity to reftest environment (see above) in bug 1156817
  • Randall is landing the final bits to make native APZ usable. Looking good to turn it on in Nightly Real Soon Now
  • Eugen on PTO this week, but still looking at media bugs and JS import performance
  • Jim was PTO last week, finishing some of his prior JNI stuff this week and doing some BHR work to allowus to update breakpad


<Read Only>

Brian Nicholson

  • Clear Private Data
  • WIP PR for Find In Page (bug 1164067)



  • Wiki cleanup
  • Onboarding A/B testing
  • (computer problems)




  • Catching up from PTO/Moving
  • MV/SF next week



  • Material 3-dot menu fallout
  • Working on changing which style our code inherits from (Theme.AppCompat) – I’ll send an email when it lands




Working on


Working in Ottawa (EST) this week

  • #mickeymoz volunteers
    • vivek, capella, and dusek are IN
  • Sign in to Firefox Accounts on the web
    • bug 1191067 and friends
    • Second round of patches landed
    • Working on about:accounts polish now
    • On track to land build flagged off in Nightly 43, flagged on in Nightly 44, flagged on in Aurora 43 half way through cycle
  • pinning Android version dependencies
    • using AAR files at configure time bug 1108782
    • expanded to include pinning versions of platform and build-tools bug 1204260
    • will help us keep build working across Google upstream changes
    • saves just over 1Mb
  • helping jrconlin land GCM and Push Notifications bridge



  • Chasing last KidFox bugs before merge day


Martyn Haigh




Some highlights:

  • Away most of next week for management meeting – but will be on email and hope to see iOS people in MV and maybe SF
  • Made a schedule for v1.1 – Fancy Exec Timeline
  • Focus on all things v1.1
  • L10N – builds every day, Xcode7, looking into automated screenshots
  • Looking at the blank tab of death issue with a possible iOS9 fix
  • We are now also on the Canadian app store with v1.0
  • Bugfix release will go out soon (v1.0.1)
  • First v1.1 build for testing goes out tomorrow

Boogs Past:

Boogs Present:


This week:

Private browsing

  • Implemented non-persistent data storage for private tabs
  • Tabs now can be marked as private
  • History not saved for private tabs
  • Working on building normal/private tabs tray UI and tab management
  • Start on browser private interface afterwards

The bugs:





read only

  • Past
  • Upcoming
    • Connected Reading List
    • bug 1158277: Tabs tray V2 on Mobile
    • bug 1086952: Awesomescreen improvements
    • Toronto week meeting ideas/agenda


  • iOS 1.1/2.0 triage and priority
  • iOS Private Browsing design
  • iOS first-run tour, adding 2 slides
  • ui-review for incoming 1.1 PRs
  • writing job descriptions


  • spec and aid implementing iOS PB
  • get all strings pre-landed where needed
  • illustrations & copy for new on-boarding slides
  • finish job description
  • planning for mobile UX work week next next week! :)
  • assist in private-browsing mode diary study interviews with Gemma


Feature Focus


  • Wednesdays – 9:30am Pacific, 12:30pm Eastern, 16:30 UTC
  • Dial-in: conference# 99998
    • US/Toll-free: +1 800 707 2533, (pin 369) Conf# 99998
    • 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
  • #mobile for backchannel
  • Mobile Vidyo Room

Meeting NotesFirefox/Gecko Delivery Planning: 2015-09-16

Schedule & Progress onUpcoming Releases (Liz/Sylvestre/Lawrence/Ritu)

  • 41
    • Desktop RC1 pushed to Beta channel on 09/15
    • RC2 gtb later today
      • Will most likely include fixes for bug 1203577, bug 1194923
    • Please provide your feedback on release notes
  • ESR38.3.0
    • Gtb esr38.3.0-build2 today

Planning Meeting Details

  • Wednesdays – 11:00am PT, 18:00 UTC
  • Mountain View Offices: Warp Core Conference Room
  • Toronto Offices: Finch Conference Room
  • #planning for backchannel
  • (the developer meeting takes place on Tuesdays)

Video/Teleconference Details – NEW

Air MozillaMozilla Web QA: (re)volution of our WebDriver-based Python-testing framework

Mozilla Web QA: (re)volution of our WebDriver-based Python-testing framework In 2011 Mozilla developed and released a pytest plugin that simplified the task of maintaining functional UI tests for over a dozen web applications. It...

Air MozillaQuality Team (QA) Public Meeting

Quality Team (QA) Public Meeting This is the meeting where all the Mozilla quality teams meet, swap ideas, exchange notes on what is upcoming, and strategize around community building and...

hacks.mozilla.orgStereoscopic Rendering in WebVR

At Mozilla, a small recon team has been toying with the idea of blending the best features of the web such as interconnectedness, permissionless content creation, and safe execution of remote code with the immersive interaction model of Virtual Reality.

By starting out with support for Oculus’s DK2 headset, we’ve enabled those interested to begin experimenting with VR.  As a quick introduction, I wanted to show some of the differences in rendering techniques developers have to account for when building their first VR experience.  For this post, we’ll focus on describing rendering with the WebGL set of APIs.

Screen Shot 2015-09-09 at 9.06.13 AM

My first rendering in WebVR, the Stanford dragon. Firefox handles the vignetting effect, spatial, and chromatic distortion for us just by entering fullscreen.

Multiple Views of the Same Scene

An important first distinction to make: With traditional viewing on a monitor or screen, we’re flattening our three-dimensional scene onto a plane (the view-port).  While objects may have different distances from the view-port, everything is rendered from a single point of view.  We may have multiple draw calls that build up our scene, but we usually render everything using one view matrix and one projection matrix that’s calculated at scene creation time.

For example, the view matrix might contain information such as the position of our virtual camera relative to everything else in the scene, as well as our orientation (Which way is forward? Which way is up?).  The projection matrix might encode whether we want a perspective or orthographic projection, view-port aspect ratio, our field of view (FOV), and draw distance.

As we move from rendering the scene from one point of view to rendering on a head-mounted display (HMD), suddenly we have to render everything twice from two different points of view!

monoscopic rendering

stereoscopic rendering

In the past, you might have used one view matrix and one projection matrix, but now you’ll need a pair of each.  Rather than having the choice of field of view (FOV), you now must query the headset the user’s FOV setting for each eye. As anyone who’s visited an eye doctor or had an eye exam lately can attest, your eyes each have their own FOV!  This is not necessary to correct for when rendering to a far away monitor, as the monitor usually is a subset within the current field of view, whereas a head-mounted display (HMD) encompasses the entire field of view (FOV).

The Oculus SDK has a configuration utility where the user can set individual FOV per eye and interpupillary distance (IPD), essentially the space between eyes, measured from pupil to pupil).

The unique fields of view give us two unique projection matrices.  Because your eyes are also offset from one another, they also have different positions or translations from the position of the viewer. This gives us two different view matrices (one per eye) as well.  It’s important to get these right so that the viewer’s brain is able to correctly fuse two distinct images into one.

Without accounting for the IPD offset, a proper parallax effect cannot be achieved.  Parallax is very important for differentiating distances to various objects and depth perception.  Parallax is the appearance of objects further away from you moving slower than closer objects when panning side to side.  Github’s 404 page is a great example of parallax in action.

That’s why some 360 degree video shot from a single view/lens per direction tends to smear objects in the foreground with objects farther away.  For more info on 360 degree video issues, this eleVR post is a great read.

We’ll also have to query the HMD to see what the size of the canvas should be set to for the native resolution.

When rendering a monoscopic view, we might have code like —

function init () {
  // using gl-matrix for linear algebra
  var viewMatrix = mat4.lookAt(mat4.create(), eye, center, up);
  var projectionMatrix = mat4.perspective(mat4.create(), fov, near, far);
  var mvpMatrix = mat4.multiply(mat4.create(), projectionMatrix, viewMatrix);
  gl.uniformMatrix4fv(uniforms.uMVPMatrixLocation, false, mvpMatrix);
function update (t) {
  gl.drawElements(mode, count, type, offset);

in JS and in our GLSL vertex shader:

uniform mat4 uMVPMatrix;
attribute vec4 aPosition;

void main () {
  gl_Position = uMVPMatrix * aPosition;

…but when rendering from two different viewpoints with webVR, reusing the previous shader, our JavaScript code might look more like:

function init () {
  // hypothetical function to get the list of
  // attached HMD's and Position Sensors.
function update () {

  // hypothetical function that
  // uses the webVR API's to update view matrices
  // based on orientation provided by HMD's
  // accelerometer, and position provided by the
  // position sensor camera.

  // left eye
  gl.viewport(0, 0, canvas.width / 2, canvas.height);
  mat4.multiply(mvpMatrix, leftEyeProjectionMatrix, leftEyeViewMatrix);
  gl.uniformMatrix4fv(uniforms.uMVPMatrixLocation, false, mvpMatrix);
  gl.drawElements(mode, count, type, offset);

  // right eye
  gl.viewport(canvas.width / 2, 0, canvas.width / 2, canvas.height);
  mat4.multiply(mvpMatrix, rightEyeProjectionMatrix, rightEyeViewMatrix);
  gl.uniformMatrix4fv(uniforms.uMVPMatrixLocation, false, mvpMatrix);
  gl.drawElements(gl.TRIANGLES, n, gl.UNSIGNED_SHORT, 0);


In a follow-up post, once the webVR API has had more time to bake, we’ll take a look at some more concrete examples and explain things like quaternions!  With WebGL2’s multiple render targets (WebGL1’s WEBGL_draw_buffers extension, currently with less than 50% browser support, more info), or WebGL2’s instancing (WebGL1’s ANGLE_instanced_arrays extension, currently 89% browser support) it should be possible to not explicitly call draw twice.

For more info on rendering differences, Oculus docs are also a great reference.

90 Hz Refresh Rate and Low Latency

When rendering, we’re limited in how fast we can show updates and refresh the display by the hardware’s refresh rate. For most monitors, this rate is 60 Hz.  This gives us 16.66 ms to draw everything in our scene (minus a little for the browser’s compositor). requestAnimationFrame will limit how quickly we can run our update loops, which prevents us from doing more work than is necessary.

The Oculus DK2 has a max refresh rate of 75 Hz (13.33 ms per frame) and the production version currently slated for a Q1 2016 release will have a refresh rate of 90 Hz (11.11 ms per frame).

So, not only do we need to render everything twice from two different viewpoints, but we only have two-thirds the time to do it (16.66 ms * 2 / 3 == 11.11)! While this seems difficult, hitting a lower frame time is doable by various tricks (lower scene complexity, smaller render target plus upscaling, etc). On the other hand, reducing the latency imposed by hardware is much more challenging!

Not only do we have to concern ourselves with frame rate, but also with latency on user input. The major difference between real-time rendering and pre-rendering is that a real-time scene is generated dynamically usually with input from the viewer. When a user moves their head or repositions themselves, we want to have a tight feedback loop between when they move and when they see the results of their movement displayed to them. This means we want to get our rendering results displayed sooner, but then we run into the classic double buffering vs screen tearing issue. As Oculus Chief Scientist Michael Abrash points out, we want sub 20 ms latency between user interaction and feedback presentation.

Whether or not current desktop, let alone mobile, graphics hardware is up to the task remains to be seen!

To get more info or get involved in WebVR:

* MozVR download page (everything you need to get up and running with WebVR in Firefox)

* WebVR spec (in flux, subject to change, things WILL break.)

* MDN docs (in progress, will change when spec is updated)

* web-vr-dicuss public mailing list

* /r/webvr subreddit

Air MozillaProduct Coordination Meeting

Product Coordination Meeting Duration: 10 minutes This is a weekly status meeting, every Wednesday, that helps coordinate the shipping of our products (across 4 release channels) in order...