jsbeeb problems locally

feedback, questions and discussion relating to www.bbcmicro.co.uk
Post Reply
User avatar
msknight
Posts: 853
Joined: Fri Apr 15, 2011 12:07 pm
Location: Sussex, UK
Contact:

jsbeeb problems locally

Post by msknight »

I've got a strange one.

This was working until a client upgrade of Firefox to 91.0.2 and it works in Chrome, so I'm suspecting a Firefox issue. It also works from the official web site, but not from a local web server

The screen comes up with all diagnostics windows and the emulator doesn't "boot."

I've got no clue how to take this forward as I've verified the the 404 files are indeed there, and all add-ins have been disabled. The only thing I can suspect is that locally I'm running http: as opposed to https: on the official web site.

I did set the variable privacy.file_unique_origin to false in the browser settings. Beyond that I'm scratching my head.

Code: Select all

GEThttp://192.168.0.3/favicon.ico
[HTTP/1.1 404 Not Found 0ms]

Source map error: Error: request failed with status 404
Resource URL: http://192.168.0.3/jsbeeb-master/lib/promise-6.0.0.js
Source Map URL: /polyfills/promise-6.0.0.js.map

Source map error: Error: request failed with status 404
Resource URL: http://192.168.0.3/jsbeeb-master/lib/underscore-min.js
Source Map URL: underscore-min.map

GL Canvas set up canvas.js:143:17
Loading OS from roms/os.rom 6502.js:866:25
Source map error: Error: request failed with status 404
Resource URL: http://192.168.0.3/jsbeeb-master/lib/popper.min.js
Source Map URL: popper.min.js.map

