The Mozilla BlogNew Mozilla Foundation Board Members: Mohamed Nanabhay and Nicole Wong

Today, I’m thrilled to announce that Mohamed Nanabhay and Nicole Wong have joined the Mozilla Foundation Board of Directors.

Over the last few years, we’ve been working to expand the boards for both the Mozilla Foundation and the Mozilla Corporation. Our goals for the Foundation board roles were to grow Mozilla’s capacity to move our mission forward; expand the number and diversity of people on our boards, and; add specific skills in areas related to movement building and organizational excellence. Adding Mohamed and Nicole represents a significant move forward on these goals.

We met Mohamed about seven years ago through former board member and then Creative Commons CEO Joi Ito. Mohamed was at Al Jazeera at the time and hosted one of Mozilla’s first Open News fellows. Mohamed Nanabhay currently serves as the Deputy CEO of the Media Development Investment Fund (MDIF), which invests in independent media around the world providing the news, information and debate that people need to build free, thriving societies.

Nicole is an attorney specializing in Internet, media and intellectual property law. She served as President Obama’s deputy chief technology officer (CTO) and has also worked as the vice president and deputy general counsel at Google to arbitrate issues of censorship. Nicole has already been active in helping Mozilla set up a new fellows program gathering people who have worked in government on progressive tech policy. That program launches in June.

Talented and dedicated people are the key to building an Internet as a global public resource that is open and accessible to all. Nicole and Mohammad bring expertise, dedication and new perspectives to Mozilla. I am honored and proud to have them as our newest Board members.

Please join me in welcoming Mohamed and Nicole to the Board. You can read more about why Mohamed chose to join the Board here, and why Nicole joined us here.


The post New Mozilla Foundation Board Members: Mohamed Nanabhay and Nicole Wong appeared first on The Mozilla Blog.

The Mozilla BlogWhy I’m joining the Mozilla Board by Mohamed Nanabhay

Mozilla has been at the forefront of shaping internet culture and fighting to keep the Internet open. Being able to join the Board and be of service to that mission is an honor as the open internet played such an important role in my life and my work.

My generation came online to the shrill beeps of our modems connecting to this network that represented endless possibilities. Those beeps of our modems dialing up provided the soundtrack to some of our deepest friendships and community, crossing borders and breaking down barriers. I remember contributing to the campaign in 2004 to put an advert into the New York Times. That campaign epitomized the best of what we could achieve on the network – thousands coming together to promote the open source project that many thousands worked on that would go on to touch millions of people.

Mohamed Nanabhay, new Mozilla Foundation board member (photo credit: Joi Ito)

As the next billion come online, there are real questions about what sort of Internet they are coming online to. We know that it is most often through a mobile device (phone or tablet) and often the first contact is through Facebook (including WhatsApp). Navigating the usage (what role does the browser play when most people are using Apps?) and the social implications (will an even greater number of people confuse Facebook with the Internet?) are deeply important in the near term.

At Al Jazeera I was deeply focused on using social technologies to not only distribute news but also discover and amplify the voices of people being most impacted by power. With Creative Commons I worked to launch a repository of broadcast quality video footage under the most permissive license. At Global Voices, bridge building and providing a nuanced understand through a local lens is key to what we do. And at the Media Development Investment Fund (MDIF), we are deeply committed to funding the highest quality journalism in countries where there is a threat to press freedom.

This work has all really been around building bridges, connecting people, and amplifying voices. While our kids may never know the thrill of hearing a modem connection I hope that we can work to ensure that the Internet remains open so they can use it to learn, build, and grow in the same way we did.

Mohamed Nanabhay is the Deputy CEO of the Media Development Investment Fund (MDIF), which invests in independent media around the world providing the news, information and debate that people need to build free, thriving societies. He is also the board chair of and the former head of Al Jazeera English. Mohamed was appointed to the Mozilla Foundation board in April 2017.

The post Why I’m joining the Mozilla Board by Mohamed Nanabhay appeared first on The Mozilla Blog.

The Mozilla BlogWhy I’m joining the Mozilla Board by Nicole Wong

It’s an honor for me to join the Mozilla Board. I’m so inspired by the Foundation’s mission and by the incredibly talented people that lead it. And, I’m looking forward to contributing to Mozilla’s plans to build out a leadership network focused on protecting the open Internet.

Though I’m still too new to the organization to be able to diagnose Mozilla’s biggest challenges, I think this is a really exciting and crucial time for Mozilla to develop products that really put users first. Today’s Internet users have complex needs, so I’ll be excited to see how the Mozilla community works to identify and solve them.

Nicole Wong, New Mozilla Foundation Board Member

Obviously, this is also a very challenging time to protect the Internet from the national and global trends toward authoritarianism, censorship and surveillance. Mozilla is in a great position to address some of those challenges.

During my career, I’ve had the privilege of working in both the private and public sector, but the consistent theme is focusing on the intersection of emerging technologies, law, and public policy. I have tried to build cultures, policies, and practices that are forward-leaning in the development and defense of a healthy internet. I’m looking forward to doing the same at the Foundation, helping build out the leadership network and focusing on emerging tech policy leaders.

Nicole is an attorney specializing in Internet, media and intellectual property law. She served as President Obama’s deputy chief technology officer (CTO) and has also worked as the vice president and deputy general counsel at Google to arbitrate issues of censorship. She was appointed to the Mozilla Foundation board in April 2017.

The post Why I’m joining the Mozilla Board by Nicole Wong appeared first on The Mozilla Blog.

SUMO BlogPlatform update & Q&A

Hey there, SUMO Nation!

As you may have noticed, we are (for the time being) back to the previous engine powering the support site at

You can follow the latest updates and participate in the discussion about this here.

We are definitely present and following this discussion, noting your concerns and questions. We can provide you with answers and reassurance, even if we do not have ready-made solutions to some of the issues you are highlighting.

Since some of you may not be frequently visiting the forums, we would also like to make sure you can find the answers to some of the more burning questions asked across our community here, on our blog.

Q: Why is Mozilla no longer interested in using Kitsune, its own support platform?

The software engineers and project managers developing Kitsune were shifted to work on critical development needs in the Firefox browser. Kitsune also had only a handful of contributors to the code base. After calculating the time and money requirements for maintaining our own platform, which were considerable and might have entailed a major overhaul, Mozilla decided that using an third-party solution was a better investment for the long term future of Mozilla’s support needs. (To be honest, it was one of the hardest decisions we have made.) We also considered that Lithium has significant ongoing software development which we think will lead to faster feature improvements than we might have achieved internally with Kitsune.

Q: Why is the new support platform still not providing all the functionality available in Kitsune?

Kitsune had been customized and hand-crafted from scratch by Mozillians and for Mozillians over a period of eight years.

No other platform in the market can offer the same level of compatibility with Mozilla’s mission and contribution methods without a serious investment of time and development power.

We have been working with Lithium for an extended period of time on matching the core functionality of Kitsune. This is a complex, lengthy, and ongoing process.

Due to technical differences in development and deployment of features between both platforms, complete feature parity may not be possible. We promise that over time we will push aggressively to close the feature gap and even to develop useful new features that were not present in Kitsune. We understand that many in the community feel that Kitsune is a better option and there are many things we love about Kitsune. We are hopeful that Lithium will grow on you and ultimately surpass Kitsune.

Q: How will you ensure that Mozilla’s image is not negatively influenced by issues with the support site now and in the future?

We will do our very best to provide the best support site and the best workflows we can for the budget that we are allocated for support technology and tools. We are extremely serious about maintaining Mozilla’s good image and working with our community and users to ensure that Mozilla is viewed positively. We realize that changes in software and workflows may not work equally well for everyone but we will do our best to help. We always have and always will appreciate the contributions from you, our community – and that users choose to browse on Firefox.

Q: What can the community members do to help any of the above now and in the future?

First of all, please continue to contribute your time and hard work answering user questions. It’s the most valuable contribution you can make and one we greatly appreciate. Thank you.

Second, your ideas on how to improve the Mozilla support platform are something we always listen closely to, as you are in the system as much as we are. These can be new features or improvements to existing features (or adding back in older features), including improvements to the Lithium platform. We can’t promise that we will be able to include all requests in our roadmap but the community does drive our priorities and inform our decisions.

Please add these requests into the Platform meeting notes or file feature requests through Bugzilla (and make sure they are assigned to us.) Please note that we already have several feature improvements lined up for development and deployment by Lithium. We will do what we can to keep the information flowing back and forth in a clear and organized manner.

As always, thank you for your continuous presence and support of Mozilla’s mission. We can’t make it happen without you.

All the best to you all!

The SUMO Team on behalf of Mozilla

Air MozillaApril Privacy Lab – The Future of Privacy and Artificial Intelligence (AI)

April Privacy Lab – The Future of Privacy and Artificial Intelligence (AI) Peter Eckersley, the Chief Computer Scientist for the Electronic Frontier Foundation (EFF), will discuss the new EFF initiative that he is leading on the policy,...

Air MozillaLocalization Community Bi-Monthly Call, 27 Apr 2017

Localization Community Bi-Monthly Call These calls will be held in the Localization Vidyo room every second (14:00 UTC) and fourth (20:00 UTC) Thursday of the month and will be...

Air MozillaReps Weekly Meeting Apr. 27, 2017

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

Open Policy & AdvocacyMozilla is Ready to Fight: FCC Chairman Announces Plans to Reverse U.S. Net Neutrality Protections

In a speech at the Newseum today, FCC Chairman Ajit Pai shared some details about his plan to repeal and replace U.S. net neutrality protections enacted in 2015. These rules were adopted after more than a decade long battle to protect net neutrality, and after a massive amount of input by US citizens. Pai’s approach would leave internet users and innovators with no protections.

FCC Chairman Pai seeks to shift the source of the authority for the Net Neutrality rules away from “Title II” (where it now sits) and back to a weaker “Title I” classification for Internet Service Providers because it is “more consistent with the facts and the law.” We disagree – and we aren’t the only ones. So did the D.C. Circuit Court on three occasions, along with the late Justice Scalia, in the same 2005 Supreme Court case Pai cited. In that case Justice Scalia described what Pai has now chosen as his path, the classification of ISPs under Title I, “an implausible reading of the statute.”

Unfortunately, Pai’s assertions today are just as implausible.

This move is saddening, maddening and unacceptable, but we’re not surprised. This proposal is nothing more than a repetition of the same old ideas discussed by opponents of net neutrality over the past few years.

Net neutrality is under threat and we all need to work towards an “open internet that does not discriminate on content and protects free speech and consumer privacy.” Mozilla has rallied for this fight in the past, and as we have said before, we are ready to protect net neutrality – and the creativity, innovation, and economic growth it unlocks – again, and always. Today was the first clearly articulated threat  – we now need to begin mobilizing against these actions. Stay tuned for ways that you can help us win the fight again.

The post Mozilla is Ready to Fight: FCC Chairman Announces Plans to Reverse U.S. Net Neutrality Protections appeared first on Open Policy & Advocacy.

Air MozillaApril Speaker Series: American Spies: Modern Surveillance and What We Can Do Speaker: Jennifer Granick

April Speaker Series: American Spies: Modern Surveillance and What We Can Do Speaker: Jennifer Granick Intelligence agencies in the U.S. (aka the American Spies) are exceedingly aggressive, pushing and sometimes bursting through the technological, legal and political boundaries of lawful...

hacks.mozilla.orgFathom: a framework for understanding web pages

It’s time we went beyond a browser that just renders pages. On the modern web, trying to accomplish a simple task can get you buffeted by pop-overs, squinting at content crammed into a tiny column, and trying to suss out the behavior of yet another site’s custom widgets. To restore a balance of power and reclaim user efficiency, we need a smarter browser.

Imagine if Firefox understood pages like a human does:

  • Arduous sign-on could be a thing of the past. The browser could recognize a Log In link, follow it in the background, and log you in, all without losing your place. The links could disappear from the page and be moved into a standard browser UI.
  • Products could be recognized as such and manipulated as cohesive chunks. You could drag them to a shopping cart, complete with pictures and prices, for cross-site comparison shopping. You could enjoy easily scannable columns rather than a circus of tabs.
  • Inefficient and inconsistent UI could be ironed out at last. We could have browser-provided hotkeys for dismissing popovers, navigating to the next logical page, standardizing the look of interface elements, or recognizing and flattening out needlessly paginated slideshows.
  • On small screens or windows, superfluous navigation or header sections could be hidden, even on pages that don’t use responsive design. We could intelligently figure out what to print, even in the absence of print stylesheets.

These possible futures all assume the browser can identify meaningful parts of the page. Over the decades, there have been many attempts to make this easier. But microformats, semantic tags, RDF, and link/rel header elements have failed to take over the world, due both to sites’ incentive to remain unscrapeable and to the extra work they represent. As a result, modern search engines and browsers’ reader modes have taken an alternative tack: they extract meaning by embracing the mess, bulling straight through unsemantic markup with a toolbelt full of heuristics.

But a problem remains: these projects are single-purpose and expensive to produce. Readability, the basis of Safari and Firefox’s reader modes, is 1,800 lines of JavaScript and was recently shut down. Chrome’s DOM Distiller is 23,000 lines of Java. These imperative approaches get bogged down in the mechanics of DOM traversal and state accumulation, obscuring the operative parts of the understanders and making them arduous to write and difficult to comprehend. They are further entangled with the ad hoc fuzzy scoring systems and the site-specific heuristics they need to include. The economics are against them from the start, and consequently few of them are created, especially outside large organizations.

But what if understanders were cheap to write? What if Readability could be implemented in just 4 simple rules?

