Posted by: felipe | February 10, 2015

e10s-fied Developer Assistant

Good news for Add-on authors and front-end developers alike, who are working on e10s features: The JavaScript Shell that comes with the Developer Assistant add-on is now e10s-aware! With it, now you can set the scope of the JSShell to be of an anonymous framescript running in a remote tab, which allows you to run snippets of code in that context, and get the answers printed in the shell.

Here’s a screenshot of it in action:

JSShell set to the scope of a remote tab

JSShell set to the scope of a remote tab

I also created a screencast showing how to use the JSShell through the Developer Assistant add-on:

Tab-autocomplete for remote tabs is not implemented, and I don’t have plans for implementing it anytime soon, but contributions are welcome. Even without autocomplete, hopefully this makes working with a e10s a tad bit easier!

Posted by: felipe | January 9, 2014

Hello 2014

Happy new year everyone! During the holidays I had been thinking about my goals for 2014, and I thought it’d be a good exercise to remember what I’ve done in the past year, the projects I worked on, etc. It’s nice to look back and see what was accomplished last year and think about how to improve it. So here’s my personal list; it doesn’t include everything but it includes the things I found most important:

Related to performance/removing main-thread-IO:

  • Rewrote the storage for the AddonRepository module in the work with Irving to make the Addons Manager async.
  • Did the Downloads API file/folder/mimetype launcher code and storage migrator for the new JS downloads API project.
  • After Drew made the contentprefs API async I help update a number of the API consumers to async.

Related to hotfixes:

  • Created a hotfix to decrease the update check interval which brought more users to up-to-date Firefox versions, who were lagging behind by never seeing the update message.
  • Worked on a hotfix to deactivate pdf.js if necessary, when we were releasing it to all users for the first time. Fortunately we didn’t have to use it.
  • Assisted in the work of another hotfix that was being prepared to change the update fingerprints but also luckily wasn’t needed.
  • Wrote down some documentation about all of the hotfix process to streamline the creation of future ones.

Related to electrolysis:

  • Worked on the tab crashed page
  • Made <select> elements work
  • Added support for form autocomplete
  • Worked on improving the event handling for events that are handled by both processes

Other things:

  • For mochitests: worked on fixing some of the optional parameters like –repeat which weren’t working for all kinds of mochitests, and added the –run-until-failure option.
  • Added the –debug-on-failure option which works together with the –jsdebugger option.
  • Helped organize the projects of Desktop Firefox for the Google Summer of Code and guide many students through the proposal phase while they drafted their proposals.
  • Mentored one student for GSOC who created an add-on to visualize memory usage information from about:memory.

Events attended:

  • FISL – The yearly 7k-people free software forum in Brazil
  • The MozSummit Assembly meeting to help plan the summit, and the summit of course
  • A Firefox OS campaign in Brazil
  • The Firefox Performance week


  • Reviewed/feedbacked about 300 patches

That’s it. Looking forward to a great 2014!

Posted by: felipe | October 1, 2013

GSoC 2013 completed

Last week, the 2013 edition of the Google Summer of Code officially finished. The Firefox team had come up with a few project ideas for this year and I mentored Abhishek Choudhary in the project dubbed “about:memory for real people”. The goal was to produce a friendlier and prettier version of about:memory that could be used by users and web developers to investigate the memory usage aspects of their webpages.

Mentoring GSoC was a nice experience again (it was my 4th time as a mentor) and I’m happy to say that the project was completed successfully! On Sep 16th, the “soft pencils down” goal on GSoC timeline, Abhishek tagged the 1.0 version on GitHub and the code was called complete. After a small extra bug fix, 1.0.1 was tagged and then submitted to!

