Also interesting for the future could be Emscripten.
But in order to utilize Emscripten it would be required to replace DirectX with OpenGL ES, OpenAl, SDL, ... and get rid of any other Windows specific code... which will be the main problem for any port to a different platform.

Emscripten provides common APIs like mentioned above and can compile to asm.js - which means - yes, exactly - you can run everything in a browser.

Unity5 is using this approach as well, and it's working pretty cool.
Also more and more emulators are going that way, including Dosbox. No more Java applets, no more plugins!