Loading ROM from roms/BASIC.ROM 6502.js:845:25
Loading ROM from roms/b/DFS-0.9.rom 6502.js:845:25
Loading disc from discs/elite.ssd fdc.js:8:17
event noted: exception thrown getGamepads@http://192.168.0.3/jsbeeb-master/main.js:578:34
sysvia/self.getGamepads@http://192.168.0.3/jsbeeb-master/via.js:575:24
sysvia/self.getJoysticks@http://192.168.0.3/jsbeeb-master/via.js:583:29
read@http://192.168.0.3/jsbeeb-master/via.js:273:44
Cpu6502/this.readDevice@http://192.168.0.3/jsbeeb-master/6502.js:643:44
Cpu6502/this.readmem@http://192.168.0.3/jsbeeb-master/6502.js:701:32
anonymous@http://192.168.0.3/jsbeeb-master/6502.opcodes.js line 1153 > Function:11:13
exec@http://192.168.0.3/jsbeeb-master/6502.opcodes.js:1156:38
Cpu6502/this.executeInternalFast@http://192.168.0.3/jsbeeb-master/6502.js:1069:33
Cpu6502/this.execute@http://192.168.0.3/jsbeeb-master/6502.js:1040:33
draw@http://192.168.0.3/jsbeeb-master/main.js:1385:36
FrameRequestCallback*draw@http://192.168.0.3/jsbeeb-master/main.js:1368:24
FrameRequestCallback*draw@http://192.168.0.3/jsbeeb-master/main.js:1368:24
FrameRequestCallback*draw@http://192.168.0.3/jsbeeb-master/main.js:1368:24
FrameRequestCallback*draw@http://192.168.0.3/jsbeeb-master/main.js:1368:24
FrameRequestCallback*draw@http://192.168.0.3/jsbeeb-master/main.js:1368:24
FrameRequestCallback*run@http://192.168.0.3/jsbeeb-master/main.js:1405:20
go@http://192.168.0.3/jsbeeb-master/main.js:1429:13
@http://192.168.0.3/jsbeeb-master/main.js:1244:13
promise callback*@http://192.168.0.3/jsbeeb-master/main.js:1220:22
execCb@http://192.168.0.3/jsbeeb-master/lib/require.js:29:311
check@http://192.168.0.3/jsbeeb-master/lib/require.js:18:423
enable/</<@http://192.168.0.3/jsbeeb-master/lib/require.js:23:9
u/<@http://192.168.0.3/jsbeeb-master/lib/require.js:8:102
emit/<@http://192.168.0.3/jsbeeb-master/lib/require.js:23:370
v@http://192.168.0.3/jsbeeb-master/lib/require.js:7:173
emit@http://192.168.0.3/jsbeeb-master/lib/require.js:23:341
check@http://192.168.0.3/jsbeeb-master/lib/require.js:19:403
enable/</<@http://192.168.0.3/jsbeeb-master/lib/require.js:23:9
u/<@http://192.168.0.3/jsbeeb-master/lib/require.js:8:102
emit/<@http://192.168.0.3/jsbeeb-master/lib/require.js:23:370
v@http://192.168.0.3/jsbeeb-master/lib/require.js:7:173
emit@http://192.168.0.3/jsbeeb-master/lib/require.js:23:341
check@http://192.168.0.3/jsbeeb-master/lib/require.js:19:403
enable@http://192.168.0.3/jsbeeb-master/lib/require.js:23:238
init@http://192.168.0.3/jsbeeb-master/lib/require.js:17:68
E@http://192.168.0.3/jsbeeb-master/lib/require.js:14:185
completeLoad@http://192.168.0.3/jsbeeb-master/lib/require.js:28:126
onScriptLoad@http://192.168.0.3/jsbeeb-master/lib/require.js:29:436
EventListener.handleEvent*g.load@http://192.168.0.3/jsbeeb-master/lib/require.js:34:4
load@http://192.168.0.3/jsbeeb-master/lib/require.js:29:264
load@http://192.168.0.3/jsbeeb-master/lib/require.js:18:31
fetch@http://192.168.0.3/jsbeeb-master/lib/require.js:17:490
check@http://192.168.0.3/jsbeeb-master/lib/require.js:19:471
enable@http://192.168.0.3/jsbeeb-master/lib/require.js:23:238
enable@http://192.168.0.3/jsbeeb-master/lib/require.js:27:466
enable/<@http://192.168.0.3/jsbeeb-master/lib/require.js:23:110
u/<@http://192.168.0.3/jsbeeb-master/lib/require.js:8:102
v@http://192.168.0.3/jsbeeb-master/lib/require.js:7:173
utils.js:807:17
Uncaught TypeError: navigator.getGamepads is not a function
    getGamepads http://192.168.0.3/jsbeeb-master/main.js:578
    getGamepads http://192.168.0.3/jsbeeb-master/via.js:575
    getJoysticks http://192.168.0.3/jsbeeb-master/via.js:583
    read http://192.168.0.3/jsbeeb-master/via.js:273
    readDevice http://192.168.0.3/jsbeeb-master/6502.js:643
    readmem http://192.168.0.3/jsbeeb-master/6502.js:701
    anonymous http://192.168.0.3/jsbeeb-master/6502.opcodes.js line 1153 > Function:11
    exec http://192.168.0.3/jsbeeb-master/6502.opcodes.js:1156
    executeInternalFast http://192.168.0.3/jsbeeb-master/6502.js:1069
    execute http://192.168.0.3/jsbeeb-master/6502.js:1040
    draw http://192.168.0.3/jsbeeb-master/main.js:1385
    draw http://192.168.0.3/jsbeeb-master/main.js:1368
    draw http://192.168.0.3/jsbeeb-master/main.js:1368
    draw http://192.168.0.3/jsbeeb-master/main.js:1368
    draw http://192.168.0.3/jsbeeb-master/main.js:1368
    draw http://192.168.0.3/jsbeeb-master/main.js:1368
    run http://192.168.0.3/jsbeeb-master/main.js:1405
    go http://192.168.0.3/jsbeeb-master/main.js:1429
    <anonymous> http://192.168.0.3/jsbeeb-master/main.js:1244
    promise callback* http://192.168.0.3/jsbeeb-master/main.js:1220
    execCb http://192.168.0.3/jsbeeb-master/lib/require.js:29
    check http://192.168.0.3/jsbeeb-master/lib/require.js:18
    enable http://192.168.0.3/jsbeeb-master/lib/require.js:23
    u http://192.168.0.3/jsbeeb-master/lib/require.js:8
    emit http://192.168.0.3/jsbeeb-master/lib/require.js:23
    v http://192.168.0.3/jsbeeb-master/lib/require.js:7
    emit http://192.168.0.3/jsbeeb-master/lib/require.js:23
    check http://192.168.0.3/jsbeeb-master/lib/require.js:19
    enable http://192.168.0.3/jsbeeb-master/lib/require.js:23
    u http://192.168.0.3/jsbeeb-master/lib/require.js:8
    emit http://192.168.0.3/jsbeeb-master/lib/require.js:23
    v http://192.168.0.3/jsbeeb-master/lib/require.js:7
    emit http://192.168.0.3/jsbeeb-master/lib/require.js:23
    check http://192.168.0.3/jsbeeb-master/lib/require.js:19
    enable http://192.168.0.3/jsbeeb-master/lib/require.js:23
    init http://192.168.0.3/jsbeeb-master/lib/require.js:17
    E http://192.168.0.3/jsbeeb-master/lib/require.js:14
    completeLoad http://192.168.0.3/jsbeeb-master/lib/require.js:28
    onScriptLoad http://192.168.0.3/jsbeeb-master/lib/require.js:29
    load http://192.168.0.3/jsbeeb-master/lib/require.js:34
    load http://192.168.0.3/jsbeeb-master/lib/require.js:29
    load http://192.168.0.3/jsbeeb-master/lib/require.js:18
    fetch http://192.168.0.3/jsbeeb-master/lib/require.js:17
    check http://192.168.0.3/jsbeeb-master/lib/require.js:19
    enable http://192.168.0.3/jsbeeb-master/lib/require.js:23
    enable http://192.168.0.3/jsbeeb-master/lib/require.js:27
    enable http://192.168.0.3/jsbeeb-master/lib/require.js:23
    u http://192.168.0.3/jsbeeb-master/lib/require.js:8
    v http://192.168.0.3/jsbeeb-master/lib/require.js:7
