The evolution of my Mozilla’s project
Hello, hello 👋. Today I’m going to talk about how my Mozilla project is going.
We are currently in the 8th week of the internship, I have some patches landed, others rolled-back, others in progress and others to be started.
Do you remember my last post where I explained how we were creating a new certificate viewer for Firefox? Well, we realized we didn’t need some things we had, and now we have a better and simpler solution (it seems to be, for example easier to persist when restarting the navigator, and easier to adjust for mobile).
So, in a nutshell, this is what I said in the last post:
1. The user goes to any page
2. Click on view certificate
3. A new tab is open with this form “about:certificate?id=number”
4. The page sends a message to its RPM
5. The RPM gets the certificate information making some function calls using the id that is in the URL parameters
6. The RPM sends a message to about:certificate containing the certificate information
7. In about:certificate we call other function which depends on third party libraries to add the rest of the information
8. Finally, we render that information in the DOM
The way we are doing it now is:
1. The user goes to any page
2. Click on view certificate
3. A new tab is open with this form “about:certificate?cert=<encoded cert info>”
4. In about:certificate we call other function which depends on third party libraries to add the rest of the information using the cert information from the URL parameters
5. Finally, we render that information in the DOM
Yes, we deleted all the RPM logic 🙃 , and yes, we had it landed 🙂 , oh, and yes, it was super hard for me to let it go, to get unattached from the code I developed 😢. But it doesn’t really matter, we have to do the best for the project, no matter how many lines of codes we have to delete and merges conflicts to solve; this is part of growing I guess, and I agree that is much easier!
I also feel that finally I’m making a progress, the beginning was very hard, I didn’t understand some things of the project, and it took me lot of time searching/learning how the code worked, but now I feel I’m faster and I know what are the next steps to follow.
So, that’s how we are doing it now, and we have about 6 more weeks to finish it! I’m positive we’ll get it, I think we are doing good and when I see the project’s timeline (which had been adjusted) I feel we are close.
Regarding the project timeline, it changed a lot! Also, because as we are two interns working in this project, all the goals were divided, and when I submitted the initial timeline, I didn’t know how much time it would take me to accomplish those tasks, so I just guessed.
This was my initial project timeline:
1. Add a new blank about:certificate page that fetches certificate information from browser code: May 20, 2019 to Jun. 14, 2019
2. Port UI pieces of Certainly Something over to the new about page, parsing certificate information and building UI using e.g. web components: Jun 14, 2019 to Jul. 12, 2019
3. Blog about your work and what you are learning about Firefox development and certificates: May 20, 2019 to Aug. 20, 2019
4. As a stretch goal, work with Firefox UX to consider possible improvements to the page: Jul 12, 2019 to Aug. 2, 2019
5. Eventually, replace the existing certificate viewer as the default mechanism for viewing certificates: Aug 2, 2019 to Aug. 20, 2019
As you may know, I’m not working on the UI, nor UX, or something related. And as you can see, the goals are too broad.
This is my project timeline now:
1. ̶A̶d̶d̶ ̶a̶ ̶n̶e̶w̶ ̶b̶l̶a̶n̶k̶ ̶a̶b̶o̶u̶t̶:̶c̶e̶r̶t̶i̶f̶i̶c̶a̶t̶e̶ ̶p̶a̶g̶e̶:̶ ̶M̶a̶y̶ ̶2̶0̶ ̶t̶o̶ ̶M̶a̶y̶ ̶2̶3̶.̶
2. ̶S̶e̶t̶ ̶u̶p̶ ̶a̶n̶ ̶R̶P̶M̶ ̶f̶o̶r̶ ̶a̶b̶o̶u̶t̶:̶c̶e̶r̶t̶i̶f̶i̶c̶a̶t̶e̶:̶ ̶M̶a̶y̶ ̶2̶0̶ ̶t̶o̶ ̶M̶a̶y̶ ̶2̶7̶
3. ̶S̶e̶n̶d̶ ̶i̶n̶f̶o̶r̶m̶a̶t̶i̶o̶n̶ ̶f̶r̶o̶m̶ ̶R̶P̶M̶ ̶t̶o̶ ̶a̶b̶o̶u̶t̶:̶c̶e̶r̶t̶i̶f̶i̶c̶a̶t̶e̶:̶ ̶M̶a̶y̶ ̶2̶7̶ ̶-̶ ̶J̶u̶n̶e̶ ̶2̶1̶
4. Port all the logic from CS to Firefox: June 01 — July 18
̶* P̶o̶r̶t̶ ̶a̶l̶l̶ ̶t̶h̶e̶ ̶f̶i̶l̶e̶s̶ ̶c̶r̶e̶a̶t̶e̶d̶ ̶b̶y̶ ̶A̶p̶r̶i̶l̶:̶ ̶J̶u̶n̶e̶ ̶0̶1̶ ̶-̶ ̶J̶u̶n̶e̶ ̶2̶1̶
̶* F̶i̶n̶d̶ ̶t̶h̶e̶ ̶b̶e̶s̶t̶ ̶w̶a̶y̶ ̶o̶f̶ ̶i̶m̶p̶o̶r̶t̶i̶n̶g̶ ̶t̶h̶i̶r̶d̶ ̶p̶a̶r̶t̶y̶ ̶l̶i̶b̶r̶a̶r̶i̶e̶s̶:̶ ̶J̶u̶n̶e̶ ̶0̶1̶ ̶-̶ ̶J̶u̶n̶e̶ ̶2̶1̶
* Merge with central and remove lint problems: July 8 — July 18
5. Add test for 4: June 19 — July 30 (depends on 4)
6. ̶S̶e̶n̶d̶ ̶c̶e̶r̶t̶i̶f̶i̶c̶a̶t̶e̶ ̶i̶n̶f̶o̶r̶m̶a̶t̶i̶o̶n̶ ̶i̶n̶ ̶U̶R̶L̶ ̶p̶a̶r̶a̶m̶e̶t̶e̶r̶s̶ ̶o̶p̶e̶n̶i̶n̶g̶ ̶a̶ ̶n̶e̶w̶ ̶t̶a̶b̶:̶ ̶J̶u̶n̶e̶ ̶2̶1̶ ̶-̶ ̶J̶u̶l̶y̶ ̶1̶9̶
7. Create test for 6: July 8 — July 30
8. G̶e̶t̶ ̶s̶e̶c̶u̶r̶i̶t̶y̶ ̶i̶n̶f̶o̶ ̶f̶r̶o̶m̶ ̶W̶i̶n̶d̶o̶w̶G̶l̶o̶b̶a̶l̶P̶a̶r̶e̶n̶t̶ ̶a̶n̶d̶ ̶s̶e̶n̶d̶ ̶c̶e̶r̶t̶i̶f̶i̶c̶a̶t̶e̶ ̶c̶h̶a̶i̶n̶ ̶t̶o̶ ̶a̶b̶o̶u̶t̶:̶c̶e̶r̶t̶i̶f̶i̶c̶a̶t̶e̶:̶ ̶J̶u̶n̶e̶ ̶2̶0̶ ̶-̶ ̶J̶u̶l̶y̶ ̶0̶9̶
9. Reformat certificate for front-end use: July 03 — July 26 (depends on 4)
10. R̶e̶m̶o̶v̶e̶ ̶R̶P̶M̶:̶ ̶J̶u̶l̶y̶ ̶0̶5̶ ̶-̶ ̶J̶u̶l̶y̶ ̶0̶8̶
11. Make module imports structure more consistent: July 15 — July 25 (depends on 4)
12. Handle errors properly in about:certificate: August 01 — August 5
13. Create tests for 12: August 5 — August 15
14. Merge with front-end: July 20 — August 01
15. Test functionality/fix bugs: August 02 — August 20
16. Blog about your work and what you are learning about Firefox development and certificates: May 20 — Aug. 20
The dates are not only the time developing the functionality but waiting for revisions, updating revisions, and waiting for landing. The ones crossed-out are the ones I finished.
Luckily I have Danielle working in the same project, if not, I wouldn’t get it done for August 20 🤯 (I’m in point 10 more less).
So that’s it, that’s the state of the project from my part and that’s those are the lessons learned of this 3 past weeks. I hope you enjoyed it and feel identify with the situation and less concerned with your own projects — “Failure is simply the opportunity to begin again, this time more intelligently.”, Henry Ford.