The project itself was very interesting because it was not a straightforward coding exercise: there was also a creative element to it which allowed us to experiment different visualization styles to try and see what worked best. It began with a few different separate visualizations but it evolved over time to one main integrated viz that supports seeing the data consumed by each tab and to watch how it evolves over time. The user can take manual time snapshots or let it take one every 5 seconds, and then use the time slider to go back and forth between the last 5 snapshots. The main hope is that this should be useful for a web developer who wants to see how a particular action on the website might affect its memory usage and if it fits the expectations (does that operation increase memory? does it release it as expected?).

Here’s a screenshot of the main interface:

fx-statistics screenshot

You can see more details and install it from AMO. There’s a small catch: the add-on currently won’t work with Aurora or Nightly, just Beta and Release. This was an interesting part of the project: on the few last weeks of the project, the API that the add-on had been using changed, and it was not possible to change it to the new API among the other wrap-up tasks for the project. But luckily add-on versioning works well, and as the goal of this add-on is end users, shipping for beta and release is ok for now, and we’ll soon be posting a new version that is compatible with FF25+.

Abhishek also has a very nice blog post that you should be reading instead of mine :), describing the project progression and his experience working on it. I want to take this opportunity to say congrats to him and thanks to all students who participated in the GSoC project this year! I hope everyone had a nice time and hopefully the experience have interested some of you to continue to be part of community! Looking forward to next year’s projects.


Posted by: felipe | July 16, 2013


Firefox, Tux and Gnu at FISL

Two weeks ago, almost the entire Mozilla community in Brazil assembled together in Porto Alegre to attend FISL, the largest free software conference in the country, which brings together about 7000 people every year to talk about every side of open source: communities, business, government, education, etc.

I think the community had its best attendance ever this year. For one thing, it was the largest group: there were about 30 contributors from all over the country who contribute to every area of Mozilla. For another, our participation this year was entirely planned and run by the community, and everyone was working together in sync to make it a success.

Our activities included various talks on the main conference track, an apps hackaton, a Mozilla room, SUMO sprints, and just a lot of engagement with the students and developers at the conference. As expected, interest in Firefox OS was very high, and this brought to us a lot of people who wanted to hear more about the OS, take a look at the devices (we had a few Geeksphones for demonstrations!) and learn how to build apps. With the dedicated Mozilla room we were able to run several “Apps 101” sessions to get people started on apps and the hackaton (at times back-to-back sessions to keep up with the demand!), and to provide a welcoming place for them to hack on the apps or to get some hands-on help when they needed.

Mozilla Room at FISL

Welcome to the Mozilla Room at FISL 14

In true free software spirit, most of the talks at FISL are live streamed and also recorded, and you can see the full program here. Below are all the talks we had (I think I’ve included them all but apologies if I forgot any).

(p.s.: if you want to see an entertaining explanation of how Persona works I highly recommend you watch François’ presentation at the 11’30” mark)

The hackaton ran during the conference and finished on Saturday afternoon. We got a total of 7 apps submissions, which are all posted on github, and the winner was announced at the end of Surman’s talk and received a Geeksphone Keon! There were also e-books as prizes for other teams. Big props to Adriano, André Garzia and Morvana for running the hackaton!

Hackaton Prize

With all that, what I have to say is thanks to all the contributors who helped with all our activities. It was great to meet again some of the old-timers and specially nice to meet the newer members of the community to whom I had only known online before. I was very impressed with everyone’s dedication and passion for Mozilla! Attending FISL is always a special experience for me because that’s where I started my true involvement with open source and Mozilla. After meeting Marcio and Fabricio in São Carlos in 2005 and been following things online for a while, I attended my first FISL in 2008 where I gave a presentation about add-ons development and there I met Chofmann, Blizzard, Taras, Mitchell, Mary, and that was a big push for me to start contributing. I’ve been attending the event ever since, and nowadays I often get people asking my story and how they too can get involved and I hope that I can too serve as support and inspiration for the new people joining who wants to participate and grow in the community. Last but not least, a special thanks to Sérgio for being the lead organizer and volunteering an incredible amount of his time in the past N months to make FISL happen this year!

Until FISL 15!

Older Posts »