const rules = ruleset(
         score(fnode => (1 - linkDensity(fnode,
                        * 1.5)),
            .bestCluster({splittingDistance: 3,
                          differentDepthCost: 6.5,
                          differentTagCost: 2,
                          sameTagCost: 0.5,
                          strideCost: 0}),

That scores within 7% of Readability’s output on a selection of its own test cases, measured by Levenshtein distance1. The framework enabling this is Fathom, and it drives the cost of writing understanders through the floor.

Fathom is a mini-language for writing semantic extractors. The sets of rules that make up its programs are embedded in JavaScript, so you can use it client- or server-side as privacy dictates. And Fathom handles all your bookkeeping so you can concentrate on your heuristics:

  • Tree-walking goes away. Fathom is a data-flow language like Prolog, so data conveniently “turns up” when there are applicable rules that haven’t yet seen it.
  • Flow control goes away. Fathom determines execution order based on dependencies, running only what it needs to answer your query and caching intermediate results.
  • The temptation to write plugin systems goes away. Fathom rules are unordered, so additional ones can be added as easily as adding a new element to a JavaScript array. This makes Fathom programs (or rulesets) inherently pluggable. They commingle like streams of water, having only to agree on type names, making them ripe for collaborative experimentation or special-casing without making a mess.
  • The need to keep parallel data structures to the DOM goes away. Fathom provides proxy DOM nodes you can scribble on, along with a black-and-white system of types and a shades-of-grey system of scores to categorize nodes and guide decisions.
  • The need to come up with the optimal balance of weights for your heuristics goes away, thanks to an optimization harness based on simulated annealing. All those fiddly numerical constants in the code above were figured out by siccing the machine on a selection of input and correct output and walking away.

The best part is that Fathom rulesets are data. They look like JavaScript function calls, but the calls are just making annotations in a sort of syntax tree, making the whole thing easily machine-manipulable. Today, that gets us automatic tuning of score constants. Tomorrow, it could get us automatic generation of rules themselves!

Fathom is young but feisty. It’s already in production powering Firefox’s Activity Stream, where it picks out page descriptions, main images, and such. In 70 lines, it replaced a well-known commercial metadata-parsing service.

What we need now is imagination. Scoop up all those ideas you threw away because they required too much understanding by the browser. We can do that now. It’s cheap.

Have an idea? Great! Check out the full documentation to get started, grab the npm package, submit patches, and join us in the #fathom channel on and on the mailing list as you build. Let’s make a browser that is, in bold new ways, the user’s agent!

1The caveats of the example are quite manageable. It’s slower than Readability, because clustering is O(n2 log n). But there is also much low-hanging fruit left unpicked: we do nothing in the above to take advantage of CSS classes or semantic tags like <article>, both rich sources of signal, and we don’t try to pare down the clustering candidates with thresholds. Finally, some of the 7% difference actually represents improvements over Readability’s output.

Open Policy & AdvocacyMozilla at #rp17: What’s up with Internet Health?

Spring in Berlin means re:publica. This year, we invite you to join us for an interactive exhibition, in talks, and hopefully in many personal conversations to discover what we call Internet Health.

From Monday to Wednesday (May 8-10), “the Station” will be expecting roughly 10,000 attendees from more than 100 countries. People will be traveling to Berlin to learn, discuss, and experience new things on topics such as digital rights, politics and society, e-health, science fiction, journalism, education, all sorts of new technologies and anything else related to the digital society.

The schedule includes over 400 sessions taking place on 19 different stages and workshop rooms. The full list of the speakers is available here. All of the eight main stages will be live-streamed, recorded and translated.

Mozilla @ re:publica 17

Mozilla’s Executive Director, Mark Surman, will hold a keynote on whether the Internet of Things we are building is ethical. He will discuss the importance of asking not just what’s possible? but also what’s responsible?

Raegan MacDonald, Senior EU Policy Manager, will present a pitch on the EU copyright reform and the looming threat posed by mandatory upload filters and I will participate in a conversation on digital inclusion, in which we will talk about projects on enhancing digital literacy, equality and individual empowerment.


Where else to find us

We invite you to embark on a new and fun adventure: Join us on Monday, May 8 in the Labore:tory to explore our Internet Health Clinic. We will create an engaging installation, which is designed  to foster structured dialogue about five issues that we believe are crucial for the health of the Internet as an ecosystem: privacy and security; digital inclusion; web literacy; openness; and decentralization. We are particularly thrilled to partner with the Global Innovation Gathering to welcome an international group of experts, who will enter into a journey across continents. The speakers will share with us their own personal stories and inspire us with their work on the ground, around the world. At the clinic we are inviting feedback and are looking forward to discovering and exploring new ideas, research, potential collaborations, and possibilities to assess the impact of our actions on a healthy Internet on an annual basis.

In addition, we are excited to see the winners of our recent Equal Rating Innovation Challenge on stage as well.  If you want to learn more about their projects, this is where you need to go.

A number of Mozillians from our Advocacy, Emerging Tech, Firefox, Open Innovation, Open IoT, and Policy teams, as well as some of our Open Web Fellows, will also be in Berlin. So join us at re:publica and of course on Monday in the Labore:tory in the Internet Health Clinic!

See you in Berlin!

Sessions Overview

Day 1: Monday, May 8 (all times are CET)

12:45-1:15pm, Stage 2

Mark Surman (keynote): Are we living inside an ethical (and kind) machine?:

2:00-5:00pm, Labore:tory

Mozilla’s Internet Health Clinic will feature 15 global experts during “visiting hours”.

Day 2: Tuesday, May 9

4:15 to 4:45pm, Stage 9

The Winner’s of Mozilla Equal Rating Innovation Challenge: Access all areas – Independent internet infrastructures in Brazil, India and South Africa

Day 3: Wednesday, May 10

10:00-11:00am, Stage 4

Cathleen Berger (panel): Digital Equality and how the open web can contribute to a more equal world

11:15am-12:15pm, Stage 8

Raegan MacDonald (panel): Stop the censorship machines! Can we prevent mandatory upload filters in the EU?

The post Mozilla at #rp17: What’s up with Internet Health? appeared first on Open Policy & Advocacy.

The Mozilla BlogMozilla Continues to Oppose the U.S. Administration’s Executive Order on Travel

Mozilla and more than 150 other tech companies continue to oppose the U.S. administration’s revised Executive Order on travel as it winds its way through the U.S. Court system.

This order seeks to temporarily prohibit the U.S. Government from issuing new visas to travelers from six predominantly Muslim countries and suspend the U.S refugee program. Soon after it was issued, two federal judges in Hawaii and Maryland held the revised order to be discriminatory and unconstitutional. So far, their decisions have prevented the order from being enforced, but the administration has appealed to higher courts asking for a reversal.

Last week, we filed two amicus briefs in the Fourth and Ninth Circuits against the Executive Order and in support of the district court decisions.

We are against this Executive Order, for the same reasons we opposed the original one.  People worldwide build, protect, and advance the internet, regardless of their nationality.

Travel is often necessary to the robust exchange of information and ideas within and across companies, universities, industry and civil society.  Undermining immigration law harms the international cooperation needed to develop and maintain an open internet.
We urge the Courts of Appeals to uphold the district court decisions and reinforce the harmful impact of the travel ban.

The post Mozilla Continues to Oppose the U.S. Administration’s Executive Order on Travel appeared first on The Mozilla Blog.

Air MozillaMartes Mozilleros, 25 Apr 2017

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

Mozilla IndiaGearing up for Firefox Nightly: All set to kick off on May 1

As you might have head that entire Mozilla India community is going to create an outstanding campaign. As our dedicated, passionate and innovative, the members of the Mozilla India community always wanted to be associated with something great. From students to evangelists, this unique group of people really care about the true mission of Mozilla. This brings us to Firefox Nightly, a special version of your favourite Firefox browser, but with a different touch. To promote any new product, awareness is a must and this is why the concept of Firefox Nightly must be spread aggressively. The excitement is at an all-time high, as interesting things are in store.

RSVP here.

The 60-day campaign will feature as many as 15 events in 15 different places across the country and it will be an exciting ride. Firefox Nightly has essentially meant for the power-users as well as the core contributors of Mozilla. Developers under the Mozilla community are constantly testing the version and a feedback loop has been initiated. By involving all the active members, we plan to create a closely-knit community of innovators. The goals of this initiative are quite simple, 1000 Firefox Nightly will be installed and 20 new core contributors will be added to the campaign. The event will be run by 30 talented Mozillians and they will reach out to as many as 500 attendees.

Recently we had organized one community call on this campaign. You can watch it to know more:

How to get involved:

Online Activities:
  • Telling and inviting friends!
  • Create the event in social media!
  • Writing about it on Facebook & Twitter.
  • Posting updates on social media when the event is running.
  • Blog posting.
Offline Activities:
  • Introduction to Mozilla
  • Introduction to Firefox Nightly
  • Release cycle details
  • Why we need Firefox Nightly users?
  • Showing various stats regarding Firefox
  • Installing Nightly on participant’s PC
  • WebCompat on Firefox Nightly
  • How they can contribute in Nightly (QA and Promotion)
  • Swag Distribution

Few important things…

  • Duration of Campaign: 2 months
  • Total Number of events: 15
  • Campaign Hashtag: #INUsesFxNightlyDuration of each event: 3-5 hours

How to file a swag request?

Swags can be filed by Mozilla Reps, but non-reps must connect through an existing Mozilla Reps. In extreme cases, the core team should be contacted. After filing the crucial swag request, the representative must keep in the cc of that bug. The campaign owner will then complete marking the bug by putting the term INUsesFxNightly, in the whiteboard. Getting the swag pack is quite simple, but the event organizer must have a clear agenda of the event and define the goals. After the event ends, the event organizer must write a blog post and pictures from the event should be embedded in it. The metrics of this post must reach the core team so that they can analyse it easily. Know more here .

  • How to file a budget request?

  • The process of filing the budget request is almost similar to that of the swag request. Reps can do it themselves, while non-representatives must contact a reps first. The budget for every event is fixed at $25 (Rs 1500). Only the refreshment costs are covered in the budget and other costs are not included. By creating an effective event agenda with pre-defined goals, event organizers can make the application process easier. The reimbursement will be done only after the submission of the event report and it takes a maximum of seven days. Know more here .

If you have a special query, please send a mail to Biraj Karmakar [brnet00 AT gmail DOT com]. Don’t forget to join our telegram group for a realtime chat.

This is a guest post by Subhasis Chatterjee and Biraj Karmakar


about:communityRevitalize participation by understanding our communities

As part of the bigger Open Innovation strategy project on how openness can better drive Mozilla products and technologies, during the next few months we will be conducting research about our communities and contributors.

We want to take a detailed, data-driven look into our communities and contributors: who we are, what we’re doing, what our motivations are and how we’re connected.

Who: Understanding the people in our communities

  • How many contributors are there in the Mozilla community.
  • Who are we? (how diverse is our community?)
  • Where are we? (geography, groups, projects)

What: Understanding what people are doing

  • What are we doing? (contributing with)
  • What are our skillsets?
  • How much time we’re able to devote to the project.
  • The tools we use.
  • Why do people contribute? (motivations)
  • What blocks people from contributing?
  • What other projects do we contribute to?
  • What other organisations are we connected to?
  • How much do people want to get involved?

Why: Understanding why people contribute

  • What are people’s’ motivations.
  • What are the important factors in contributing for Mozilla (ethical, moral, technological etc).
  • Is there anything Mozilla can do that will lead volunteers to contribute more?
  • For people who have left the project:why do they no longer contribute?)

How & Where: Understanding the shape of our communities and our people’s networks

  • What are the different groups and communities.
  • Who’s inside each group (regional and functional).
  • What is the overlap between people in groups?
  • Which groups have the most overlap, which have the least? (not just a static view, but also over time)
  • How contributors are connected to each other? (related with the “where”)
  • How are our contributors connected to other projects, Mozilla etc

In order to answer all these questions, we have divided the work in three major areas.

Contributors and Contributions Data Analysis

Analyzing past quantitative data about contributions and contributors (from sources like Bugzilla, Github, Mailing Lists, and other sources) to identify patterns and draw conclusions about contributors, contributions and communities.

Communities and Contributors survey

Designing and administering a qualitative survey to as many active contributors as possible (also trying to survey people who have stopped contributing to Mozilla) to get a full view of our volunteers (demographics), motivations, which communities people identify with, and their experience with Mozilla. We’ll use this to identify patterns in motivations.


We’ll bring together the conclusions and data from both of the above components to articulate a set of insights and recommendations that can be a useful input to the Open Innovation Strategy project.

In particular, one aim that we have is to cross reference individuals from the Mozillians Survey and Data Analysis to better understand — on aggregate — how things like motivations and identity relate to contribution.

Our commitments

In all of this work we are handling data with the care you would expect from Mozilla, in line with our privacy policy and in close consultation with Mozilla’s legal and trust teams.

Additionally, we realize that we at Mozilla often ask for people’s time to provide feedback and you may have recently seen other surveys. Also, we have run research projects of this sort in the past without following up with a clear plan of action. This project is different. It’s more extensive than anything we’ve done, it is connected a much larger project to shape Mozilla’s strategy with respect to open practices, and we will be publishing the results and data.

We would like to know your feedback/input about this project, its scope and implementation:

  • Are we missing any areas/topics we should get information about our communities?
  • Which part do you feel it’s more relevant?
  • Where do you think communities can engage to provide more value to the work we are going to do?
  • Any other ideas we are not thinking about?

Please let us know in this discourse topic.

Thanks everyone!

Firefox UXRatings and reviews on


My name is Philip Walmsley, and I am a Senior Visual Designer on the Firefox UX team. I am also one of the people tasked with making (or, “AMO”) a great place to list and find Firefox extensions and themes.

There are a lot of changes happening in the Firefox and Add-ons ecosystem this year (Quantum, Photon, Web Extensions, etc.), and one of them is a visual and functional redesign of AMO. This has been a long time coming! The internet has progressed in leaps and bounds since our little site was launched many years ago, and it’s time to give it some love. We’ve currently got a top-to-bottom redesign in the works, with the goal of making add-ons more accessible to more users.

I’m here to talk with you about one part of the add-ons experience: ratings and reviews. We have found a few issues with our existing approach:

  • The 5-star rating system is flawed. Star ratings are arbitrary on a user by user basis, and it leads to a muddling of what users really think about an add-on.
  • Some users just want to leave a rating and not write a review. Sometimes this is referred to as “blank page syndrome,” sometimes a user is just in a time-crunch, sometimes a user might have accessibility issues. Forcing users to do both leads to glib, unhelpful, and vague reviews.
  • On that note, what if there was a better way to get reviews from users that may not speak your native tongue? What if instead of writing a review, a user had the option to select tags or qualities describing their experience with an add-on? This would greatly benefit devs (‘80% of the global community think my extension is “Easy to use”!’) and other users (‘80% of the global community believe this extension is “Easy to use”!’).
  • We don’t do a very good job of triaging users actual issues: A user might love an extension but have an (unbeknownst to them) easily-solved technical problem. Instead of leaving a negative 1-star review for this extension that keeps acting weird, can we guide that user to the developer or Mozilla support?
  • We also don’t do a great job of facilitating developer/user communication within AMO. Wouldn’t it be great if you could rectify a user’s issue from within the reviews section on your extension page, changing a negative rating to a positive one?

So, as you can see, we’ve got quite a few issues here. So let’s simplify and tackle these one-by-one: Experience, Tags, Triage.

So many feels


Someone is not familiar with Lisa Hanawalt

The star rating has its place. It is very useful in systems where the rating you leave is relevant to you and you alone. Your music library, for example: you know why you rate one song two stars and another at four. It is a very personal but very arbitrary way of rating something. Unfortunately, this rating system doesn’t scale well when more than one person is reviewing the same thing: If I love something but rate it two stars because it lacks a particular feature, what does that mean to other users or the overall aggregated rating? It drags down the review of a great add-on, and as other users scan reviews and see 2-stars, they might leave and try to find something else. Not great.

What if instead of stars, we used emotions?

Some of you might have seen these in airports or restrooms. It is a straightforward and fast way for a group of people to indicate “Yep, this restroom is sparkling and well-stocked, great experience.” Or “Someone needs to get in here with a mop, PRONTO.” It changes throughout the day, and an attendant can address issues as they arise. Or, through regular maintenance, they can achieve a happy face rating all day.

What if we applied this method to add-ons? What if the first thing we asked a user once they had used an extension for a day or so was: “How are you enjoying this extension?” and presented them with three faces: Grinning, Meh, and Sad. At a very high level, this gives users and developers a clear, overall impression of how people feel about using this add-on (“90% grinning face for this extension? People must like it, let’s give it a try.”).

So! A user has contributed some useful rating data, which is awesome. At this point, they can leave the flow and continue on their merry way, or we can prompt them to quickly leave a few more bits of even MORE useful review data…


Not super helpful

Writing a review is hard. Let me rephrase that: Writing a good review is hard. It’s easy to fire off something saying “This add-on is just ok.” It’s hard to write a review explaining in detail why the add-on is “just ok.” Some (read: most) users don’t want to write a detailed review, for many reasons: time, interest, accessibility, etc. What if we provided a way for these users to give feedback in a quick and straightforward way? What if, instead of staring down a blank text field, we displayed a series of tags or descriptors based on the emotion rating the user just gave?

For example, I just clicked a smiling face to review an extension I’m enjoying. Right after that, a grid of tags with associated icons pops up. Words like “fast”, “stable”, “easy to use”, well-designed”, fun”, etc. I liked the speed of this extension, so I click “fast” and “stable” and submit my options. And success: I have submitted two more pieces of data that are useful to devs and users. Developers can find out what users like about their add-on, and users can see what other users are thinking before committing to downloading. We can pop up different tags based on the emotion selected: if a user taps Meh or Sad, we can pop up tags to find out why the user selected that initially. The result is actionable review data that can is translated across all languages spoken by our users! Pretty cool.


Finally, we reach triage. Once a user submits tag review data, we can present them with a few more options. If a user is happy with this extension and wants to contribute even more, we can present them with an opportunity to write a review, or share it with friends, or contact the developer personally to give them kudos. If a user selected Meh, we could suggest reading some developer-provided documentation, contacting support, or writing a review. If the user selected Sad, we’d show them developer or Mozilla support, extension documentation, file a bug/issue, or write a review. That way we can make sure a user gets the help they need, and we can avoid unnecessary poor reviews. All of these options will also be available on the add-on page as well, so a user always has access to these different actions. If a user leaves a review expressing frustration with an add-on, devs will be able to reply to the review in-line, so other users can see issues being addressed. Once a dev has responded, we will ask the user if this has solved their problem and if they’d like to update their review.

We’ve covered a lot here! Keep in mind that this is still in the early proposal stage and things will change. And that’s good; we want to change this for the better. Is there anything we’ve missed? Other ideas? What’s good about our current rating and review flow? What’s bad? We’d love constructive feedback from AMO users, extension developers, and theme artists.

Please visit this Discourse post to continue the discussion, and thanks for reading!

Philip (@pwalm)
Senior Visual Designer, Firefox UX

Ratings and reviews on was originally published in Firefox User Experience on Medium, where people are continuing the conversation by highlighting and responding to this story.

Air MozillaWebdev Beer and Tell: April 2017

Webdev Beer and Tell: April 2017 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...

Open Policy & AdvocacyDutch court ruling puts net neutrality in question

On Thursday, April 20th a Rotterdam Court ruled that T-Mobile’s zero rated service “Data Free Music” is legal. The court declared that the Dutch net neutrality law, which prohibits zero rating, is not in accordance with the EU net neutrality law that Brussels lawmakers passed last year.

Zero rating is bad for the long term health of the internet. By disrupting the level playing field and allowing discrimination, zero rating poses a threat to users, competition, and opportunity online.

The Netherlands has been a model to the world in protecting net neutrality. It’s alarming to see these vital protections for users, competition, and opportunity online struck down.

The power and potential of the Internet is greatest when users can access the full diversity of the open Internet, not just some parts of it. We urge the Authority for Consumers & Markets (ACM) to appeal this decision swiftly, and we hope that higher courts will restore the Internet’s level playing field.

The post Dutch court ruling puts net neutrality in question appeared first on Open Policy & Advocacy.

Air MozillaWorldBots Meetup 4/20/17

WorldBots Meetup 4/20/17 WorldBots Meetup 2017-04-20 19:00 - 21:00 We're throwing the first World Bot Meetup! International experts from all over the world will talk about the culture,...

Air MozillaReps Weekly Meeting Apr. 20, 2017

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

QMOFirefox 54 Beta 3 Testday, April 28th

Hello Mozillians,

We are happy to let you know that Friday, April 28th, we are organizing Firefox 54 Beta 3 Testday. We’ll be focusing our testing on the following new features: Net Monitor MVP and Download Panel UX Redesign.

Check out the detailed instructions via this etherpad.

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

Join us and help us make Firefox better!

See you on Friday!

Mozilla L10NLocalizing Firefox in Barcelona

We were thrilled to start the year’s localization (l10n) community workshops in Barcelona at the end of March 2017! Thanks to the help of the ever dedicated Alba and Benny the workshop was fun, productive, and filled with amazing Catalonian food.

This workshop aimed to gather together core and active localizers from twenty-one l10n communities scattered throughout the southern parts of Western and Eastern Europe. Unlike the 2016 l10n hackathons, this was the first time we brought these twenty-one communities together to share experiences, ideas, and hack on Mozilla l10n projects together.

The workshop was held at Betahaus, a local co-working space in Barcelona located in Villa de Grácia, Barcelona. The space was great for both large group presentations and small group breakouts. We had room to move around, brainstorm on whiteboards, and play our favorite icebreaker game, spectograms.

All of the l10n-drivers were present for this workshop (another first) and many gave presentations on their main projects. Localizers got a look into new developments with L20n, Pontoon, and Pootle. We also had a glimpse into cross-channel localization for Firefox and how localizers can prepare for it to come in June.

Following tradition, l10n communities came to the workshop with specific goals to accomplish while there. While together, these communities were able to complete around 75% of their goals. These goals largely surrounded addressing the question of localization quality and testing, but also included translating strings for Mozilla products, web sites, and planning for recruiting new localizers.

We couldn’t think of being in Barcelona without taking advantage of participating in a cultural activity as a group. Alba was kind enough to guide the whole group through the city on Saturday night and show us some of the most prominent sites, like Sagrada Familia (which happened to be the most popular site among the l10n communities).

On Sunday, the l10n communities and drivers gathered around four different tables to discuss four different topics in 30-minute chunks of time. Every 30 minutes, Mozillians moved to a different table to discuss the topic assigned to that table. These topics included localization quality, style guides, recruiting new localizers, and mentoring new localizers. It was a great opportunity for both veteran and new localizers to come together and share their experience with each topic and ideas on how to take new approaches to each. Sure, it was a bit chaotic, but everyone was flexible and willing to participate, which made it a good experience nevertheless.

For more info about the workshop (including the official Spotify playlist of the workshop), visit the event’s wiki page here. ¡Hasta luego!

More pictures from the event:

The Mozilla BlogThis April, Mozilla is Standing Up for Science

Mozilla supports the March for Science. And we’re leading projects to make scientific research more open and accessible, from extraterrestrial hackathons to in-depth fellowships


We believe openness is a core component not just of a healthy Internet, but also a healthy society. Much like open practices can unlock innovation in the realm of technology, open practices can also invigorate fields like civics, journalism — and science.

In laboratories and at academic institutions, open source code, data and methodology foster collaboration between researchers; spark scientific progress; increase transparency and encourage reproducibility; and better serve the public interest.

Open data has been shown to speed up the study process and vaccine development for viruses, like Zika, at global scale. And open practices have allowed scientific societies from around the globe to pool their expertise and explore environments beyond Earth.

This April, Mozilla is elevating its commitment to open science. Mozilla Science Lab, alongside a broader network of scientists, developers and activists, is leading a series of programs and events to support open practices in science.

Our work aligns with the April 22 March for Science, a series of nonpartisan gatherings around the world that celebrate science in the public interest. We’re proud to say Teon Brooks, PhD — neuroscientist, open science advocate and Mozilla Science Fellow — is serving as a March for Science Partnership Outreach Co-Lead.

From science fellowships to NASA-fueled hackathons, here’s what’s happening at Mozilla this April:

Signage for Science Marchers

We want to equip March for Science participants — from the neuroscientist to the megalosaurus-obsessed third grader — with signs that spotlight their passion and reverence for science. So Mozilla is asking you for your most clever, impassioned science-march slogans. With them, our designers will craft handy posters you can download, print and heft high.

Learn more here.

Seeking Open Science Fellows

This month, Mozilla began accepting applications for Mozilla Fellowships for Science. For the third consecutive year, we are providing paid fellowships to scientists around the world who are passionate about collaborative, iterative and open research practices.

Mozilla Science Fellows spend 10 months as community catalysts at their institutions, and receive training and support from Mozilla to hone their skills around open source, data sharing, open science policy and licensing. Fellows also craft code, curriculum and other learning resources.

Fellowship alums hail from institutions like Stanford University and University of Cambridge, and have developed open source tools to teach and study issues like bioinformatics, climate science and neuroscience.

Apply for a fellowship here. And read what open science means to Mozillian Abigail Cabunoc Mayes: My Grandmother, My Work, and My Open Science Story

Calling for Open Data

In the United States, federal taxes help fund billions of dollars in scientific research each year. But the results of that research are frequently housed behind pricey paywalls, or within complex, confounding systems.

Citizens should have access to the research they help fund. Further, open access can spark even more innovation — it allows entrepreneurs, researchers and consumers to leverage and expand upon research. Just one example: Thanks to publicly-funded research made openly available, farmers in Colorado have access to weather data to predict irrigation costs and market cycles for crops.

Add your name to the petition:

Calling for Open Citations

Earlier this month, Mozilla announced support for the Initiative for Open Citations (I4OC), a project to make citations in scientific research open and freely accessible. I4OC is a collaboration between Wikimedia, Bill & Melinda Gates Foundation, a slate of scholarly publishers and several other organizations.

Presently, citations in many scholarly publications are inaccessible, subject to restrictive and confusing licenses. Further, citation data is often not machine readable — meaning we can’t use computer programs to parse the data.

I4OC envisions a global, public web of citation data — one that empowers teaching, learning, innovation and progress.

Learn more about I4OC.

Extraterrestrial Hackathon (in Brooklyn)

Each year, the Space Apps hackathon allows scientists, coders and makers around the world to leverage NASA’s open data sets. In 2016, 5,000 people across six continents contributed. Participants built apps to measure air quality, to remotely explore gelid glaciers and to monitor astronauts’ vitals.

For the 2017 Space Apps Hackathon — slated for April 28-30 — participants will use NASA data to study Earth’s hydrosphere and ecological systems. Mozilla Science is hosting a Brooklyn-based Space Apps event, which will include a data bootcamp.

Learn more at

The post This April, Mozilla is Standing Up for Science appeared first on The Mozilla Blog.


Hi All,

Just want to quickly mention that we’ve released SeaMonkey 2.48b1.

Unfortunately, there are a few items that you’ll need to be aware of:

  1. updates are problematic as some users won’t get any updates as the update url format has changed to include CPU capability but our updates server doesn’t have that capability without much fudging which makes it even more fragile.   While I am trying to migrate to the newer updates server, it’s a slow progress.  I apologize.
  2. Windows SSE2.. like 2.46, non-SSE2 capable users will remain in 2.39b1.
  3. OSX10.7 and older versions are no longer supported.  (Not happy but this is the way of progress.)

If there are problems with updates/running 2.48b1, please report it to us (either in or on the newsgroups or even here, though this isn’t much of a support channel).

We will spin 2.48 as soon as we can.  At the moment, we’re fixing the infrastructure.

Many thanks to your continual support and patience.  Goodness knows we need them.


Mozilla VR BlogWebVR Google Daydream support lands in Servo

WebVR Google Daydream support lands in Servo

Want to try this now? Download this three.js Rollercoaster Demo (Android APK)!

We are happy to announce that Google Daydream VR headset and Gamepad support are landing in Servo. The current implementation is WebVR 1.1 spec-compliant and supports asynchronous reprojection to achieve low-latency rendering.

If you are eager to explore, you can download an experimental three.js Rollercoaster Demo (Android APK) compatible with Daydream-ready Android phones. Put on the headset, switch on your controller, and run the app from Daydream Home or from a direct launch.

We have contributed to many parts in the Servo browser codebase in order to allow polished WebVR experiences on Android. It’s nice that our WebVR support goals has allowed to push forward some improvements that are also useful for other areas of the Android version of Servo.

VR Application life cycle

Daydream VR applications have to gracefully handle several VR Entry flows such as transitions between the foreground and background, showing and hiding the Daydream pairing screen, and adding the GvrLayout Android View on top of the view hierarchy. To manage the different scenarios we worked on proper implementations of native EGL context lost and restore, animation loop pause/resume, immersive full-screen mode, and support for surface-size and orientation changes.

Servo uses a NativeActivity, in combination with android-rs-glue and glutin, as an entry point for the application. We realized that NativeActivity ignores the Android view hierarchy because it’s designed to take over the surface from the window to directly draw to it. The Daydream SDK requires a GvrLayout view in the Activity’s view hierarchy in order to show the VR Scene, so things didn’t work out.

A research about this issue shows that most people decide to get rid of NativeActivity or bypass this limitation using hacky PopupWindow modal views. The PopupWindow hack may work for simple views like an Google AdMob banner but causes complications with a complex VR view. We found a more elegant solution by releasing the seized window and injecting a custom SurfaceView with its render callbacks redirected to the abstract implementation in NativeActivity:

This approach works great, and we can reuse the existing code for native rendering. We do, however, intend to remove NativeActivity in the future. We’d like to create a WebView API-based Servo component that will allow developers to embed their content from Android standalone apps or using WebView-based engine ecosystems such as Cordova. This will involve modifications to various Servo layers coupled with NativeActivity callbacks.

Build System

Thanks to the amazing job of both the Rustlang and Servo teams, the browser can be compiled with very few steps, even on Windows now. This is true for Android too, but the packaging step was still using ant combined with Python scripts. We replaced it with a new Gradle build system for the packaging step, which offers some nice benefits:

  • A scalable dependency system that allows to include Gradle/aar-based dependencies such as the GoogleVR SDK.
  • Relative paths for all project libraries and assets instead of multiple copies of the same files.
  • Product flavors for different versions of Servo (e.g. Default, VR Browser, WebView)
  • Android Studio and GPU debugger support.

The new Gradle integration paves the way for packaging Servo APKs with the Android AArch64 architecture. This is important to get optimal performance on VR-ready phone CPUs. Most of the Rust package crates that Servo uses can be compiled for AArch64 using the aarch64-linux-android Rust compilation target. We still, however, need to fix some compilation issues with some C/C++ dependencies that use cmake, autotools or pure Makefiles.

Other necessary improvements to support WebVR

There’s a plethora of rough edges we have to polish as we make progress with the WebVR implementation. This is a very useful exercise that improves Servo Android support as a compelling platform for delivering not only WebVR content, but graphics-intensive experiences. To reach this milestone, these are some of the areas we had to improve:

Daydream support on Rust WebVR

WebVR Google Daydream support lands in Servo

These notable Android improvements, combined with the existing cross-platform WebVR architecture, provide a solid base for Daydream integration into Servo. We started by integrating Daydream support in the browser dependency-free rust-webvr library.

The Google VR NDK for Android provides a C/C++ API for both Daydream and Cardboard headsets. As our codebase is written in Rust, we used rust-bindgen to generate the required bindings. We also published the gvr-sys crate, so from now on anyone can easily use the GVR SDK in Rust for other use cases.

The GoogleVRService class offers the entry point to access GVR SDK and handles life-cycle operations such as initialization, shutdown, and VR Device discovery. The integration with the headset is implemented in GoogleVRDisplay. Daydream lacks positional tracking, but by using the neck model provided in the SDK, we expose a basic position vector simulating how the human head naturally rotates relative to the base of the neck.

A Java GvrLayout view is required in order get a handle to the gvr_context, apply lens distortion, and enable asynchronous-reprojection-based rendering. This adds some complexity to the implementation because it involves adding both the Java Native Interface (JNI) and Java code to the modular rust-webvr library. We created a Gradle module to handle the GvrLayout-related tasks and a helper JNIUtils class to communicate between Rust and Java.

One of the complexities about this interoperation is that JNI FindClass function fails to find our custom Java classes. This happens because when attaching native Rust threads to a JavaVM, the JNI AttachCurrentThread call is unaware of the current Java application context and it uses the system Classloader instead of the one associated with the application. We fixed the issue by retrieving the Classloader from the NativeActivity’s jobject instance and performing loadClass calls directly to it. I’m waiting for variadic templates to land in Rustlang to extend and move these JNI Utils into it’s own crate providing a similar API like the one I implemented for the C++11 SafeJNI library.

In order to present the WebGL canvas into the headset we tried to use a shared texture_id as we did in the OpenVR implementation. Unfortunately, the GVR SDK allows attaching only external textures that originate from the Android MediaCodec or Camera streams. We opted for a BlitFramebuffer-based solution, instead of rendering a quad, to avoid implementing the required OpenGL state-change safeguards or context switching:

Once the Daydream integration was tested using the pure Rust room-scale demo, we integrated it pretty quickly into Servo. It fit perfectly into the existing WebVR architecture. WebVR tests ran well except that VRDisplay.requestPresent() failed in some random launches. This was caused because of a deadlock possibility during the very specific frame when the requestAnimationFrame is moved from window to VRDisplay. Fortunately, this was fixed with this PR.

In order to reduce battery usage, when a JavaScript thread starts presenting to the Daydream headset, the swap_buffers call of the NativeActivity’s EGLContext is avoided. The optimized VR render path draws into only the texture framebuffer attached to the WebGL Canvas. This texture is sent to the GVRLayout presentation view when VRDisplay.submitFrame() is called and lens distortion is then applied.

Gamepad Integration

Gamepad support is a necessity for complete WebVR experiences. Similarly to the VRDisplay implementation, integration with the vendor-specific SDK for gamepads are implemented in rust-webvr, based on the following traits and structs:

These traits are used in both the WebVR Thread and DOM Objects in the Gamepad API implementation in Servo.

Vendor-specific SDKs don’t allow using the VR gamepads independently, so navigator.vr.getDisplays() must be called in order to spin up VR runtimes and make VR gamepads discoverable later in subsequent navigator.getGamepads() calls.

The recommended way to get valid gamepad state on all browsers is calling navigator.getGamepads() within every frame in your requestAnimationFrame callback. We created a custom GamepadList container class with two main purposes:

  • Provide a fast and Garbage Collection-friendly container to share the gamepad list between Rust and JavaScript, without creating or updating JS arrays every frame.

  • Implement an indexed getter method which will be used to hide gamepads according to privacy rules. The Gamepad spec permits the browser to return inactive gamepads (e.g., [null, <object Gamepad>]) when gamepads are available but in a different, hidden tab.

WebVR Google Daydream support lands in Servo

The latest gamepads state is polled immediately in response to the navigator.getGamepads() API call. This is a different approach than the one implemented in Firefox, where the gamepads are vsync-aligned and have the data already polled when requestAnimationFrame is fired. Both options are equally valid, though the being able to immediately query for gamepads enables a bit more flexibility:

  • Gamepad state can be sampled multiple times per frame, which can be very useful for motion-capture or drawing WebVR applications.
  • Vsync-aligned polling can be simulated by just calling navigator.getGamepads at the start of the frame. Remember from the Servo WebVR architecture that requestAnimationFrame is fired in parallel and allows to get some JavaScript code executed ahead during the VR headset’s vsync time until VRDisplay#getFrameData is called.


We are very excited to see how far we’ve evolved the WebVR implementation on Servo. Now that Servo has a solid architecture on both desktop and mobile, our next steps will be to grow and tune up the WebGL implementation in order to create a first-class WebVR browser runtime. The Gear VR backend is coming too ;) Stay tuned!