main.js:578:34
Content Security Policy: Ignoring “'report-sample'” within script-src: ‘strict-dynamic’ specified
Content Security Policy: Ignoring “'unsafe-inline'” within script-src: ‘strict-dynamic’ specified
Content Security Policy: Ignoring “http:” within script-src: ‘strict-dynamic’ specified
Content Security Policy: Ignoring “https:” within script-src: ‘strict-dynamic’ specified
Content Security Policy: Couldn't process unknown directive 'noscript-marker'
Content Security Policy: Couldn't process unknown directive 'script-src-elem'
Content Security Policy: Couldn't process unknown directive 'script-src-attr'
Content Security Policy: Couldn't process unknown directive 'noscript-marker'
Content Security Policy: Couldn't process unknown directive 'script-src-elem'
Content Security Policy: Couldn't process unknown directive 'script-src-attr'
Content Security Policy: Couldn't process unknown directive 'noscript-marker'
Content Security Policy: Couldn't process unknown directive 'script-src-elem'
Content Security Policy: Couldn't process unknown directive 'script-src-attr'
Content Security Policy: Ignoring “'report-sample'” within script-src: ‘strict-dynamic’ specified
Content Security Policy: Ignoring “'unsafe-inline'” within script-src: ‘strict-dynamic’ specified
Content Security Policy: Ignoring “http:” within script-src: ‘strict-dynamic’ specified
Content Security Policy: Ignoring “https:” within script-src: ‘strict-dynamic’ specified
Content Security Policy: Couldn't process unknown directive 'noscript-marker'
Content Security Policy: Couldn't process unknown directive 'script-src-elem'
Content Security Policy: Couldn't process unknown directive 'script-src-attr'
Content Security Policy: Couldn't process unknown directive 'noscript-marker'
Content Security Policy: Couldn't process unknown directive 'script-src-elem'
Content Security Policy: Couldn't process unknown directive 'script-src-attr'
Content Security Policy: Couldn't process unknown directive 'noscript-marker'
Content Security Policy: Couldn't process unknown directive 'script-src-elem'
Content Security Policy: Couldn't process unknown directive 'script-src-attr'
Loading failed for the <script> with source “https://apis.google.com/js/googleapis.proxy.js?onload=startup”. proxy.html:11:1
Content Security Policy: Couldn't process unknown directive 'script-src-elem'
Content Security Policy: Couldn't process unknown directive 'script-src-attr'
Content Security Policy: The page's settings blocked the loading of a resource at inline ("script-src"). 3 proxy.html:6:1
Content Security Policy: The page's settings blocked the loading of a resource at https://apis.google.com/js/googleapis.proxy.js?onload=startup ("script-src"). 3
Content Security Policy: The page's settings blocked the loading of a resource at inline ("script-src"). 10 moz-extension:35:9
Attachments
Screenshot at 2021-09-10 16-14-04.jpg
User avatar
lovebug
Posts: 817
Joined: Sun Jan 31, 2021 5:07 pm
Location: Magrathea
Contact:

Re: jsbeeb problems locally

Post by lovebug »

im just uploading jsbeeb to http:// one moment...
Image Image Image
User avatar
lovebug
Posts: 817
Joined: Sun Jan 31, 2021 5:07 pm
Location: Magrathea
Contact:

Re: jsbeeb problems locally

Post by lovebug »

