kakaroto / Beyond20

D&D Beyond Character Sheet Integration in Roll20
GNU General Public License v3.0
497 stars 145 forks source link

Feature Request - Setting to Add Custom Domains to Activate Beyond20 On (Automate Foundry Activation) #897

Closed FroggMaster closed 2 years ago

FroggMaster commented 2 years ago

Is your feature request related to a problem? Please describe. Having to click the Beyond20 Extension to activate it within a Foundry Install. This is due to the extension not automatically having permission to modify the website.

Describe the solution you'd like An option in the settings for Custom Domains. You would be able to provide multiple custom domains, that would enable Beyond20 automatically on them.

Describe alternatives you've considered Modifying the chrome extensions manifest file myself.

kakaroto commented 2 years ago

That's not actually possible to do that way because of permission restrictions. We can already detect if Foundry is running, but when you click the extension icon, you're actually telling Chrome to authorize the extension to run its code on that page. It's not a restriction we have on Firefox however. That being said, this is basically a duplicate of this issue : https://github.com/kakaroto/Beyond20/issues/179 Once I figure out how to make that work, it would basically allow you to click on the icon once, and it would then prompt you to permanently allow the extension to run on that domain and you wouldn't need to click it again in the future. I've tried to do it once but it wasn't working the way it needed to, so it's been shelved until I revisit it.

FroggMaster commented 2 years ago

179 is essentially the same idea, you would certainly have to use the same chrome.permissions request for any user defined URLs.

My Thoughts: A section within the extensions popup/settings where a URL can be included. In addition to the user supplying the VTT URL they would need to define what VTT they're using from a list of pre-defined options. Foundry, OtherVTTs.

Example Image:

Alternatively as mentioned in #179 you can perform a chrome.permissions request but instead of doing it for a user defined URL it could be done for all webpages. There's more information defined in the developer documentation: Chrome Dev Documentation

Primarily this alternative would require the addition of the following in the manifest.json "optional_permissions": [ "webNavigation", "http://*/*", "https://*/*" ],

In addition to requesting these permissions, as you mentioned at least one time. Either the very first time the settings are brought up, or VIA a button present in the settings.