hacks.mozilla.orgFirefox 53: Quantum Compositor, Compact Themes, CSS Masks, and More

Firefox 53, available today, includes the following key new features and enhancements.

Quantum Compositor Process on Windows

One of the first pieces of Project Quantum, the Compositor Process, has arrived on Windows. Compositors are responsible for flattening all of the various elements on a webpage into a single image to be drawn on the screen. Firefox can now run its compositor in a completely separate process from the main Firefox program, which means that Firefox will keep running even if the compositor crashes—it can simply restart it.

For more details on how this aspect of Project Quantum reduces crash rates for Firefox users, check out Anthony Hughes’ blog post.

Light and Dark Compact Themes

The “compact” themes that debuted with Firefox Developer Edition are now a standard feature of Firefox. Users can find light and dark variants of this space-saving, square-tabbed theme listed under the “Themes” menu in Customize mode.

Screenshot of the new compact themes in Firefox

New WebExtension Features

WebExtensions are browser add-ons that are designed to work safely and efficiently in Firefox, Chrome, Opera, and Edge, while also supporting powerful features unique to Firefox.

In Firefox 53, WebExtensions gained compatibility with several pre-existing Chrome APIs:

  • The browsingData API lets add-ons clear the browser’s cache, cookies, history, downloads, etc. For example, Firefox’s Forget Button could now be implemented as a WebExtension.
  • The identity API allows add-ons to request OAuth2 tokens with the consent of the user, making it easier to sign into services within an add-on.
  • The storage.sync API allows add-ons to save user preferences to Firefox Sync, where it can be shared and synchronized between devices.
  • The webRequest.onBeforeRequest API can now access the request body, in addition to headers.
  • The contextMenus API now supports adding menus to browser actions and page actions.

