quixe icon indicating copy to clipboard operation
quixe copied to clipboard

Add an option to disable CORS proxy

Open juhana opened this issue 5 years ago • 2 comments

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:

  1. 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.)
  2. 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)

juhana avatar Jul 27 '20 12:07 juhana

This makes sense to me. Can you write a PR, or should I try it?

erkyrath avatar Jul 27 '20 16:07 erkyrath

@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.

juhana avatar Jul 27 '20 17:07 juhana