DPS911 Summary

I wanted to do a quick summary of what I did this semester on the DPS911 course and what are my plans for the future.

First, I want to talk about Firefox.
Last semester I had the opportunity to get started with Firefox developemnt.
The first bug I worked on was the PointerLock. We started hacking PointerLock last November, and I’m really happy to say that after 6 months of hard work it finally landed and it’s expected to ship on firefox 14. Thanks for everybody involved on the bug, it was an awesome experience :)
You can find more info about the whole process of the PointerLock implementation here.
Now that it’s over, I realize how unique was this opportunity, and that was one of the reasons I kept pursuing it until the end. I learned so much and met so many smart people during the process that I’m glad to have chosen this path, and if I could I would do everything again.

Besides working on PointerLock, this semester for the DPS911 course I found some other bugs to hack.
This is a list of all the bugs I was involved during the semester:

  • Bug 581863 – gtk2/nsWindow::GetScreenBounds returns client window size instead of outer (frame) size
  • Bug 581866 – outerWidth / outerHeight features in window.openDialog do not include window manager decorations
  • Bug 633602 – Implement Pointer Lock (Mouse Lock) API
  • Bug 712225 – When element is in fullscreen mode, window.innerHeight is bigger than window.outerHeight
  • Bug 715141 – Using keyboard to switch zoom level when viewing images directly
  • Bug 718133 – Remove keyboard shortcuts for zooming to 1:1 scale when viewing standalone images
  • Bug 713383 – Directly viewed images should be printed with a transparent background on the body
  • Bug 713608 – HTML5 Video controls are missing in Fullscreen
  • Bug 714071 – The Show Statistics setting is not preserved when toggling the full screen mode
  • Bug 728893 – Allow mochitest iframe to go fullscreen
  • Bug 724108 – Exception is thrown when showing statistics on a loading video
  • Bug 735031 – Fullscreen API implementation assumes an HTML Element
  • Bug 739874 – Input type “password” doesn’t receive Focus event with a mouse click

Status of the Bugs:

From the list above, the following bugs were landed:

I’m still working on bugs:

and I filed bugs:

Creating my first Firefox patch
Synthesizing mouse events in a mochitest
DPS911 Update
Firefox Bug 714071
Bug 713608 Update
Updating PointerLock API – Callbacks, Events and Threads
PointerLock API Updates
Bug 728893 – Allow mochitest iframe to go fullscreen
Bug 735031 – Fullscreen API implementation assumes an HTML Element


Besides working on Firefox bugs, I worked on a bug on the mongooseJS library:

Ticket 718 – Add multiple validators to a Schema field

I wrote about the bug fix here:
MongooseJs Validators – Contributing to an open source project

Some other projects I worked during the semester:
Simple Drawing Application with ProcessingJS, part I

Visualizing algorithms using Processing.js

Visualizing algorithms using Processing.js , part II

What’s next?

  • Finish the bugs I have started
  • Find more bugs
  • Keep hacking :)

One of the areas I want to get involved in Firefox is the SpiderMonkey Javascript engine
I also want to keep working on bugs related to the DOM and Events in general.

**Two readings that I really recommend:
History of Mozilla’s DOM bindings
New DOM bindings