Firefox 53 also supports the following unique APIs:

New CSS Features: Positioned Masks and Flow-Root

Firefox 53 supports positioned CSS Masks, which allow authors to partially or fully hide visual elements within a webpage. Masks work by overlaying images or other graphics (like linear gradients) that define which regions of an element should be visible, translucent, or transparent.

Masks can be configured to use either luminance or alpha values for occlusion. When the mode is set to luminance, white pixels in the mask correspond to fully visible pixels in the underlying element, while black pixels in the mask render that area completely transparent. The alpha mode simply uses the mask’s own opacity: transparent pixels in the mask cause transparent pixels in the element.

Many masking properties function similarly to the equivalent background-* properties. For example, mask-repeat works just like background-repeat. To learn more about the available properties, see the documentation on MDN.

The specification also defines methods for clipping based on shapes and vector paths. Firefox 53 has partial support for clipping, and complete support is expected in Firefox 54.

Lastly, Firefox also supports the new display: flow-root value, which achieves similar results to clearfix, but using a standard CSS value instead of pseudo-elements or other hacks.

A Better Default Media Experience

Alongside many other UI refinements in Firefox 53, the default <video> and <audio> controls got a new, modern look:

Screenshot of the default HTML5 video controls in Firefox 53

Additionally, Firefox 53 includes brand new anti-annoyance technology: By default, HTML5 media will not autoplay until its tab is first activated. Try it by right-clicking on this link and choosing “Open in New Tab.” Notice that the video doesn’t start until you change to that tab.

Edit: Autoplay blocking is scheduled for Firefox 54, not 53. Oops. (Bug 1308154)

64-bit Everywhere

Windows users can now select between 32-bit and 64-bit Firefox during installation:

Screenshot of the Firefox installer on Windows offering a choice of 32-bit or 64-bit

We’ve also removed support for 32-bit Firefox on macOS, and for processors older than Pentium 4 and Opteron on Linux.

More Info

To find out more about Firefox 53, check out the general Release Notes as well as Firefox 53 for Developers on MDN.

The Mozilla BlogFirefox faster and more stable with the first big bytes of Project Quantum, simpler with compact themes and permissions redesign

Today’s release of Firefox includes the first significant piece of Project Quantum, as well as various visible and the under-the-hood improvements.

The Quantum Compositor speeds up Firefox and prevents graphics crashes on Windows

In case you missed our Project Quantum announcement, we’re building a next-generation browser engine that takes full advantage of modern hardware. Today we’re shipping one of the first important pieces of this effort – what we’ve referred to as the “Quantum Compositor”.

Some technical details – we’ve now extracted a core part of our browser engine (the graphics compositor) to run in a process separate from the main Firefox process. The compositor determines what you see on your screen by flattening into one image all the layers of graphics that the browser computes, kind of like how Photoshop combines layers. Because the Quantum Compositor runs on the GPU instead of the CPU, it’s super fast. And, because of occasional bugs in underlying device drivers, the graphics compositor can sometimes crash. By running the Quantum Compositor in a separate process, if it crashes, it won’t bring down all of Firefox, or even your current tab.

In testing, the Quantum Compositor reduced browser crashes by about 10%. You can learn more about our findings here. The Quantum Compositor will be enabled for about 70% of Firefox users – those on Windows 10, 8, and 7 with the Platform Update, on computers with graphics cards from Intel, NVidia, or AMD.

And if you’re wondering about the Mac – graphics compositing is already so stable on MacOS that a separate process for the compositor is not necessary.

Save screen real estate – and your eyes – with compact themes and tabs

It’s a browser’s job to get you where you want to go, and then get out of the way.

That’s why today’s release of Firefox for desktop ships with two new themes: Compact Light and Compact Dark. Compact Light shrinks the size of the browser’s user interface (the ‘chrome’) while maintaining Firefox’s default light color scheme. The Compact Dark theme inverts colors so it won’t strain your eyes, especially if you’re browsing in the dark. To turn on one of these themes, click the menu button and choose Add-ons. Then select the Appearance panel, and the theme you’d like to activate.

Firefox for Android also ships with a new setting for compact tabs. When you switch tabs, this new setting displays your tabs in two columns, instead of one, so it’s easier to switch tabs when you have several open. To activate compact tabs, go to Settings > General.

Easily control a website’s permission to access device sensors or send you notifications

In order to fully function, many websites must first get your permission to access your hardware or alert you of information. For example, video conferencing apps need to use your camera and microphone, and maps request your location so you don’t have to type it in. Similarly, news sites and social networks often ask to send you notifications of breaking stories or messages.

Today’s Firefox desktop release introduces a redesigned interface for granting and subsequently managing a website’s permissions. Now, when you visit a website that wants to access sensitive hardware or send you a notification, you’ll be prompted with a dialog box that explicitly highlights the permissions that site is requesting. If later on you would like to change a site’s permissions, just click the ‘i’ icon in the Awesome Bar.

You can learn more about the improvements to Firefox’s permissions in this post.

Lots more new

Check out the Firefox 53 release notes for a full list of what’s new, but here are a few more noteworthy items:

  • Firefox for Android is now localized in Arabic, Hebrew, Persian, and Urdu
  • Reader Mode now displays estimated reading times on both Android and desktop
  • Send tabs between desktop and mobile Firefox by right-clicking the tab
  • Firefox now uses TLS 1.3 to secure HTTPs connections

Web developers should check out the Hacks blog for more information about what’s in today’s release.

We hope you enjoy today’s release, and that you’re excited for the even bigger Quantum leaps still ahead.

The post Firefox faster and more stable with the first big bytes of Project Quantum, simpler with compact themes and permissions redesign appeared first on The Mozilla Blog.

Air MozillaWeekly SUMO Community Meeting Apr. 19, 2017

Weekly SUMO Community Meeting Apr. 19, 2017 This is the Sumo Weekly call for 4/19/17. PLEASE NOTE***( Known audio issue for the 2nd half of video)

Mozilla L10NLocalizing Nightly by Default

One of our goals for 2017 is to implement a continuous localization system at Mozilla for Firefox and other projects. The idea is to expose new strings to localizers earlier and more frequently, and to ship updates to users as soon as they’re ready. I’m excited to say that we’ve arrived at one of the key milestones toward a continuous localization system: transitioning localization from Aurora to Nightly.

How can you help?

Starting April 19th, the focus for localization is going to be on Nightly.

If you are a localizer, you should install Nightly in your own language and test your localization.

If you are a member of a local community, you should start spreading the message about the importance of using Nightly to help improve localized versions of Firefox and share feedback with localizers.

If you are new to localization, and you want to help with translation tasks, check out our tools (Pontoon and Pootle), and get in touch with the contributors already working on your language.

The amount of information might be overwhelming at times, if you ever get lost you can find help on IRC in the #l10n channel, on our mailing list, and even via Twitter @mozilla_l10n.

Firefox release channels

Mozilla has three (previously four) release channels for Firefox, each with their own dedicated purpose. There’s Nightly (built from the mozilla-central repository), Beta (mozilla-beta), and Release (mozilla-release).

  • Nightly: development of Firefox (and now localization)
  • Aurora: testing & localization (no longer available)
  • Beta: stable testing of Firefox
  • Release: global distribution of Firefox to general audience

A version of Firefox will “ride the trains” from Nightly to Beta and finally to Release, moving down the channel stream every 6-8 weeks.

With Aurora, localizers were given one cycle to localize new, unchanging content for Firefox. In fact, once moved to Aurora, code would be considered “string frozen”, and only exceptional changes to strings would be allowed to land. Any good update from localizers during that time was signed off and rode the trains for 6-12 weeks before end-users received it.

We spent the last two years asking localizers about their contribution frequency preferences. We learned that, while some preferred this 6 week cycle to translate their strings, the majority preferred to have new content to translate more frequently. We came away from this with the understanding that the thing localizers want most when it comes to their contribution frequency is freedom: freedom to localize new Firefox content whenever they choose. They also wanted the freedom to send those updated translations to end-users as early as possible, without waiting 6-12 weeks. To accommodate this desire for freedom, Axel set out to develop a plan for a continuous localization system that exposes new content to localizers early and often, as well as delivers new l10n updates to users more quickly.

Nightly localization

The first continuous localization milestone consisted of removing the sign-off obligation from localizer’s TODO list. The second milestone consists of transitioning localization from the old Aurora channel to the Nightly channel. This transition aims to set the stage for cross-channel localization (one repository per locale with Nightly, Beta, and Release strings together) as well as satisfy the first desired freedom: to localize new Firefox content whenever localizers choose to localize.

This is how it works:

  1. A developer lands new strings in mozilla-central for Nightly.
  2. Localization drivers (l10n-drivers) review those new strings and offer feedback to the dev where needed.
  3. Every 2-3 days, localization drivers update a special clone of mozilla-central used by localization tools.
  4. Pootle & Pontoon detect when new strings have been added to this special repository and pull them into their translation environments automatically.
  5. When a new l10n updates is made, Pootle & Pontoon push the change into the locale’s Nightly repository.
  6. Localization drivers review all new updates into l10n Nightly repositories and sign off on all good updates.
  7. Good updates are flagged for shipping to Release users when the version of Firefox “rides the trains” to Release.

Localizing on Nightly offers localizers a few benefits:

  1. Localizers are exposed to new strings earlier for l10n, making it easier for developers to make corrections to en-US strings when localizers report errors.
  2. Localizers have the freedom to localize whenever new strings land (every 2-3 days) or to define their own cadence (every 2 weeks, 4 weeks, 8 weeks, etc.).
  3. Without Aurora, new localization updates get to end-users in Release faster.

The next continuous localization milestone is to implement cross-channel localization. Cross-channel will satisfy the second desired freedom: delivering translation updates to end-users faster. It will also drastically simplify the localization process, allowing localizers to land fixes once, and shipping them in all versions of Firefox. If you’d like to follow the work related to cross-channel, you can find it here on GitHub. We expect cross-channel to be ready before June 2017.

WoMozProducing Personal Objectives

You might as nicely, require to have a superb look at the region and moment of your presentation. It’s sti needs to be short. You simply have to look at a new process to say what has been stated. There wasn’t any need to seek out the cause. The occupation of desire will be to find the things because they are. You also have to write whenever you’ve perform. Such an individual infrequently finds himself unemployed. He’s unique and priceless. When it’s pursued through an intelligent individual with an neutral comprehension of mind, it becomes praise worthy.”A man isn’t lazy, because he’s absorbed in thought.

Sincerely, 12/6 winter residences .

It really is just realistic to that girls should be supplied the similar selection.” It is imperative to ask mom in her residence, kids on the tiny neighbour streets, the normal guy that can be found on the market and appear at their mouth to discover how they speak, and interpret them centered thereon. Lu Xun’s daddy visited a famed traditional Oriental physician seeking for his cure. Tell a quite simple story with easy phrases, and permit it to be interesting. The language of presentation needs to be chosen in keeping with the calibre of the audience. So, your language may just be considered profitable if your object is attained at the close of the day. The most practical way to have a satisfying and productive address is preparation. Make certain to are in ownership of a breathtaking, well – designed address with a lot of information which the crowd will adore.

To spend less, stay away from manufactured hire + company deals.

Don’t overlook, essay isn’t a critique of the novel. The ideal / brilliantly thing essay help about such types of documents is they give a chance to be creative and original. The books additionally discuss publication films which can be digital publications. The writer adopts an exceptionally evocative manner of writing the essay. The author draws another distinction between the wealthy and bad. Every blog author understands that spelling, syntax, a fantastic topic, and the capability to compose a pleasant essay is just not adequate to attract a bunch. The poet applies a little correspondence”i” to reduce the state of the storyteller.

Then we feel secure to extend our trust when they have handed certain checks.

Bravery is among the feature which will decide on a person besides the leftover portion of the people. The simple fact is, it really isn’t challenging to compose one so long as you adhere to a guide. It is, you will need to monitor the shuffles, use multiple spotters counting several tables to discover a popular terrace and so on. What issues is the way considerably some one can offer than take. It should give a student’s view about the essay. Your decision may frequently be as tough to write as the 1st sentence. Conclusively, it might be asserted this is the primary reasons why Mill’s argument of personal liberty could be flawed to some degree, even if it’s believed to be practical. You are going to be surprised to find how several ideas you’ve got on the matter.

Use space that is white and only request one question per point.

While training facing your reflection may not be just much like doing it before a lot of individuals, it offers you a notion of your appearance and operation and enables you to improve on these areas. In cases in this way, questions asked present an outstanding challenge to the presenter and might often be a source of embarrassment. Your difficulty is most likely a bit bigger because you probably are scared of your British. Clarify how you’re going to work out the dilemma.

WoMozHowto Startup Frontier Email in Microsoft Outlook

