quixe
quixe copied to clipboard
Add an option to disable CORS proxy
Quixe automatically uses a proxy to download the story file if it detects that it's not on the same domain. There are two cases where the proxy makes things worse rather than better:
- The file is on a different domain, but the server sets the correct CORS headers so it works without the proxy. The file might be inaccessible to the proxy (localhost, internal network etc.)
- The URL is a data URL (
data:...)
A workaround is to load the story file manually and pass it to GiLoad.load_run() to start the game.
Arguably case 2 is a bug and it should detect data URLs, but for case 1 we'd need either that setting the proxy URL option to null would disable it altogether, or a separate setting that disables the proxy. Preferably with options auto-detection (current behavior), always enabled or always disabled. HugoJS has this setting:
// use a CORS proxy to load game files?
// "always" (or true), "never" (or false), or "auto".
// The "auto" option uses proxy only if the story URL points to another domain.
use_proxy: "auto"
(For reference, same issue posted to Parchment: https://github.com/curiousdannii/parchment/issues/71)
This makes sense to me. Can you write a PR, or should I try it?
@curiousdannii said he's going to rewrite this part for Parchment, maybe wait for that so we'll get similar interfaces for both interpreters? I can then use it to make a PR for Quixe.