I uploaded it to my raspberry pi on http and it doesnt load the default game (ladybug) but instead gives the same issue showing some debug stuff
http://lovebug.servegame.com:32767/misc/more/jsbeeb/
Attachments
Screenshot 2021-09-12 at 15-56-03 jsbeeb - Javascript BBC Micro emulator.png
Image Image Image
User avatar
msknight
Posts: 853
Joined: Fri Apr 15, 2011 12:07 pm
Location: Sussex, UK
Contact:

Re: jsbeeb problems locally

Post by msknight »

Good to know I'm not the only one :-)

I am totally at a loss to work out what's going on. There seems to be an error (in the log) that Firefox is picking up, but I doubt that is the issue. I am starting to suspect an issue with pulling some of the resources from Google on https when the initial site has been loaded via http... possible script protection. But I wouldn't know where to even start troubleshooting this as I know no js.
User avatar
lovebug
Posts: 817
Joined: Sun Jan 31, 2021 5:07 pm
Location: Magrathea
Contact:

Re: jsbeeb problems locally

Post by lovebug »

i think you're right it could be a google drive issue, i dont know javascript well but i'll try to disable the google drive and see if it works
Image Image Image
User avatar
msknight
Posts: 853
Joined: Fri Apr 15, 2011 12:07 pm
Location: Sussex, UK
Contact:

Re: jsbeeb problems locally

Post by msknight »

I've managed to get no further forward with the problem, and I don't think anyone else has spotted it either as there don't seem to be mentioned on the github.
User avatar
Matt Godbolt
Posts: 242
Joined: Mon Jul 31, 2006 11:02 am
Location: Chicago
Contact:

Re: jsbeeb problems locally

Post by Matt Godbolt »

Hey there!

Wow, I've not seen that before! Looks like Firefox is starting to put some pretty heavy "Content Security Policy" stuff. I'll check it out, thanks for the heads up!
User avatar
Matt Godbolt
Posts: 242
Joined: Mon Jul 31, 2006 11:02 am
Location: Chicago
Contact:

Re: jsbeeb problems locally

Post by Matt Godbolt »

I'm currently unable to reproduce with FF 92.0.

Can you try editing the `index.html` on your local and removing the:

Code: Select all

    <meta http-equiv="Content-Security-Policy"
          content="script-src 'self' 'unsafe-inline' 'unsafe-eval' *.google-analytics.com *.google.com;"/>
and see if that helps?
User avatar
Matt Godbolt
Posts: 242
Joined: Mon Jul 31, 2006 11:02 am
Location: Chicago
Contact:

Re: jsbeeb problems locally

Post by Matt Godbolt »

Ah! I repro'd if I use the IP address of my computer. There must be some magic special workaround stuff for `localhost` and `127.0.0.1`
User avatar
Matt Godbolt
Posts: 242
Joined: Mon Jul 31, 2006 11:02 am
Location: Chicago
Contact:

Re: jsbeeb problems locally

Post by Matt Godbolt »

Looks like the culprit is `Uncaught TypeError: navigator.getGamepads is not a function` ! Investigating...
User avatar
Matt Godbolt
Posts: 242
Joined: Mon Jul 31, 2006 11:02 am
Location: Chicago
Contact:

Re: jsbeeb problems locally

Post by Matt Godbolt »

Fix pushed in commit a172752ee1a836a3d4ea4393b95f38fc8873ad43 :) Let me know if that fixes everything for you!
User avatar
msknight
Posts: 853
Joined: Fri Apr 15, 2011 12:07 pm
Location: Sussex, UK
Contact:

Re: jsbeeb problems locally

Post by msknight »

It seems to not work when an IP is specified, whether local or another web servers. If you spark up a Pi http server like lovebug did, I suspect it will also fail.
User avatar
msknight
Posts: 853
Joined: Fri Apr 15, 2011 12:07 pm
Location: Sussex, UK
Contact:

Re: jsbeeb problems locally

Post by msknight »

Wow, that was fast!!!!
User avatar
Matt Godbolt
Posts: 242
Joined: Mon Jul 31, 2006 11:02 am
Location: Chicago
Contact:

Re: jsbeeb problems locally

Post by Matt Godbolt »

I'm just glad it was an easy one :)
User avatar
lovebug
Posts: 817
Joined: Sun Jan 31, 2021 5:07 pm
Location: Magrathea
Contact:

Re: jsbeeb problems locally

Post by lovebug »

thanks for the fix :D
Image Image Image
Post Reply

Return to “the complete BBC games archive”