Originally I had planned on making one massive post but after finishing about 75% of this post, I realized it would be a bit too massive for anyone to bother reading, so I’ve split it into two parts. Part 2 coming up later… by later I mean hopefully with all the remaining tests reviewed, duplicate tests expunged, and all possible errors solved. =) This part will basically detail what I went through to get back on track.
No doubt, a few of you will be wondering how sidetracked could I be when it’s been only 2 weeks since I last worked on open source material, and the answer is very! When Christmas Eve came around I essentially shut off my programming side of my brain and since then I’ve been in the boot up phase. Any one working on open source knows how much things can change in two weeks, heck even a lot can change in one day. There are so many parts that make up Firefox and little adjustments on a part that doesn’t seem related to mouselock can totally break everything regarding it. Of course, I’m working more on the tests side so the impact is softened. Anyway, I’ll start off with when I updated to patch v2 of mouselock.
Building Firefox on Windows last semester was awkward because it forced me to build FF on one core due to random deadlocks when trying to split the workload into multiple jobs. With patch v2 which contained newer mozilla-central code, the way Windows machines build FF has been changed. Now instead of using the normal make, windows users should use pymake and the improvements for switching are very promising. As with many new things, I failed this operation quite quickly. The reason was because my existing object directory was created using make and didn’t play nice with pymake, so after clobbering I was able to perform a full rebuild in just under an hour!
For future reference instead of typing
make -f client.mk build I have to type
python -OO build/pymake/make.py -f client.mk build
Also, after version 2 I knew that vendor prefixes were added so the gh-pages needed a quick update. I took this on because it would help me figure out what I needed to replace on the tests we currently have. It was actually a fairly procedure, and it highlights one of the things I’ll miss due to the new web console interface. When working on the fix to the gh-pages, I was able to start typing
navigator.m and it a pop up would show up and tell me instantly what exists under
navigator that started with m. Also, when I needed to see what
movementY for mouse events changed to, I could just expose a mouse event via the web console and check out the properties of the event object. The new interface which comes with the new Firefox nightly, while beginner friendly, takes away a few things.
The new interface came to me by way of version 3 of the mouselock patch which came one or two days after I did the gh-pages too, which also needed to be and has been updated. In terms of impacting tests there was only one thing, instead of a function
isLocked is now an attribute. The other changes, while important don’t affect the creation and updating of the tests.
Part 2 and more specific comments regarding the tests to come!