I am developing a Chrome extension for use with the Canvas LMS. A problem with this is that Canvas subscribers have different URLs which do not have a common top level domain. For instance, my University's Canvas site has the URL canvas.gu.se
while another school might have canvas.myschool.edu
. But I can't enter "matches":"https://canvas.*/*"
in the manifest.json
file, since top-level wildcards are not allowed (see this post for elaboration). Instead, I have to enter "matches":"https://*/*"
, and then programmatically (in the content.js
code) weed out sites that don't have "canvas" in them.
That works in its own kludgy way, but Chrome Web Store is not very happy about it, which delays my updates by days.
One could of course use a narrow/dummy matches
value and then ask the users to edit the manifest themselves to include the specific URL in used in each respective case, but how likely would they be to do that? Instead I would like the extension to launch a local page that prompts the user to input the specific URL and then edits the manifest.json
file on that particular machine accordingly. Would that be possible and if so, how?