Looking more deeply into the HiDPI support on the HTML backend, it's not doing what I intended, which is probably why it's broken.
If you are running on a HiDPI display that uses 2 real pixels for every "logical" pixel, then the default scale factor is 2. If you change that to 1, I want PlayN to make logical pixels equal to real pixels, so that you get a viewport that is 2x wider and 2x taller and then you can do what you want with all those pixels. But that's not what the HTML backend is doing right now. Instead it's just shrinking the framebuffer and then the web browser scales up that small framebuffer to fill the whole space and everything is blurry.
So I'll fix the HTML backend to do the "right" thing, and then maybe you can let me know if I've totally broken your use case. :)