Compose a summation initially before you create an essay. When it’s easy to compose a superb and well thought – away composition, there are a few basics which should be in every object of article. To show this last stage, imagine you’re composing an argumentative essay and you recognize you do not understand how to compose the previous paragraph. A5 – section essay is a standard, simple, and beneficial essay model for pupils who had love to appear with or enrich their composing skills. Writing an essay isn’t too uncomplicated and it’s critical that the student receives the structure before starting to compose. For a number of, the article might be the most confounding portion of any standardized check. Essay writing suggestions are critical for all of the pupils that lack the capabilities or aren’t assured of their ability to compose quality documents. The IELTS test was created to assess your capacity to convey in English, so ultimately you are unable to report nicely with no large degree of British. If you’re unsure which test fits you subsequently a skilled IELTS coaching organisation will have the opportunity to assist you arrange the appropriate evaluation.

Come up with television, videos or your entire day shows you’ve observed, publications you’ve read.

1 suggestion would be to make sure you are just take the most appropriate evaluation, whether it’s educational or basic instruction, and begin practicing as early as essay writing possible. In the example of the initial 3 countries, to help you to immigrate, work or research there, you will need to take an IELTS test. To put it differently, you don’t wish to get ready for an essay examination merely to find out the test is several selection or vice versa. It actually is as easy as getting a sample examination and finding the teachings. The capability to compose a decent essay is a significant ability essential in school and university years. Within this instance lots of people are failing, perhaps not because of their English skill, but as a consequence of their bad IELTS capacity, or capacity to understand how you can answer queries in the assessment. While this type of exercise copies test writing, and is fairly advantageous in moderation, it’s not suitable as an integral means to educate writing abilities. Say you would like to enrich your writing skills in order that you may send company e mails. Although you might be at an identical IELTS amount you’ll have different strengths and flaws.

Delphi is usually not done in experience-to-face team controls.

Step one will be to attempt the simplest aspect of studying. IELTS readings are generally developed readings for a certain purpose. Your writing has to have a flow. Adhere to some process therefore the writing is more straightforward. All these aid you to pay attention to your own writing. Ordinarily, good nonfiction writing involves a procedure for study and revision, which these tests usually do not permit for. Composition writers provide services in a far more extensive region.

Do you need to assist out? check out how it is performed in this essay: howto patrol recent changes.

1 error many IELTS pupils do make would be to pick the check, with no knowledge of the way the check functions. Before composing the human body, it is vital that you determine whether you are probably to discuss 3 unique thoughts, one in every sentence, or you’re going to be discussing the very same notion. When creating sentences, it’s often advisable to link phrases with each other to describe your argument.

Mozilla L10NFirefox L10n Report – Nightly 55

This is going to be the last of these reports, since Aurora is going away, and Nightly strings will be exposed to localization tools once or twice a week. We’ll work on identifying new formats to keep you up to speed with all the changes happening in localization at Mozilla.

For further information about the change for Aurora, we’ve created these FAQs:

Nightly projects are already available in Pontoon, they will be available shortly also in Pootle.

Today Firefox 55 starts a second cycle on the Nightly channel, and these are the key dates:

  • Beta (54): localization updates for already shipping locales must be completed before May 31.
  • On June 12, Nightly (55) will move directly to the Beta channel.

String breakdown for locales starting to work on Nightly for the first time:

  • Firefox Nightly desktop has 695 added strings (97 obsolete). The actual number of missing strings will be much lower (184), since over 500 of them are a copy of the /preferences folder (see details later). About 4% of the new strings are for Developer Tools.
  • Fennec Nightly has 23 new strings (27 obsolete). 8 new strings are Fennec-only (in /mobile).

Noteworthy Changes

These are some of the interesting changes introduced in the last cycle.


Preferences are going to be heavily reorganized. 13 existing files (513 strings) have been copied from /preferences to /preferences-old as part of merge day migration scripts.

Note that “new preferences” and “old preferences” have already started to diverge. In some cases there are small changes, like final colon or ellipses removed; your tool’s translation memory should help for these (make sure to double check the suggested translation).

In some other cases, you will have to translate new strings twice, since the new preferences are currently only enabled in Nightly (hidden behind a preference), and might not move to Beta with Firefox 55.


Searchplugins are now managed similarly to desktop. The entire mobile/searchplugins folder is not used anymore and has been removed as part of merge day.

Common issues


This is a string destined to be displayed in the hamburger menu (on Nightly): \u00ad is a special character used to tell the system to disable hyphenation.

You should *not* keep that character in your translation, unless that’s what you plan to do (disable automatic hyphenation, and only after testing on as many platforms as possible). Make sure to test this string, and shorten it if necessary, because there’s space only for 3 lines of text in these buttons.

New Languages

A few new languages are moving to Beta (and later release) with Firefox 54:

  • Burmese (my) for desktop.
  • Bulgarian (bg) and Kabyle (kab) for Android.

Congratulations to all the teams involved for reaching this goal.

If you want to know more about the process of releasing new locales, or if you speak one of these languages and want to know how to help the localization teams, please get in touch.

To all localizers: Thanks again for all the time and effort you put in localizing and promoting Firefox in your language.

about:communityFirefox 53 new contributors

With the release of Firefox 53, we are pleased to welcome the 63 developers who contributed their first code change to Firefox in this release, 58 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:

Air MozillaMozilla and Stanford Law Panel on Intellectual Property Law and the First Amendment

Mozilla and Stanford Law Panel on Intellectual Property Law and the First Amendment Join us for a Mozilla and Stanford Program in Law, Science & Technology hosted panel series about the intersection between intellectual property law and the...

Mozilla Add-ons BlogAdd-ons Update – 2017/04

Here’s the state of the add-ons world this month.

The Road to Firefox 57 (recently updated) explains what developers should look forward to in regards to add-on compatibility for the rest of the year. Please give it a read if you haven’t already.

The Review Queues

In the past month, 1,209 listed add-on submissions were reviewed:

  • 984 (81%) were reviewed in fewer than 5 days.
  • 31 (3%) were reviewed between 5 and 10 days.
  • 194 (16%) were reviewed after more than 10 days.

There are 821 listed add-ons awaiting review.

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


The blog post for 53 is up and the bulk validation was run. Here’s the post for Firefox 54 and the bulk validation is pending.

Multiprocess Firefox is enabled for some users, and will be deployed for most users very soon. Make sure you’ve tested your add-on and either use WebExtensions or set the multiprocess compatible flag in your add-on manifest.

As always, we recommend that you test your add-ons on Beta to make sure that they continue to work correctly. You may also want  to review the post about upcoming changes to the Developer Edition channel.

End users can install the Add-on Compatibility Reporter to identify and report any add-ons that aren’t working anymore.


We would like to thank the following people for their recent contributions to the add-ons world:

  • bkzhang
  • Aayush Sanghavi
  • saintsebastian
  • Thomas Wisniewski
  • Michael Kohler
  • Martin Giger
  • Andre Garzia
  • jxpx777
  • wildsky

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

The post Add-ons Update – 2017/04 appeared first on Mozilla Add-ons Blog.

hacks.mozilla.orgSimplifying Firefox Release Channels and Improving Developer Edition’s Stability

Streamlining our release process and quickly getting stable new features to users and developers is a priority for Firefox. Taking a close critical look at our release channels, it became clear that Aurora was not meeting our expectations as a first stabilization channel.

Starting on April 18, the Firefox Aurora channel will stop updating, and over the course of the next several months, the Aurora build will be removed from the train release cycle. Developer Edition will be based on the Beta build. Developer Edition users will maintain their Developer Edition themes, tools, and preferences, will keep their existing profile, and should not experience any disruption.

This change benefits developers in several ways:

  • Clearer choices in pre-release channelsNightly for experimental features and Developer Edition/Beta for stability.
  • Higher quality and more stable environment for Developer Edition users.
  • Faster release cycles for platform features. (Benefits everyone!)

Here’s the timeline: On April 18, code for Firefox 54 will move from Aurora to Beta as usual, while Firefox 55 will remain on Nightly for a second cycle in a row (a total of 14 weeks). On the next merge day, June 12, Firefox 55 will move directly from Nightly to Beta. Between April and June, Firefox Aurora on Desktop (54) will continue to receive updates for critical security issues and the Aurora and Developer Edition populations will be migrated to the Beta update channel. On Android, Aurora users will be migrated to Nightly.

Aurora was originally created in 2011 to provide more user feedback after Firefox shifted from version 5 to the high-speed release cycle. Today, in 2017, we have more modern processes underlying our train model, and believe we can deliver feature-rich, stable products without the additional 6-8 week Aurora phase.

A staged rollout mechanism, similar to what we do today with Release, will be used for the first weeks of Beta. Our engineering and release workflow will continue to have additional checks and balances rolled out to ensure we ship a high quality release. A new feature will merge from Nightly to Beta only when it’s deemed ready, based on preestablished criteria determined by our engineering, product and product integrity teams. If features are not ready, they won’t migrate from Nightly to Beta.

New tools and processes will include:

  • Static analyzers integrated as part of the workflow, in order to detect issues during the review phase. They will be able to identify potential defects while minimizing technical debt.
  • Code coverage results will be used to analyze the quality of the test-suite and the risk introduced by the change.
  • The ability to identify potential risks carried by changes before they even land by correlating various data sources (VCS, Bugzilla, etc.) in order to identify functions where a modification is more likely to induce a regression.
  • Monitoring crash rates, QE’s sign offs, telemetry data and new regressions to determine overall Nightly quality and feature readiness to merge to Beta.

For a deeper dive into transition details, please see the Mozilla Release Management blog for in-depth answers to the most common questions about this change.

Open Policy & AdvocacyShould Patent Law Be a First Amendment Issue?

On Monday April 17th, Mozilla and Stanford Law are presenting a panel about intellectual property law and the First Amendment.

We’ll talk about how IP law and the First Amendment intersect in IP disputes, eligibility tests, and the balance of interests between patent holders and users.

Judge Mayer’s concurring opinion last year in Intellectual Ventures I LLC v. Symantec Corp, has put the debate over the First Amendment and boundaries of patent protection back in the spotlight.

Our all star panel will discuss both sides of the debate.


Dan Burk, professor of law at UC Irvine School of Law.

Sandra Park, Senior Staff Attorney for the ACLU Women’s Rights Project.

Robert Sachs, a partner at Fenwick & West LLP, a leading Intellectual Property law firm.

Wendy Seltzer, Strategy Lead and Policy Counsel for the World Wide Web Consortium.

Elvin Lee, Product and Commercial Counsel at Mozilla, will moderate the event.

We’ll also hear opening remarks from professor Mark A. Lemley, who serves as the Director of the Stanford Program in Law, Science and Technology.

Topics and questions we’ll cover

  • Does patent law create conflicts with the First Amendment?
  • Do the subject-matter eligibility tests created by the Supreme Court (e.g., Alice) mitigate or impact any potential First Amendment issues?
  • How does the First Amendment’s intersection with patent law compare to other IP and regulatory contexts?
  • What are the different competing interests for IP owners and creators?
  • Registration of ‘offensive’ marks is currently being reviewed in light of the First Amendment. Are there any parallels to the grant of patent protection by the USPTO, or subsequent enforcement?


AirMozilla and Mozilla’s Facebook page will carry the livestream for this event. We hope you’ll tune in.

The post Should Patent Law Be a First Amendment Issue? appeared first on Open Policy & Advocacy.

Mozilla Add-ons BlogApply to Join the AMO Feature Board

Help people discover add-ons that make this browser do glorious things.

Do you have an eye for awesome add-ons? Can you distinguish a decent ad blocker from a stellar one? Interested in making a huge impact for millions of Firefox users? If so, please consider applying to join AMO’s Feature Board.

The board is comprised of a small group of community contributors who help select each month’s new featured add-ons. Every board serves for six months, then a new group of community curators take over. Now the time has come to assemble a new group of talented contributors.

Anyone from the add-ons community is welcome to apply: power users, theme designers, developers, and evangelists. Priority will be given to applicants who have not served on the board before, followed by those from previous boards, and finally from the outgoing board.

This page provides more information on the duties of a board member. To be considered, please email us at amo-featured [at] mozilla [dot] org and tell us how you’re involved with AMO and why you think you’d make a strong content curator. The deadline for applications is Friday, April 28, 2017 at 23:59 PDT. The new board will be announced shortly thereafter.

We look forward to hearing from you!

The post Apply to Join the AMO Feature Board appeared first on Mozilla Add-ons Blog.

Air MozillaReps Weekly Meeting Apr. 13, 2017

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

hacks.mozilla.orgReplace Bootstrap Layouts with CSS Grid

In March, Mozilla released Firefox 52, which added support for CSS Grid Layout. If you aren’t familiar with CSS Grid, it is a two-dimensional layout system for the web that allows us to create layout patterns natively in the browser. This means we can easily recreate familiar grids using just a few lines of CSS. It also means we can do a whole lot with CSS and layouts that wasn’t possible before… but more on that in a bit.

A quick note: This post isn’t meant to be a comprehensive primer for CSS Grid, and assumes a basic familiarity with CSS Grid. If you haven’t already, I’d recommend checking out the fantastic CSS Grid Layout page on MDN.

Layouts on the web have always been tricky. When the web was first introduced, there was no method for layouts. Then came tables (in tables, in tables, in tables). It was hackish and weird, but it worked. When CSS was introduced in the late 90s, developers were able to start using divs and floats for their designs and layouts. This eventually led to frameworks and grid systems that helped make sense of all of the “gotchas” like clearing floats, negative margins, responsive design and more. And that’s how things have been for years now. There are thousands of grid systems, but they are all, more or less, the same.

Now that CSS Grid Layout is a reality, I wanted to see what it would take to replace an existing grid framework with CSS Grid. For this experiment, I chose the popular Bootstrap framework.

I started by creating a basic site using the Bootstrap grid:

View it on CodePen.

So let’s break this down and convert it to use CSS Grid.

In Bootstrap, the .container class wraps everything and sets the width constraints. It also adds a padding to the left and right edges and centers everything. There isn’t much to change here. Just like with Bootstrap, the container class can be handy to use with CSS Grid. I recreated it like so:

