Challenge Overview
Description:
The GLIB-Chrome-Ext challenges are a set of challenges where we will be building out a chrome extension that inserts a button onto various vendor (Github, Gitlab, Jira, etc) sites in order to launch a new Topcoder challenge(s). This challenge will be extending the extension to not have hard coded domains where it will inject the button, but instead to be active on all domains and read a configuration to determine if it should inject the Topcoder button. This will enable a user to support custom sites without an update to the extension code.
Requirements:
- Update the manifest.json content_scripts.matches property so that the extension will be active on all webpages.
- Add a function to the content_script.js that will be used to do matching against configured domains to determine if the extension should be active and try to insert the button. If the domain is not found then the extension should do nothing. This function should use the vendor associated with the value matched to set to the vendor variable.
- Update the options.html and options.js file to include a section where there are three Vendors: Github, Gitlab, and Jira. Under each vendor there will be a textarea where a user can enter one or more regular expressions to be used for determining if a site should be inspected for the button injection. By default each vendor will have the base URL currently being used in the extension:
Github: "https://github.com/*",
Gitlab: "https://gitlab.com/*",
Jira: "https://appirio.atlassian.net/*"
On save of the options the vendor configuration should be saved in ChromeStorage. Use the other options values as an example of how the vendor specific match values should be saved. There should also be a reset option for each vendor that will set the textarea back to the original value.
- Add tests for the code you add/update that following the current testing conventions in the extension.
Setup & Reference:
- Use dev mode when working on the extension locally. This is configured in the options of the extension.
- See the README for details around running the extension locally.
- For dev mode you are able to enter any value for the project id when prompted.
- Fork this repo and work off this branch.
Final Submission Guidelines
Submissions:
- Upload documentation for how to run your submission
- A video of your working solution is required
- Upload all your source code as a zip for review
- Winner will be required to submit a pull request with their winning code.