14 September, 2016 § Leave a comment
Mike and I met with the “select dropdown” team today and discussed where they’re at and the work that they can focus on for the next week. We are discussing a possible “hack-weekend” October 1st and 2nd at Michigan State.
Freddy got XCode up and running and can debug processes at the single-process/multi-process fork. Jared and Miguel are having issues getting their debugger to work. Freddy will be helping Jared and Miguel with their setup to compare what is different, with the fallback being Jared and Miguel using LLDB as their debugger.
In the past week, the team has also been spending time working on presentations and project plans.
For C++ code, their initial plan was to fake the single-process to run through the multi-process code path by removing the checks for if the code is running in a content process and if a special e10s desktop preference is enabled.
As a quick technical dive: When a select dropdown is clicked, we determine that we’re running in a content process, and we fire an event (“mozshowdropdown”). A content script running in the content process listens for the “mozshowdropdown” event and opens the popup.
The plan to fake the single-process to run through the multi-process won’t work though, because the content script mentioned above won’t be loaded and thus there won’t be an event listener. The content-script is only loaded right now through the remote-browser.xml binding. The content-script would have to be loaded through the non-remote-browser binding (browser.xml) as well as the various message listeners and event listeners.
While working on this, it would be a good idea to move the code from select-child.js to browser-content.js, since we don’t really need a separate file for select items and browser-content.js is loaded in single-process Firefox.
As for styling changes, the students were able to use the Browser Toolbox to change web content through forms.css and see how things like input textboxes could get different default colors. To change the styling of a select dropdown, the students will play around in browser.css to tweak the styling. In the end they’ll want to make sure that the styling exists under the /themes directory, and likely within /themes/shared/.
One of the students asked if we had ideas about specific algorithms or design-patterns that the search-within-the-dropdown implementation should use. We pointed them at the Browser Console’s filtering ability and asked that the students follow the implementation there.
That wraps up our notes from this week’s meeting. We’ll be meeting regularly for the next 10-ish weeks as the students make progress on their work.
9 September, 2016 § 3 Comments
Last week marked the beginning of a new 12-week period of mentorship for myself. I’ll be working Mike Conley to share mentorship duties as we mentor a group of five Michigan State University students. The students are all seniors in the Computer Science program.
The MSU Capstone is a program that pairs industry companies with small student groups to give students access to real-world software development and the software development life cycle.
This semester, the five students will be working on improving the visual design of the <select> dropdown. The project has three main components:
- The <select> dropdown has two separate implementations: one for single-process Firefox (going away soon), and another for multi-process (e10s) Firefox (the new hotness). The old implementation should be removed, and single-process Firefox should use the implementation that was added as part of the e10s project.
- The default look and feel of the <select> dropdown is pretty packed. We want to give more space to the items in the popup to allow for improved readability, as well as making it look more “modern”.
- <select> dropdowns have pretty bad usability when the number of items gets very large. They’re also pretty hard to use on touch-screens. The dropdowns should have the ability to filter items and should have more padding when opened via a touch event. The increased padding is intended to make it easier to tap on the desired option as well as to make the options easier to read when they may have a finger hovering over them.
Miguel Wright, Tyler Maklebust
Since the students were assigned to the project last week, they now have local builds up and running as well as Bugzilla accounts. We’ve been active on IRC and will have weekly check-in meetings over Vidyo.
I’ll have more to share in the coming weeks as the students begin ramping up on their work.
18 May, 2014 § 46 Comments
I’m happy to announce that starting today, the new in-content preferences are enabled by default in Firefox Nightly.
This project was started by a group of students at Michigan State University and was mentored by Blair McBride and myself. Since its start, it has continued to get a ton of attention from contributors world-wide.
This is a list of people who have contributed patches to the in-content preferences as of this posting:
- Ally Naaktgeboren
- Andres Hernandez
- Andrew Hurle
- Benjamin Peterson
- Benjamin Smedberg
- Brendan Dahl
- Brian R. Bondy
- Brian Smith
- Carsten “Tomcat” Book
- Chris Mahoney
- Chris Peterson
- Christian Ascheberg
- Christian Sonne
- Devan Sayles
- Dão Gottwald
- Ed Morley
- Ehsan Akhgari
- Florian Quèze
- Gervase Markham
- Gijs Kruitbosch
- Gregory Szorc
- Honza Bambas
- Jan de Mooij
- Jan Varga
- Jared Wein
- Javi Rueda
- Jeff Walden
- John Schoenick
- Jon Rietveld
- Jonathan Mayer
- Josh Matthews
- Kyle Machulis
- Mahdi Dibaiee
- Manish Goregaokar
- Manish Goregaokar
- Mark Hammond
- Martin Stransky
- Matthew Noorenberghe
- Michael Harrison
- Mike Connor
- Mike Hommey
- Nicholas Nethercote
- Nick Alexander
- Owen Carpenter
- Paolo Amadini
- Phil Ringnalda
- Richard Marti
- Richard Newman
- Ryan VanderMeulen
- Sebastian Hengst
- Sid Stamm
- Ted Mielczarek
- Theo Chevalier
- Tim Taubert
- Zuhao (Joe) Chen
There is still a lot of work to be done before shipping the new in-content preferences out to people on the release builds of Firefox. That also means that this long list of contributors doesn’t have to stay at 59 people, it can keep growing🙂
We have a list of bugs that we need to fix before we can call version 1 of this project complete. The easiest way for someone new to help out is to download Firefox Nightly and help test that the new preferences work just as well as the old preferences. If you find an issue and see that it hasn’t already been reported, please file a new bug in Bugzilla and leave a comment on this blog post with a link to the bug that you filed.
4 December, 2013 § 3 Comments
I’ve been pretty quiet this semester about the work that a team of students have been focused on. However, don’t let my quietness be a representation of how hard they have worked.
We’re now reaching the end of the semester and the students have put together a video of their work throughout the semester. The students were tasked with creating three add-ons for the upcoming Australis version of Firefox.
The goal of the project was to get feedback on the new Australis add-on APIs before it became too late to make significant changes. Through the process some bugs were filed, but none that caused us to have to go back and rethink our initial direction.
The three add-ons that the students were asked to create were a weather add-on, music add-on, and Bugzilla add-on. Please watch the video below to get an overview of their capabilities.
13 November, 2013 § 1 Comment
This Friday I’ll be giving a talk to 250 primarily first-year students majoring in Computer Science at Michigan State University. This presentation is part of their CSE 100: Computer Science as a Profession course that students are required to take.
I’m planning on starting with an overview of Mozilla and some of the unique technical challenges that I’ve had to solve. One of the really cool things about working at Mozilla is getting to see and experience up front the wide spectrum of computing problems that are being tackled.
Within the Mozilla community, there are people working on the forefront of research by implementing a new memory-safe and concurrent programming language (Rust) and parallel browser engine (Servo) to finding innovative ways to get people more involved with producing web content (Webmaker).
I will try to record the presentation, but I can’t make any guarantees.
I feel very honored to receive an invitation to give this talk, and I’m greatly looking forward to it. If you have some helpful tips for college freshman, please do share in the comments below.
15 March, 2013 § Leave a comment
I sat down a couple days ago with Ray Heldt. Ray is one of the MSU students working on multitouch gestures for Firefox. I asked Ray about his experience and what he thought about contributing to open-source software.
Check out the video below for the interview (1m 38s):
14 March, 2013 § 1 Comment
I sat down yesterday with Brandon Waterloo. Brandon is one of the MSU students working on multitouch gestures for Firefox. I asked Brandon about his experience and what he thought about contributing to open-source software.
Check out the video below for the interview (3m 13s):
I also got a chance to interview the other two students working on the project, Bill de Araujo and Ray Heldt. I posted Bill’s interview previously and will be posting Ray’s interview shortly.