How to tunnel HTTP over SSH via SOCKS?

Your SSH command with -D is fine (so the SOCKS will tunnel it's just the connecting to the SOCKS via HTTP, that you have to sort out)

I get good output with

curl --socks5 127.0.0.1:8080 http://blah

but I get the same wrong output you get if I do

 curl --proxy 127.0.0.1:8080 http://blah

So, firefox is connecting as if it's an HTTP Proxy

Looking at the firefox window

manual config YES

you said you ticked "use this proxy server for all protocols" That is a totally wrong move! You want to enter a SOCKS proxy, and if you do that then the SOCKS box get nulled/greyed out and you can only enter an HTTP Proxy.

So don't tick that.

And do, enter the socks proxy ip.

and remove where it says no proxy for 127.0.0.1,localhost . if it says that, which is default.