Friday, December 7, 2007

Release 0.3 finished!

So Today, i finally finished the "Release 0.3" of my project which was as following

Release 0.3

Goals: Document the following Storage API Interfaces

So for the 0.3 release, i had to do around 20 interfaces documentation and i ended up documenting 17 of them because two of them were "not found", i have a feeling that the developers changed the interfaces dependency or dissolved those two particular interfaces (nsIAccessibleAction, nsIAccessibleCaret) all together, and the last one of them (nsIAccessibilityService) didn't have any interface comments and after talking to "Aaronl" on Chatzilla about the Accessibility interface, he told me that this particular interface is going to take long time to document, because you have to understand each and every method responsibility along with interface purpose in order to document it and we didn't have enough time to go over all this since the release date was tonight. Hence i missed out on documenting one good interface that i was really looking forward to.

Other than that, the routine for documenting other interfaces was pretty much the same where i had to go and read about the interfaces general information first, like Storage API, Accessibility interface documentation that already existed on the MDC website. Since i have done some of the Storage API documentation before, it was easy for me to document them. One of the interfaces in Storage API didn't have enough information (mozIStorageStatementWrapper) hence i just jumped into the "Chatzilla" (#developer) channel and asked "Vladimir Vukicevic" (vlad) for help and he gave me enough insight about the interface that rest was really easy to document.

After which i did some of the Cache interfaces documentation, there seems to exist no external documentation for them on the MDC website, hence i just winged it by reading the interfaces and following the comments flow! Next, i started reading into the Accessibility IDL's and surprisingly they had no documentation at all, at least some of them and it made it very difficult to follow. The first two were easy but the last one "nsIAccessibilityService" was the hardest one to document and it took the most time and i was still not able to complete it, which was a disappointment for myself.


Another thing that i really found helpful doing this time was joining the "dev-accessibility-request@lists.mozilla.org" mailing list and asking the people there for help in regards to the Accessibility interface documentation. In the start, i joined the wrong mailing list and someone directed me to the correct mailing list where i would find the Accessibility interface related information. Thanks goes to "Alexander Surkov".

Again much of the thanks goes to "Eric Shepherd" for guiding me and helping me with all the proper documentation. Cleaning up any mess that i left behind in documenting some interfaces and also for being supportive every time i needed help and felt lost. Also it was nice to see "Kenneth Lee" and "Andrew Fung" learning so fast about the MDC interface documentation style. I wish both of them good luck on their projects.

I would love to hear feedback about my work and if someone has any comments or critique, feel free to leave a comment here. The interfaces links are parsed on the top of this article. Thanks for reading and good luck with your project.

Sunday, December 2, 2007

XPCOM Chrome Lab!

So this was basically the our last lab for this class. The lab was in regards to "Adding Chrome to FirstXpcom Lab".

The lab is pretty basic and very simple to follow. In fact, this was first lab that didn't give me much trouble and just gave me the results as i needed. It's either the easiness of the lab or the fact that wiki notes were very well written and you just had to follow them through.

The following steps were to be followed in order to complete the chrome lab:

(1) Create the extension through the online wizard located at: http://ted.mielczarek.org/code/mozilla/extensionwiz/

(2) After which find the name of your profile by using the following command "cat profiles.ini"

(3) Make sure when you echo the firstxpcomchrome, it should read "firstxpcomchrome@senecac.on.ca"

(4) In the end, i finally went to “Tools” section which contained a red text (kind of like a link) and then i clicked on it which generated a pop-up input box, i entered a value in it and voila, the result is in the snapshot below!