webrecorder / replayweb.page

Serverless replay of web archives directly in the browser
https://replayweb.page
GNU Affero General Public License v3.0
707 stars 58 forks source link

[Bug]: Ruffle failed to load the Flash SWF file #349

Open Shrinks99 opened 4 months ago

Shrinks99 commented 4 months ago

ReplayWeb.page Version

v2.1.1

What did you expect to happen? What happened instead?

When loading an archive that uses Flash (https://ysdn.info/archives/2009) Ruffle is unable to load https://www.apassionatecuriosity.com/float-quick.swf, a SWF file that does exist in the archive. This results in a 404, and Ruffle saying that: Access to fetch has likely been blocked by CORS policy.

CORS seems to be set up correctly for the site, all of the other archives function as expected in ReplayWeb.page, and all the archives are stored in Backblaze. This could very well be a configuration issue on my end, but we don't seem to document anything beyond what I've done. Finally, Ruffle also works properly when running the site locally which is doubly frustrating! Everything also works on ReplayWeb.page and in the ArchiveWeb.page app.

Step-by-step reproduction instructions

  1. Navigate to https://ysdn.info/archives/2009 and observe the site being broken.
  2. Clone the repo and follow the development instructions if you want to build the site locally and check that everything is embedded properly on your local machine.
    • None of the archive files are actually included in the repo and are all also loaded off Backblaze.
  3. Download the archive in question and try to run it locally with ReplayWeb.page.

Additional details

My Backblaze CORS config:

[
    {
        "corsRuleName": "downloadFromAllowed",
        "allowedHeaders": [
            "*"
        ],
        "allowedOperations": [
            "s3_head",
            "b2_download_file_by_id",
            "b2_download_file_by_name",
            "s3_get"
        ],
        "allowedOrigins": [
            "https://ysdn.info",
            "http://localhost:4000",
            "http://127.0.0.1:4000"
        ],
        "exposeHeaders": [
            "content-type",
            "X-Bz-Content-Sha1"
        ],
        "maxAgeSeconds": 3600
    }
]