This is the WebExtensions's GSoC 2020 "Frequently Asked Questions" wiki page, in particular related to the "Extension Activity Monitor" project proposal.
What is the best way to contact you?
The best way to contact us is by joining Mozilla’s Matrix instance on https://chat.mozilla.org. Please say hi and feel welcome to ask questions about this project in the “Add-ons” room. If you need help setting up your Firefox development environment, please ask for help in the “Introduction” room. You can also talk to other applicants and project mentors in the GSOC2020 room.
Sending an email to the project mentors is also a good way to contact us, but we ask that you CC the other mentors, so we can respond faster and keep track of the emails that have not been answered yet.
How do I get started with this project?
If you are new to the browser extensions, a good starting point to write a great proposal for this project is to learn more about the WebExtensions ecosystem and WebExtensions APIs. The WebExtensions wiki page on MDN provides the documentation needed to start to build a small extension for Firefox. You can also find more information about the Firefox extension ecosystem on https://extensionworkshop.com.
Another way to get more experience on this project's topic is to look into (and/or contribute to) one of Mozilla's projects related to the WebExtensions, but you don't have to contribute to these projects to be eligible for Google Summer of Code. For purposes of applying to GSOC, your main goal is to craft an excellent proposal.
- You can become more familiar with the activityLog API by experimenting with the API itself. As the API is still in development, there is no official documentation available yet. The development of this API was tracked on Bugzilla at Bug 1542402 (see the referenced bugs for more information).
- You can practice using the WebExtensions API by studying (and/or contributing) to one of Mozilla’s officially supported extensions. As an example, here are some good-first-bugs related to the “Firefox Color” extension: https://github.com/mozilla/FirefoxColor/labels/good%20first%20issue
- You can contribute to the WebExtensions API by looking into one of these good-first-bugs in Firefox. Having additional experience extending or fixing bugs in the API itself is definitely a “bonus” skill for an applicant that we would appreciate and take into account, but it is absolutely not mandatory. We recommend reading our onboarding documentation to help you get started with fixing bugs in Firefox. If you have any questions or issues when setting up your developer environment, please join Mozilla’s Matrix instance and ask for help in the “Introduction” room. If you have questions on this project or issues with WebExtensions APIs, you may ask for help “Add-ons” room.
Can I send you a draft proposal to review?
Project proposal drafts should be submitted to the GSoC portal.
What are you looking for in a proposal?
To help with crafting a good proposal, here are some guidelines. This is not a checklist, but some of the criteria that we use in evaluating proposals.
- Explain in your own words what the extension is supposed to be doing.
- What extension APIs do you expect to use in this project? Briefly describe the role of the API in your extension.
- What does the activityLog API provide, and what could be missing that limits the capabilities of your extension?
- Describe your implementation plan:
- How would you start off? What would you do and why?
- What features would you implement and in which order approximately?
- What are the milestones to track your progress on the project?
- What are nice-to-haves that you would like to work on if there is enough time?
- What is your availability and working style, and how can we help you to succeed in this project?
Is the project goal to build something like the extension activity log available on Chrome?
Yes, the project goal is to develop a feature similar to the one provided by Chrome, but it doesn’t have to be an exact copy, nor to be limited to the feature set Chrome provides (in terms of both features and UI).