.container {
    margin-left: auto;
    margin-right: auto;
    padding-left: 15px;
    padding-right: 15px;

We can also add responsive breakpoints by adding the following:

@media (min-width: 992px) {
    .container {
        width: 970px;

Bootstrap uses the .row class to wrap columns and provide a negative margin on the left and right to negate the padding added by individual columns. Hacks like negative margins are no longer needed with CSS Grid, but if you’ve read the documentation, you’ll know that CSS Grid requires a grid container. The .row class is the perfect place to do this. Let me show you what I did, and then we’ll break it down.

.row {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    grid-gap: 20px;

display: grid creates the grid container.

The grid-template-columns property defines the columns for the grid. You can use spaces to define each column individually, but here we utilize the repeat notation to define 12 equal-sized columns. 1fr refers to the width of the individual column. MDN defines the fr unit as a new unit which “represents a fraction of the available space in the grid container.” You can read more about fr units on MDN. You can also read more about the grid-template-columns property.

Finally, the grid-gap property is a shorthand property that defines both the amount of space between the columns and between rows of columns. Think of it as our gutter. You can read more about grid-gap here.

Now, all that’s left are the column classes. Bootstrap uses column classes such as .col-md-6 or .col-lg-8 to determine the number of columns a div should span. It also floats the div and adds padding to the left and right to create gutters between the columns. Recreating these classes is incredibly easy thanks to the .grid-column shorthand property. For example, if we wanted to recreate the .col-md-6 class, we can use the following:

@media (min-width: 992px) {
    .col-md-6 {
        grid-column: span 6;

Simple, right? No floats. No padding. It just works. The grid-column shorthand specifies an item’s size and location. We can use span to indicate that this particular item should span six columns. The gutter is automatically taken care of because of the wrapper’s grid-gap property. You can learn more about the grid-column property here.

So what happens when you put it all together? Well, the website looks exactly the same, but we are able to completely remove the Bootstrap dependency and use native CSS Grids.

Check out the updated website on CodePen.

This type of experiment is a fun learning exercise, but it can also be dangerous. To borrow a line from wise philosopher Jeff Goldblum:

“You … were so preoccupied with whether or not you could, you didn’t stop to think if you should.”

We don’t want to limit CSS Grid by shoehorning it into a syntax that will limit its potential. We were able to easily recreate the Bootstrap grid, but CSS Grid is so much more powerful than any grid system that came before it. That’s because it is a web-native solution built from the ground up.

We are no longer locked into 12 column grids that float from left to right. Do you want to place elements in precise locations on the grid, independent of their HTML source order? Go for it. Do you want to create items that span multiple columns and rows? Not a problem. Check out this demo that Mozilla’s Craig Cook created to showcase various layout patterns. Try recreating some of those layouts using Bootstrap (hint: not possible). We are just scratching the surface of what CSS Grids can do.

If you want to learn more about CSS Grid, check out the following resources:

Mozilla CSS Grid Demo
CSS Grid documentation on MDN

Air MozillaMozilla Science Lab April 2017 Bi-Monthly Community Call

Mozilla Science Lab April 2017 Bi-Monthly Community Call Every two months, the Mozilla Science Lab hosts a Community Call, gathering together scientists from our cool contributor pool to chat about what's new in...

Air MozillaLocalization Community Bi-Monthly Call, 13 Apr 2017

Localization Community Bi-Monthly Call These calls will be held in the Localization Vidyo room every second (14:00 UTC) and fourth (20:00 UTC) Thursday of the month and will be...

Air MozillaThe Joy of Coding - Episode 98

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

Air MozillaThe Joy of Coding - Episode 97

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

Mozilla Add-ons BlogAMO Has a New Look on Android

The mobile version of (AMO) recently debuted a new appearance. It’s not a complete redesign, but rather the start of an iterative process that will take months to fully transform AMO for mobile. The new look is also a preview of what’s to come for desktop AMO. Once the mobile design elements mature, we’ll apply the same concepts to desktop, likely sometime later this year.

“Parity between the two platforms is a high priority,” says Sr. Visual Designer Philip Walmsley. “We’re using mobile to test and learn what works, and uplifting that into the desktop designs. And anything new we discover along the way on desktop will be designed back into mobile, as well.”

Our main goal was to make browsing add-ons more intuitive and effortless. To that end, the new design presents content in a cleaner, more streamlined manner. There are fewer buttons to tap, but the ones that remain are bold and clear.

Illustrated in the images above, the homepage displays a subset of categories represented primarily though iconography… The density of information on an add-on detail page is more balanced now, with only essential information in clear view… and theme previews are bigger and screenshots more prominent.

There’s a bit more color, too. In general much of the aesthetic was in need of a modernizing overhaul. These recent changes are just the start. Plenty more to come. If you’re exploring the new AMO on your Android device and spot a bug, please feel free to let us know about it.

The post AMO Has a New Look on Android appeared first on Mozilla Add-ons Blog.

Air MozillaMartes Mozilleros, 11 Apr 2017

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

The Mozilla BlogMozilla Awards $365,000 to Open Source Projects as part of MOSS

At Mozilla we were born out of, and remain a part of, the open source and free software movement. Through the Mozilla Open Source Support (MOSS) program, we recognize, celebrate, and support open source projects that contribute to our work and to the health of the Internet.

Since our last update

We have provided a total of $365,000 in support of open source projects through MOSS.

MOSS supports SecureDrop with a quarter of a million dollars

The biggest award went to SecureDrop, a whistleblower submission system used by over 30 news organizations, maintained by the non-profit Freedom of the Press Foundation.

The $250,000 given represents the largest amount we’ve ever provided to an organization since launching the MOSS program. It will support the creation of the next version of SecureDrop, which will be easier to install, easier for journalists to use, and even more secure.

Additional awards

We have also made awards to other projects we believe will advance a free and healthy Internet:

  • $10,000 to the libjpeg-turbo project, the leading implementation of JPEG compression for photos and similar images;
  • $25,000 to LLVM, a widely-used collection of technologies for building software;
  • $30,000 to the LEAP Encryption Access Project, a nonprofit focusing on giving Internet users access to secure communication;
  • $50,000 to Tokio, a Rust project to bring easy-to-use asynchronous input and output to the language.

We believe in encouraging growth and partnerships with our awardees. Where we can, we look to structure awards in creative ways to try and unlock additional value. Here are two examples of how we did that in this cycle:

  • The OSVR project is a virtual and augmented reality platform that Mozilla uses in Firefox. They came to us with a proposal to improve their rendering pipeline; we offered to put up half of the money, if they can encourage their partner companies to provide the other half. They have until the end of June 2017 to make that happen, and we hope they succeed.
  • The Hunspell project maintains the premier open-source spell-checking engine. They proposed to rewrite their software in C++ using a more modern, streaming, embeddable design. We accepted their proposal, but also offered more funds and time to rewrite it in Rust instead. After considering carefully, the Hunspell team opted for the C++ option, but we are happy to have been able to offer them a choice.

Under the Secure Open Source arm of MOSS

We ran a major joint audit on two codebases, one of which is a fork of the other – ntp and ntpsec. ntp is a server implementation of the Network Time Protocol, whose codebase has been under development for 35 years. The ntpsec team forked ntp to pursue a different development methodology, and both versions are widely used. As the name implies, the ntpsec team suggest that their version is or will be more secure. Our auditors did find fewer security flaws in ntpsec than in ntp, but the results were not totally clear-cut.

Security audits have also been performed on the curl HTTP library, the oauth2-server authentication library, and the dovecot IMAP server.

The auditors were extremely impressed with the quality of the dovecot code in particular, writing: “Despite much effort and thoroughly all-encompassing approach, [we] only managed to assert the excellent security-standing of Dovecot. More specifically, only three minor security issues have been found in the codebase.”

Sometimes, finding nothing is better than finding something.

Applications for “Foundational Technology” and “Mission Partners” remain open, with the next batch deadline being the end of April 2017. Please consider whether a project you know of could benefit from a MOSS award.  Encourage them to apply! You can also submit a suggestion for a project which might benefit from an SOS audit.

The post Mozilla Awards $365,000 to Open Source Projects as part of MOSS appeared first on The Mozilla Blog.

Mozilla VR BlogglTF Workflow for A-Saturday-Night

glTF Workflow for A-Saturday-Night

In A-Saturday-Night, we used the glTF format for all of the 3D content. glTF (gl Transmission Format) is a new 3D file format positioning itself as "the JPEG of 3D" for the Web. glTF has features such as JSON descriptions of entire scenes included binary-encoded data (e.g., vertex positions, UVs, normals) that requires no intermediate processing when uploading to GPU.

glTF exporters and converters are fairly stable, but there are still some loose ends and things that work better than other (by the way, Khronos just hired somebody to improve the Blender exporter). In this post, I will explain which workflow was the most satisfactory for me while producing the assets for A-Saturday-Night. And I’ll share some tips and tricks along the way. That's not to say this is the one way to work with glTF; it’s just the way we’re using it today.

We use Blender for creating the assets and COLLADA as an intermediate format, and then converting them to glTF using collada2gltf. You can grab the collada2gltf binary pre-release builds at Note that glTF v2.0 is here! Khronos is urging everyone to migrate to v2.0 quickly as there is no backwards compatibility to v1.0. A v2.0 branch in collada2gltf for updating to glTF 2.0 is almost completed.

glTF Workflow for A-Saturday-Night

Once I have the COLLADA file, I can convert it to glTF with collada2gltf:

collada2gltf.exe -f <assetname>.dae -o <assetname> -k  

This will generate two files: assetname.gltf and assetname.bin. Copy both of them to your assets folder.

The -k command-line flag defines the glTF output file to use standard materials (e.g., constant, lambert, phong) instead of translating them to GLSL shaders. This is important right now since three.js has trouble loading glTF shaders (for example, issue #8869, issue #10549, and issue #1110). It also does not make sense to use fragment and vertex shaders for standard Lambert or Phong materials.

Then in our A-Frame scene, we can import the glTF file:

    <a-asset-item id="head" src="head.gltf"></a-asset-item>
  <a-entity gltf-model="#head"></a-entity>

I couldn’t find a way to export Constant Materials from Blender, found as the "Shadeless" checkbox in Blender’s "Material" tab. For now, the only way I know is to edit the .gltf file by hand.

Replace the material's "technique". This example replaces "PHONG" with "CONSTANT", but we could overwrite Lambert materials as well. Replace this:

"KHR_materials_common": {
    "doubleSided": false,
    "jointCount": 0,
    "technique": "PHONG",
    "transparent": false,
    "values": {
        "ambient": [
        "diffuse": "texture_asset",
        "emission": [
        "shininess": 50,
        "specular": [

with this:

"KHR_materials_common": {
    "technique": "CONSTANT",
    "values": {
      "emission": "texture_asset"

If our constant material does not have any texture, we can put define a color as an [r,g,b,a] value instead.

Blender Tips

Here are some steps we can do in Blender before exporting to COLLADA that help to get everything okay:

  • Keep models and their textures in the same folder (we can separate different assets or kinds of assets in different folders)
  • Use relative paths in our textures: //texture.jpg instead of path/to/myproject/texture.jpg
  • In textures, specify the image nodes with the same name as the image file (without the extension)

glTF Workflow for A-Saturday-Night

To make sure our normals are exported okay and hard edges are preserved, in the "Object Data" tab, click on the "Add Custom Split Normals Data" button. Also make sure that the "Store Edge Crease" option is unchecked (as it is by default).

Before: glTF Workflow for A-Saturday-Night

After: glTF Workflow for A-Saturday-Night

  • In case something fails, we can try exporting to OBJ and importing it back to Blender:

  • Export the asset to OBJ

  • Create a new clean scene in Blender and import the OBJ
  • Export it to COLLADA

  • Below are my COLLADA exporter options, for simple assets (i.e., no animation, rigging nor hierarchies):

glTF Workflow for A-Saturday-Night

Batch Convert with batchgltf

If we have a lot of models to convert, perhaps in different folders, calling collada2gltf for each one is inconvenient. So I made a tiny tool for batch converting .dae files to .gltf using collada2gltf.

glTF Workflow for A-Saturday-Night

The batch converter will scan all input folders for .dae files, convert them to .glTF, and save the result in the specified output folders. We can either have .glTFs all saved in the same folder or in separate folders.

You can download the batchgltf converter from Take a look at the README for requirements and instructions. can also work from the command line, so we could include it in a typical Webpack/Gulp workflow.

I will try to have it updated with the latest collada2gltf version while adding additional 3D formats. If you have any problem or would like to collaborate on this little tool, feel free to post an issue or send a pull request! I cannot guarantee it is free of bugs; use with care and keep a backup of your files ;)

By the way, you can find all the A-Saturday-Night assets on GitHub, in both glTF and OBJ formats.

hacks.mozilla.orgHacking & Contributing to Servo On Windows

Like many cross-platform open source projects, Servo, the high-performance browser engine project written in Rust, has always been a bit of a nightmare to build and run on Windows. Luckily, thanks to the Rust team and Servo community, most of the issues have been squashed and we can now launch it with nothing more than just PowerShell, plus with a full stack of native Windows libraries and tool usage.

Why did this take so long to happen?

A brief history..

Back in 2013 when Servo development started, it only ran on Linux systems and OSX. This was largely due to the developers of Servo being on those operating systems.

As a byproduct, Servo ended up with many Linux-based dependencies (make, gcc, etc.), the build system would make hard-coded calls to /bin/:/usr/bin/[etc]. Migrating these to cross-platform took time. Servo engineer Lars Bergstrom explains:

“Certainly font support and build system stuff has taken the most effort. In general, making sure that all of the hundreds of crates in the Servo dependency graph not only build but work correctly on Windows has taken a lot of effort.

A lot of things (including Servo) were also easy to get over on MinGW with a “unixy” Windows experience, but getting a true, native Windows experience using MSVC took a lot longer.

A year later, the quick and easy solution to running Servo on Windows was to emulate a Linux environment, so this led to arcane setup instructions using msys and mingw on Windows. Although Servo would build, it seemed like more of a temporary solution.

A Windows branch of Servo was created, with many build steps fixed over time; and modules, which used only Linux components, stubbed out. One by one, we were able to tick off the incompatibilities.

There’s been a push by a few of us, with a lot of help from Vlad, to have Servo properly building on Windows and using the Microsoft Visual C++ compiler (MSVC) for some time. And finally we’re there!

So how to begin developing? For these examples I will be using Windows 10 x64.


Let’s get started

You don’t have to do your editing in here, but Visual Studio (VS) allows us to actually debug the binary. We can pause at any moment and edit breakpoints (more on this later).

Let’s go to and download “Visual Studio 2017 Community”.

Once it downloads, and you get the options to come up, navigate to the individual components tab and select:

  • C++/CLI support
  • Profiling Tools
  • Visual C++ tools for Cmake
  • VC++ 2017 v141 toolset

We will need to add the build tools VS has given us to our system path.

Navigate to environment variables, and add this to the Path variable:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.10.25017\bin\HostX64\x64`

While you’re here you should set a new environment variable, VisualStudioVersion to 15.0 (yes 15.0 even though it’s VS 2017). This enables cmake-using crates (libssh2-sys, etc) to build.

We’re done here for now.


rustup will manage our Rust installation and let us switch between releases, plus nightly and stable branches. It makes it very easy to update. We will be needing nightly later, so rustup is the best way to start.

Go to and download the installer, it will mention installing the Visual C++ build tools, but VS should have already given us this stuff from earlier, so just proceed.

Press 1 and follow the default installation.

Install rust-src

Open up PowerShell: You should now have Rust installed, you can try it out with:

$ rustc --version

Our next task is to install the rust-src, this helps VS find the source it’s looking for. (This is also a helpful step for racer support.)

Before we go ahead though, we should switch to nightly. Nightly gives us Natvis.

$ rustup default nightly
$ rustup component add rust-src

You will now have some files located at:


Although not useful for now, you’ll need this path for Optional: Stepping into the standard Library further down.

Add Natvis for Rust

Natvis files gives Visual Studio-friendly visualisations of native objects in Rust. The Rust team have added Vec, LinkedList, VecDeque, String, Option plus many more Natvis visualizations.

Here’s how to use them:


Copy the .natvis files in here, and place them in

C:\Users\[User]\Documents\Visual Studio 2017\Visualizers

Don’t worry if Visualizers isn’t there, you can create this directory.

Building Servo

I won’t go too much into setting up Servo here, as that’s covered in:–mingw

Build the latest version using --dev, I’m just running

$ mach.bat build --dev

in PowerShell here. It’s important you use the --dev option as debugging will not work without it.

Back to Visual Studio

Now that we have Servo built, let’s run it.

You can open up Visual Studio, File, Open, Project/Solution, change “All Project Files” to “Exe project files” and navigate to your servo.exe binary, usually in target/debug/servo.exe.

If you need to pass in arguments you can right click Servo in the solution explorer on the right. Once ready, you can click start at the top.

This should load up Servo and you may see some fancy memory profiling in the background in VS. You can pause at any point and it should land in the code where it’s paused. If this doesn’t happen make sure that Thread: is set to “Main Thread”.

For example, if the browser is idle and we pause, we may land on this line:


Optional: Stepping into the standard Library

Remember the rust-src we installed earlier? Well this is useful if we want to see what the standard library is doing, otherwise the debugger may moan when you click on std::* functions. So in order to tell VS about rust source code we right click on the solution name on the right “Solution ‘servo’” and select properties, then inside “Common Properties/Debug Source Files” add that path to the top window.

Setting breakpoints

This is straightforward too, you can drag any Rust file from the project into VS and set a breakpoint. Click start again and the program should stop at that point. You can then step in and out of functions or use continue and breakpoints to inspect the execution of your program. You can see the stack trace and variables within scope at the bottom too!

If everything went to plan, you should have something similar to this.

Visual Studio loading Servo


So you want to contribute but not sure where to start? has some great first-PR tickets, plus there are still quite a few easy tickets outstanding too.

Air MozillaReps Weekly Meeting Apr. 06, 2017

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

The Mozilla BlogIt’s Time for Open Citations

Mozilla is signing on to the Initiative for Open Citations (I4OC). We believe open data is integral to a healthy Internet — and to a healthy society.


Today, Mozilla is announcing support for the Initiative for Open Citations (I4OC), an effort to make citation data from scholarly publications open and freely accessible.

We’re proud to stand alongside the Wikimedia Foundation, the Public Library of Science and a network of other like-minded institutions, publishers and researchers who believe knowledge should be free from restrictions. We want to create a global, public web of citation data — one that empowers teaching, learning, innovation and progress.

Currently, much of the citation data in scholarly publications is not easily accessible. From geology and chemistry journals to papers on psychology, the citations within are often subject to restrictive and confusing licenses which limit discovery and dissemination of published research. Further, citation data is often not machine readable — meaning we can’t use computer programs to parse the data.

Mozilla understands that in some cases, scholarly publications themselves must be protected or closed in order to respect proprietary ecosystems and business models. But citations are snippets of knowledge that allow everyone to engage with, evaluate and build upon ideas. When citations are inaccessible, the flow of knowledge stalls. Innovation is chilled. The results are damaging.

At Mozilla, we believe openness is a core component of a healthy Internet and a healthy society. Whether open citations or open source code, openness allows people to learn from each other, share ideas and foster collaboration.

I4OC details

I4OC seeks to uphold this openness in the realm of scholarly research. Specifically, I4OC calls for citation data that is structured, separable and open. That means:

Structured ensures citation data is presented in a universal, machine-readable format. This empowers computer programs to unpack and draw connections between different research areas.

Separable ensures citation data can be accessed and analyzed without the need to comb through entire journal articles or books. This allows people to navigate research easily, the same way people navigate the web.

Open ensures citation data is free to access and free to reuse. This allows anyone — students, teachers, entrepreneurs, autodidacts — to benefit.

I4OC is asking scholarly publishers to deposit their citations in Crossref and enable reference distribution. Crossref is a nonprofit organization developing infrastructure and services for scholarly publishers.

We’re already seeing progress. Since the start of I4OC in 2016, the percentage of publishers sharing citations has jumped from 1% of Crossref’s 35 million articles (that include citation data) to over 40%.

That’s heartening, but there’s still a long way to go. We want that number to reach 100%. We want openness to become the norm, not the exception. That’s why Mozilla is supporting I4OC. And that’s why Mozilla is committed to teaching and defending openness online. Want to learn more? Read Mozilla’s Internet Health Report to see how openness makes the Internet exceptional. And sign our petition to open up access to federally-funded research in the U.S.

Photo: Sofia University library // Anastas Tarpanov // CC BY-SA 2.0

The post It’s Time for Open Citations appeared first on The Mozilla Blog.

Mozilla IndiaIndia uses Firefox Nightly Campaign: 15 Events in 60 Days!!

Yet another campaign!! And excitement galore.

So hold your breath. Here comes the exciting news for all the Mozillians. With an aim to increase Firefox nightly usage in India, we’re bringing in a new campaign called “India uses Firefox Nightly“.

Have you tried Firefox Nightly yet, download it now and check yourself. Very few people in India actually know about Firefox Nightly. So, we’ve taken an initiative to run a pilot campaign for Firefox Nightly throughout India just to make our Mozilla India community aware and educate on the usefulness of this campaign.

Forget not, India has a fairly big Mozilla community comprising of dedicated students, developers and evangelists who are really passionate about Mozilla. For next two months, starting from May probably, we’ll hold 15 different events in 15 different cities. All the events will be coordinated and organized by the local Mozilla community.

We invite students, community members, developers, open source evangelists to spread the word through social media using Hashtag: #INUsesFxNightly and simultaneously run this campaign successfully. As part of the online campaign, the propagation should be made through social media (Facebook, Twitter, Instagram), blogs, promotional snippets, email, mailing list, website news items etc. For offline activities, any community member or open source enthusiast can host an event in their area or join any nearby event to help organizers. The event can be held at a startup company, school, universities, community centres, home, cafés.


Firefox Nightly is an attempt to decide what the future of Firefox will be for hundreds of millions of people. Having a healthy and strong technical community using and testing Nightly is a great way to easily get involved in Mozilla by providing a constant feedback loop to developers. Here Mozillians will get ample scope to test lots of pre-release features.

So, it needs a lot of enthusiasm and courage to take the challenge of making 1000 Nightly installed, which is our goal. We want a total of 30 Mozillians (2 per event) to take charge of 15 events ensuring around 500 attendees. We need many core campaign volunteers who will help us to run this initiative smoothly. If you are interested please join us here.

Inviting Contributors to join hangouts call to know about @mozillain uses Firefox Nightly share your preferred time till 7 April, 13:00 IST at

Doesn’t it sound interesting? More details will come soon. Stay tuned!

This is a guest post by Subhasis Chatterjee, who has been actively promoting Mozilla and its activities since last one and half years contributing in the areas of Web Literacy, Advocacy, Localization, Mozilla Campus Campign and PR &amp; Branding, He also runs a Mozilla Club.

Air MozillaThe Joy of Coding - Episode 96

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

QMOFirefox 53 Beta 8 Testday Results

Hello Mozillians!

As you may already know, last Friday – March 31st – we held a new Testday event, for Firefox 53 Beta 8.

Thank you all for helping us making Mozilla a better place – P Avinash Sharma and Surentharan.R.A.

From Bangladesh team: Nazir Ahmed Sabbir, Asiful Kabir Heemel, Iftekher Alam, Md.Majedul islam, sabrina joedder silva, Raihan Ali, Md Rakibul Islam, Anmona Mamun Monisha, Shah Md. Rifat, Sufi Ahmed Hamim, Rezwana Islam Ria, Maruf Rahman, Saima Sharleen, Kazi Nuzhat Tasnem, Tanvir Ashik, Humayra khanum, Azad, Foysal Ahmed, Tazin Ahmed, Md. Almas Hossain, Fatima Moon, Nusrat jahant, Sayed Ibn Masud, Roman Syed, Md. Mujtaba Asif, Abid Rahman, Khabirul Basar Tonmoy, sayed mahmud, Md Maruf Hasan Hridoy, Md Tanbiur Rahman, MD. RAHIMUL ISLAM, Touhidul Islam Rafi, Tanvir Rahman, Anika Alam Raha, Abu Jafar Al Mahfuz and MD. ARIFUL ISLAM SAIKAT.

From India team: Surentharan.R.A, Vibhanshu Chaudhary, Monesh B, subash, Vinothini.K, Fahima Zulfath A, P Avinash Sharma, varun tiwari, NAGARAJ V and harithaksankari.


– several test cases executed for the Compact Themes, Audio Compatibility and Video Compatibility features.

– 3 bugs verified: 90259613243561325849

– 1 new bug filed: 1353059.

Again thanks for another successful testday! 🙂

We hope to see you all in our next events, all the details will be posted on QMO!

Mozilla Add-ons BlogAdd-on Compatibility for Firefox 54

If you haven’t yet, please read our roadmap to Firefox 57.

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


  • Remove -moz-appearance. This doesn’t apply to CSS sheets loaded using a chrome:// URL, but it does affect inline CSS styles in XUL and JavaScript code.

XPCOM and Modules


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

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

The post Add-on Compatibility for Firefox 54 appeared first on Mozilla Add-ons Blog.

Web Application SecurityMozilla Releases Version 2.4 of CA Certificate Policy

Mozilla has released version 2.4.1 of Mozilla’s CA Certificate Policy and sent a CA Communication to inform Certification Authorities (CAs) who have root certificates included in Mozilla’s program about new program requirements. Mozilla’s CA Certificate Program governs inclusion of root certificates in Network Security Services (NSS), a set of open source libraries designed to support cross-platform development of security-enabled client and server applications. The NSS root certificate store is not only used in Mozilla products such as the Firefox browser, but is also used by other companies and open-source projects in a variety of applications.

The changes of note in Mozilla’s CA Certificate Policy are as follows:

  • In addition to audit statements, the CP and CPS documents need to be submitted to Mozilla each year.
  • As of June 1, 2017, the audit, CP, and CPS documents must be provided in English, translated if necessary.
  • All submitted documentation must be openly licensed (see the policy for the exact options and terms).
  • Version 2.4 of Mozilla’s CA Certificate Policy incorporates by reference the Common CCADB Policy and the Mozilla CCADB Policy.
  • The new Common CA Database (CCADB) Policy makes official a number of existing expectations regarding the CCADB.
  • The applicable versions of some audit criteria have been updated.
  • There are additional requirements on OCSP responses.
  • 64 bits of entropy is required in certificate serial numbers.

The differences in Mozilla’s CA Certificate Policy between versions 2.4 and 2.3 (published December 2016), and between versions 2.4 and 2.2 (published July 2013) may be viewed on Github. Version 2.4.1 contains exactly the same normative requirements as version 2.4 but has been completely reorganized.

The CA Communication has been emailed to the Primary Point of Contact (POC) for each CA in Mozilla’s program, and they have been asked to respond to 14 action items. The full set of action items can be read here. Responses to the survey will be automatically and immediately published via the Common CA Database.

In addition to responding to the action items, we are informing CAs that we are instituting a program requirement that they follow discussions in the forum, which includes discussions about upcoming changes to Mozilla’s CA Certificate Policy, questions and clarification about policy and expectations, root certificate inclusion/change requests, and certificates that are found to be non-compliant with the CA/Browser Forum’s Baseline Requirements or other program requirements. CAs are not required to contribute to those discussions, only to be aware of them. However, we hope CAs will participate and help shape the future of Mozilla’s CA Certificate Program.

With this CA Communication, we re-iterate that participation in Mozilla’s CA Certificate Program is at our sole discretion, and we will take whatever steps are necessary to keep our users safe. Nevertheless, we believe that the best approach to safeguard that security is to work with CAs as partners, to foster open and frank communication, and to be diligent in looking for ways to improve.

Mozilla Security Team

The post Mozilla Releases Version 2.4 of CA Certificate Policy appeared first on Mozilla Security Blog.

Air MozillaWebdev Extravaganza: April 2017

Webdev Extravaganza: April 2017 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. This...

hacks.mozilla.orgHTML5 Games Workshop: Make a platformer game with JavaScript!

I have always wanted to run a game development workshop, and some weeks ago, thanks to AdaJS in Barcelona, I finally got my chance.

Best news? The materials that I created are available online! And you can use them to guide yourself or to design a game development workshop of your own.

The content I cover includes:

  • Setting up your machine to develop games with Phaser and JavaScript.
  • Loading the assets (images, audio files, etc.) you’ll use in your game.
  • Rendering animated sprites.
  • Getting the players’ input via the keyboard.
  • Using a physics engine to handle movement, jumps, gravity, etc.
  • Playing sound effects and background music.
  • Changing between different levels.
  • And more!

You can check out the final game here –and play it! Move the character and jump with the arrow keys. Your goal is to pick up the key and reach the door.

Platformer screenshot

Try the workshop at home

Do you want to try the workshop on your own and make a game? Please go ahead! There are indications at the beginning of each lesson, as well as explanations at every step, so that you can use this as a self-guided workshop, without a coach.

If you get lost, you can download the source code at the end of every chapter and compare it with your work. There is also a checklist to help ensure you are on the right track before advancing to the next step.

Run your own workshop

If you would like to replicate the workshop in your local community, please do. It’s really fun and inspiring to see how people create a game for the very first time. We’d love to hear from you!

The workshop website includes a guide for coaches and instructors that will help you set up run your own game-making workshop.

Mozilla Add-ons Blog“Build Your Own WebExtension Add-on” Campaigns Around the World

We recently partnered with the Mozilla Open Innovation team to launch an activity that would introduce developers to WebExtensions and guide them through the experience of creating new add-ons with the APIs. The “Build Your Own WebExtension Add-on For Firefox” activity launched in February as part of Mozilla’s Activate campaign to mobilize Mozillians around the world to have impact in key areas of the organization’s mission. This activity will run until the end of 2017.

Mozilla communities in Tamilnadu, Switzerland, and Brazil answered the call-to-action and recently hosted events using the Activate curriculum. To date, 54 people have attended these events, and participants have submitted seven new add-ons to (If you are curious to see what they have built, take a look at this this collection on AMO.)

If you’re interested in hosting an event, read on to find out how our communities have organized their events, and what they would recommend for best practices!


Viswaprasanth Ks has been a passionate member of the add-ons community since he started contributing to Mozilla in 2012. He recently led an add-ons track at the Tamilnadu community’s 24 Hour Hackathon, where 25 participants brainstormed and created their own extensions to solve real-world problems.

What we learned

Encourage participants to learn JavaScript and have them start learning extension development from the mdn-web extension repo, recommends Viswaprasanth. Those with less familiarity with HTML and JavaScript might need additional support to complete the activity. Plus, the examples listed in the mdn-web extension repo have been carefully evaluated as being good starting places for beginning developers.

Picture of participants at 24 Hour Hackathon

Photo by Viswaprasanth Ks


Michael Kohler slated this activity for one of Mozilla Switzerland’s monthly meet-ups and tapped long-time add-ons contributor Martin Giger to mentor a group of 10 participants. Attendees found the workshop to be a relaxing introduction to extension development and left the event feeling empowered and confident in their abilities to create add-ons using WebExtensions APIs.

What we learned

Anticipate that it will take 90 minutes to complete Part I of the curriculum. “We used around 90 minutes to get to a working first example, including the intro,” Michael reports. If you are only able to complete Part I during an event, consider scheduling a follow-up event where participants can continue creating extensions in a fun, supportive atmosphere.

Martin Giger speaks at Mozilla Switzerland meet up

Photo by Michael Kohler


What can 22 Brazilians and 30 liters of beer accomplish in one day? Quite a bit, according to Andre Garzia’s blog post about his recent event. After a discussion about extension development and a group brainstorming session, participants organized themselves into small groups and worked on ten add-ons.

What we learned

Provide some starter ideas to those who want to go beyond the initial tutorial and build their own original add-on. Andre writes in his post, “We knew from the start that telling people to come out with add-on ideas out of the blue would not be an effective way to engage everybody. People have different ways to come up with ideas and some don’t enjoy coming up with an idea on the spot like this. To help people out, we made a clothesline where we hung add-on ideas up. Each idea had a description, suggested APIs to use and a difficulty/complexity rate. Attendees were encouraged to browse our hanging ideas and take one to implement if they felt like it.”

Note: if you need help developing a list of starter ideas, take a look at this list of requests from users on Discourse.

Printed ideas for add-ons on a clothesline

Photo by Andre Garzia

Have you conducted an add-ons development workshop for your community or are you interested in hosting one? Tell us about it on Discourse!

The add-ons team would like to extend a hearty thank you to Viswaprasanth Ks and Daniele Scasciafratte for providing input and tutorials for the “Build Your Own WebExtension Add-on” activity, and to Michael Kohler, Viswaprasanth Ks, and Andrew Garzia for coordinating these events.

The post “Build Your Own WebExtension Add-on” Campaigns Around the World appeared first on Mozilla Add-ons Blog.

Mozilla Add-ons BlogMigrating ColorZilla to WebExtensions

ColorZilla lets you get a color reading from any point in your browser, quickly make adjustments to it, and paste it into another program. It also generates gradients and more, making it an indispensable add-on for designers and artists.

For more resources on updating your extension, please check out MDN. You can also contact us via these methods.

Can you provide a short background on your add-on? What does it do, when was it created, and why was it created?

ColorZilla is one of the earliest Firefox add-ons—in fact, it’s the 271st Firefox add-on ever created (currently there are over 18,000 add-ons available on AMO). The first version was released almost 13 years ago in September 2004. ColorZilla was created to help designers and web developers with color-related tasks—it had the first-ever browser-based eyedropper, which allowed picking colors from any location in the browser and included a sophisticated Photoshop-like color-picker that could perform various color manipulations. Over the years the add-on gained recognition with millions of users, won awards and was updated with many advanced features, such as DOM color analyzers, gradient editors etc.

What add-on technologies or APIs were used to build your add-on?

Because the core of the ColorZilla codebase was written in the very early days, it used fairly low-level APIs and services.

Initially, ColorZilla relied on native XPCOM components for color sampling from the browser window. The first release included a Windows XPCOM module with a following release adding native XPCOM modules for MacOSX and Linux. After a few years, when new APIs became available, the native XPCOM part was eliminated and replaced with a Canvas JavaScript-based solution that didn’t require any platform-specific modules.

Beyond color sampling, ColorZilla used low-level Firefox XPCOM services for file system access (to save color palettes etc), preferences, extension management etc. It also accessed the browser content DOM directly in order to analyze DOM colors etc.

Why did you decide to transition your add-on to WebExtensions APIs?

There were two major reasons. The first reason was Firefox moving from single process to Electrolysis (e10s). With add-ons no longer able to directly access web content, it would have required refactoring large portions of the ColorZilla code base. In addition, as ColorZilla for Chrome was released in 2012, it meant that there was a need to maintain two completely separate code bases, and to implement new features and capabilities for both. Using WebExtensions allowed seamless supporting of e10s and code-sharing with ColorZilla for Chrome, minimizing the amount of overhead and maintenance and maximizing the efforts that could be invested in innovation and new capabilities.

Walk us through the process of how you made the transition. How was the experience of finding WebExtensions APIs to replace legacy APIs? What are some advantages and limitations?

Because ColorZilla for Chrome was already available on the market for about 5 years and because WebExtensions are largely based on Chrome extension APIs, the most natural path was to back-port the Chrome version to Firefox instead of porting the legacy Firefox extension code base to WebExtensions.

The first step of that process was to bring all the WebExtensions APIs used in the code to their latest versions, as ColorZilla for Chrome was using some older or deprecated Chrome APIs and Firefox implementation of WebExtensions is based on the latest APIs and doesn’t include the older versions. One such example is updating older chrome.extension.onRequest API to browser.runtime.onMessage.

The next step was to make all the places that hard-coded Chrome—in UI, URLs, etc—to be flexible and detect the current browser. The final step was to bridge various gaps in implementation or semantics between Chrome and Firefox—for example, it’s not possible to programmatically copy to clipboard from background scripts in Firefox. Another example is the browser.extension.isAllowedFileSchemeAccess API that has a slightly different semantic—meaning in Chrome, the script cannot access local files, and in Firefox, it cannot open them, but can still access them.

WebExtensions, as both a high-level and multi-browser set of APIs, has some limitations. One example that affected ColorZilla is that the main add-on button allows only one action. So the “browser action” cannot have a main button action and a drop-down containing a menu with more options (also known as a “menu-button” in the pre-WebExtensions world). With only one action available when users click on the main button, there was a need to come up with creative UI solutions to combine showing a menu of available options with auto-starting the color sampling. This allowed users to click on the web content and get a color reading immediately. This and other limitations require add-on developers to often not just port their add-ons to new APIs, but re-think the UI and functionality of their add-ons.

The huge advantages of the final WebExtensions-based ColorZilla is that it’s both future-proof, supporting new and future versions of Firefox, and multi-browser, supporting Chrome, Edge and other browsers with a single code base.

Note: This bug is meant to expand the capability of menu-buttons in the browserAction API.

What, if anything, is different about your add-on now that it is a WebExtension? Were you able to transition with all the features intact?

The majority of the functionality was successfully transitioned. The UI/UX of the add-on is somewhat different and some users did need to adjust to that, but all the top features (and more!) are there in the new WebExtensions version.

What advice would you give other legacy add-on developers?

First, I suggest going over the WebExtensions API and capabilities and doing a feasibility analysis of whether the legacy add-on functionality can be supported with WebExtensions. Some legacy add-ons leverage low-level APIs and access or modify Firefox in a very deep or unique way, which wouldn’t be possible with WebExtensions. Then, if the functionality can be supported, I suggest mapping the UI/UX of the legacy add-on to the new sets of WebExtensions requirements and paradigms—browser actions, popup windows etc. Following implementation, I suggest extensive testing across different platforms and configurations—depending on the complexity of the add-on, the porting process can introduce a range of issues and quirks. Finally, once the new WebExtensions-based version is released, my advice is to be ready to listen to user feedback and bug reports and quickly release new versions and address issues, to minimize the window of instability for users.

Anything else you’d like to add?

One advice for Mozilla is to better support developers’ and users’ transition to WebExtensions—the process is quite effort-intensive for developers, and user-facing issues, quirks and instabilities that might be introduced due to these changes might be frustrating for both add-on authors and their users. One thing Mozilla could improve, beyond supporting the developer community, is to really shorten the add-on review times and work with developers to shorten the cycle between user bug reports, developer fixes and the release of these fixes to the users. This will really minimize the window of instability for users and make the entire process of moving the Firefox add-on ecosystem to WebExtensions so much smoother. My advice for add-on authors on this front is to engage with the AMO editors, understand the review process and work together to make the review process as fast and smooth possible.

The post Migrating ColorZilla to WebExtensions appeared first on Mozilla Add-ons Blog.

Mozilla Add-ons BlogApril’s Featured Add-ons

Firefox Logo on blue background

Pick of the Month: Bulk Media Downloader

by InBasic
Manage large media downloads—audio, images, and video—with this lightweight tool.

“Very useful.”

Featured: Desktop Messenger for Telegram™

by Elen Norphen
Put Telegram right in your toolbar.

“Easy to locate groups, delete messages, and know everything stays secures. Keep up the good work!!!.”

Featured: Google™ Keep

by Philip Tholus, Morni Colhker
Have a notepad with you at all times.

“We have this proxy security stuff at work, and I can’t connect to Google Keep at work. No extensions worked in Chrome, and only one extension worked with FireFox. This way firefox became my default browser. Thank you.”

Featured: Font Finder (revived)

by Andy Portmen
Instantly analyze any font you find on the internet. This is a great tool for designers and developers.

“With one click, an entire paragraph’s font family, color (both hex and RGB), spacing, transformation, and element details are shown. “

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. Here’s further information on AMO’s featured content policies.

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

The post April’s Featured Add-ons appeared first on Mozilla Add-ons Blog.

Air MozillaBedrock: From Code to Production

Bedrock: From Code to Production A presentation on how changes to our flagship website ( are made, and how to request them so that they're as high-quality and quick-to-production as...

Mozilla Add-ons BlogFriend of Add-ons: Prasanth

Please meet our newest Friend of Add-ons, Prasanth! Prasanth became a Mozillian in 2015 when he joined the Mozilla TamilNadu community and became a Firefox Student Ambassador. Over the last two years, he has contributed to a variety of projects at Mozilla with great enthusiasm. Last year, he organized a group of eleven participants to test featured add-ons for e10s compatibility.

In January, Prasanth became a member of the Add-ons Advisory Board, and has emerged as someone very adept at finding great add-ons to feature. “Prasanth has shown a true talent for identifying great add-ons,” comments Scott DeVaney, Editorial & Campaign Manager for the add-ons team.

In addition to organizing community events and contributing to the Advisory Board, Prasanth is also learning how to write scripts for testing automation and helping contributors participate in QA bugdays.

Of his experience as a contributor at Mozilla, Prasanth says,

“Contributing in an open source community like Mozilla gave me the opportunity to know many great contributors and get their help in developing my skills. It showed me a way to rediscover myself as a person who loves open source philosophy and practices.”

In his spare time, Prasanth enjoys hanging out with friends and watching serials like The Flash and Green Arrow.

Congratulations, Prasanth, and thank you for your contributions to the add-ons community!

Are you a contributor to the add-ons community or know of someone who should be recognized? Please be sure to add them to our Recognition Wiki!

The post Friend of Add-ons: Prasanth appeared first on Mozilla Add-ons Blog.

The Mozilla BlogU.S. Broadband Privacy Rules: We will Fight to Protect User Privacy

In the U.S., Congress voted to overturn rules that the Federal Communications Commission (FCC) created to protect the privacy of broadband customers. Mozilla supported the creation and enactment of these rules because strong rules are necessary to promote transparency, respect user privacy and support user control.

The Federal Trade Commission has authority over the online industry in general, but these rules were crafted to create a clear policy framework for broadband services where the FTC’s policies don’t apply. They require internet service providers (ISPs) to notify us and get permission from us before any of our information would be collected or shared. ISPs know a lot about us, and this information (which includes your web browsing history) can potentially be shared with third-parties.

We take a stand where we see users lacking meaningful choice with their online privacy because of a lack of transparency and understanding – and, in the case of broadband services, often a lack of options for competitive services. These rules help empower users, and it’s unclear whether remaining laws and policies built around the FCC’s existing consumer privacy framework or other services will be helpful – or whether the current FCC will enforce them.

Now, this is in front of the President to sign or reject, although the White House has already said it “strongly supports” the move and will advise the President to sign. We hope that broadband privacy will be prioritized and protected by the U.S. government, but regardless, we are ready to fight along with you for the right to privacy online.

If these rules are overturned, we will need to be vigilant in monitoring broadband provider practices to demand transparency, and work closely with the FCC to demand accountability. Mozilla – and many other tech companies – strive to deliver better online privacy and security through our products as well as our policy and advocacy work, and that job is never done because technology and threats to online privacy and security are always evolving.

The post U.S. Broadband Privacy Rules: We will Fight to Protect User Privacy appeared first on The Mozilla Blog.

hacks.mozilla.orgDeveloper Edition 54: New inspector and debugger features, MDN help in the netmonitor, and more

We didn’t have a chance to blog when Firefox Developer Edition 53 came out, so now that 54 is out too, let’s discover what new features and bugs fixes made it into these new releases.

There is a lot to cover so we will get right to it.


The inspector now fully supports CSS color level 4, which means that new color syntax like hsl(120deg 100% 50%) is recognized in the CSS Rules panel.

People love our screenshot feature. In Developer Edition 53 we added a setting that, when turned on, will copy screenshots to your clipboard directly, so you can paste those images directly in other applications.

Firebug users used to be able to copy the full CSS path of any node in the inspector. This feature has now also been added to Firefox DevTools, as demonstrated here:

When nodes are collapsed in the inspector, it’s not possible to know whether they have children or not. A visual hint is displayed between the opening and closing tags as shown below:

Indicator between opening and closing tags in the inspector to show children exist

A lot of work was done to make the inspector faster and more reliable. In particular, the DOM tree now initializes with the DOMContentLoaded event.

The CSS Grid inspector, that can be toggled from the CSS rules panel, is now displayed for cases like display:inline-grid or display:grid !important.

Asynchronous Panning and Zooming (APZ for short) is the technology in Firefox that makes scrolling long pages super fast and smooth. Now, all the overlays that the inspector displays on web pages (like the box-model or the CSS grid lines) also benefit from it and scroll smoothly with the page.

In some situations, it may be hard to know that part of a property is overridden in a CSS rule. For instance, when only a longhand part of a shorthand property (e.g. margin-bottom in margin) gets overridden, the CSS rules panel didn’t show this unless you expand the shorthand property. This has changed, and the CSS rules panel now looks like this:

When only a part of a shorthand property is overridden

Right-clicking on an attribute in the inspector now gives you a menu item that lets you copy attribute values. (This is in addition to editing, adding, and deleting, which were already available.):

Copying attribute values in the inspector


Our awesome new debugger front-end (available to our Nightly and Developer Edition users for now) gained a ton of new features in Firefox 54.

You can now add watch expressions in the right sidebar, which will be evaluated when you pause:

A lot of the UI state is saved between sessions now: Opened tabs, whether the sidebar is collapsed, the selected source, whether you want to pause on exceptions, etc., making it easier and much more intuitive to start debugging again.

The debugger now also supports collapsing the layout to a vertical mode when there isn’t enough space:

Code search is also much improved: Outlines are shown around matches, the total number of results is also displayed in the search bar, and a brand new function search option is now available:

The pretty-printing feature has been implemented, so you can now make those minified files much easier to read. Pretty-printing a source file opens the pretty version in another tab:

Finally, hovering over a variable in the source now pops-up a preview tooltip for this variable, and lets you see its value:


First a reminder: If you don’t see the Storage panel in DevTools, you’ll need to enable it first in the settings panel. (We will soon be working on a new way to open new tools.)

In the cookies section, multiple cookies with the same name are now shown correctly.

Local data stored by Web Extensions are now also displayed in the storage panel.

The IndexedDB storage type can now be seen in a new column. You can learn more about storage types on MDN.

Last, but definitely not least, the storage panel is now a lot faster when your Firefox browser profile has a lot of IndexedDB data in it.

Network Monitor

You might know that we spent a lot of last year migrating our tools away from XUL markup and Firefox-only JavaScript to standard HTML, CSS and JavaScript. (I blogged about this in January). Well, I’m really pleased to report that the Network Monitor is now part of that revamped tool set. It should be much easier to work on the panel if you have some HTML, CSS, and React experience.

We have also added some MDN documentation goodness in the Network Monitor. In particular, both HTTP status codes and HTTP response headers get [Learn More] links that will open relevant documentation pages on MDN:

There is now a new “transferred” size in the monitor’s toolbar that indicates how much data was really transferred over the wire (useful when data is compressed). As before, clicking on this label brings up the performance summary view, but now this view also includes the transferred size:

Responsive Design Mode

The dimension controls have been moved above the viewport so they’re easier to see and use:

We also added the ability for users to enter their own custom devices to the list of pre-defined devices:

JSON Viewer

The JSON Viewer has been around on our Nightly and Developer Edition channels for a while.
With Firefox 53, we enabled it on all channels. This means that if you run the standard release of Firefox, very soon JSON responses in tabs will be much easier to read and explore:

The JSON Viewer is now displayed for files with the application/manifest+json mime-type.

New Web Extensions API for DevTools

WebExtensions are Firefox’s new way to write extensions for the browser that are compatible to a large extent with Google Chrome and Opera.

Firefox now supports new DevTools-related WebExtensions APIs, which means that Chrome DevTools extensions are going to start working with Firefox too!

In particular, it is now possible to create new DevTools panels with the devtools.panels.create API, or even execute code in the content window with the devtools.inspectedWindow.eval API.

We created a GitHub repository that provides examples of how to build WebExtensions using the DevTools API.

Right-to-Left Layout Improvements

Many RTL (right-to-left) improvements were made in these last couple of releases.

The settings panel now fully supports RTL, the computed styles panel in the inspector also works better with RTL, the JSONViewer now supports it, the DOM panel also received some RTL love, and finally RTL support also came to the font panel in the inspector.

More Bug Fixes

The Firebug theme received a variety of fixes and now works much better for our Mac and Linux users (in particular font-size, some padding, breadcrumbs, and various colors were fixed).

The icon for the new Responsive Design Mode in the toolbar was changed. It was confusingly similar to the docking icon, and is now easier to find:

Finally, all the buttons shown in the toolbar now display the corresponding keyboard shortcuts on hover!

Thank You!

Many volunteer contributors have helped fix bugs and implement new features in these releases, so warm thank yous to all (in no particular order)!:

  • Kimberly Pennington
  • Yann Gravrand
  • Tomer Cohen
  • Micah Tigley
  • Jaideep Bhoosreddy
  • Tooru Fujisawa
  • Thomas Dräbing
  • Adrien Enault
  • Iulian Radu
  • Ruturaj Vartak
  • Rahul Chaudhary
  • Oliver Scheiwiller
  • Tim Nguyen
  • Bao Quan
  • Nick Fox
  • Eduardo Bouças
  • Leonardo Couto
  • Kerem Kat
  • Ken Lee
  • Cosm
  • Jarda Snajdr
  • Florian Apolloner
  • Fabien Casters
  • Deepjyoti Mondal
  • Dalimil Hajek
  • Nicolas Chevobbe
  • Taylor Alexander Brown
  • Michael Brennan
  • André Bargull
  • Sébastien Blin
  • Ajay Krishna
  • Ahmed Towkir

You can see the full list of bugs if you’re interested.

As always, let us know what you think about this. You can add a comment right here, file a bug if you notice something wrong, or discuss new ideas or ask for help on our Discourse forum.