For your first question… As the engine is not initialized yet while the download continues, it is not possible to do something in UE4… not without writing something in JS.
First you need to write something that is capable of viewing multiple progress bars, as the promise system downloads multiple files at once.
The original html file that is created on packaging uses jquery (what a waste of memory and cpu) for creating promises that use jquery’s ajax.
You can override the current onprogress method and direct your percentage to your own progress bar.
If you want to track the download of the memory and data files, you need to check Module"setStatus"], as this is called while emcc’s generated js downloads the file.
Code is there, for my taste, a little badly written but is readable and can be easily change.
For a proof of concept, you can check this one out: http://thekid.com
It is not finalized yet, but you’ll see what is working how. (Check http://world1.thekid.com/js/game/game.js for some more details, or simply hack your way around in js files).
For the second part, you need to force focus to the canvas (which ue4 will do automatically). You might be missing the popup that is saying “this page is trying to take control of your mouse”… Refresh the page you’ll see it.