RFR: 8297609: Add application/wasm MIME type for wasm file extension [v2]
Michal Karm Babacek
duke at openjdk.org
Tue Nov 29 21:09:17 UTC 2022
On Tue, 29 Nov 2022 19:23:21 GMT, Michal Karm Babacek <duke at openjdk.org> wrote:
>> This PR adds a missing MIME: application/wasm and unifies the file format on tabs, as that seemed to be the winning side of the tabs/spaces war in this file.
>>
>> # How to reproduce
>>
>> You will need to compile a `.c` file to a `.wasm` binary. Use [Emscripten SDK](https://emscripten.org/docs/getting_started/downloads.html) for that or download the prebuilt files from this post, [out.zip](https://github.com/openjdk/jdk/files/10066496/out.zip), if you choose to trust me with your browser...
>>
>> ## Sources
>>
>> `main.c`:
>>
>> #include <stdio.h>
>>
>> int main() {
>> printf("Hello browser debug console...\n");
>> }
>>
>>
>> `Server.java`:
>>
>> import com.sun.net.httpserver.HttpServer;
>> import com.sun.net.httpserver.SimpleFileServer;
>>
>> import java.net.InetAddress;
>> import java.net.InetSocketAddress;
>> import java.nio.file.Path;
>>
>> import static java.lang.System.exit;
>> import static java.lang.System.out;
>>
>> public class Server {
>> public static void main(String... args) {
>> if (args.length != 2) {
>> out.println("Usage: java Server <port> <web dir path>");
>> exit(1);
>> }
>> final int port = Integer.parseInt(args[0]);
>> final InetSocketAddress ADDR = new InetSocketAddress(InetAddress.getLoopbackAddress(), port);
>> final Path root = Path.of(args[1]).toAbsolutePath();
>> final HttpServer server = SimpleFileServer.createFileServer(ADDR, root, SimpleFileServer.OutputLevel.VERBOSE);
>> out.printf("Starting serving files from %s dir: http://%s:%d\n", root, ADDR.getAddress().getHostAddress(), port);
>> server.start();
>> }
>> }
>>
>> ## Build
>>
>> $ mkdir out
>> $ emcc main.c -s WASM=1 -o out/main.html
>> $ ls out/
>> main.html main.js main.wasm
>>
>> You can have these files here, built by me: [out.zip](https://github.com/openjdk/jdk/files/10066496/out.zip)
>>
>> ## Execution
>>
>> $ java --version
>> openjdk 19.0.1 2022-10-18
>> $ javac Server.java
>> $ java Server 8888 ./out/
>> Starting serving files from /tmp/hello_wasm/./out dir: http://127.0.0.1:8888
>>
>>
>> When I open my Firefox 106.0.5 (64-bit), I can see that the Java server offers the `.wasm` file with a suboptimal `application/octet-stream` MIME:
>>
>> 
>>
>> When I switch to the JDK patched with this patch and run the server again:
>>
>> $ java Server 8888 ./out/
>> Starting serving files from /tmp/hello_wasm/./out dir: http://127.0.0.1:8888
>>
>> I can see that the `.wasm` file is properly served to Firefox as `application/wasm`:
>>
>> 
>>
>> Thank you for your time.
>>
>> Cheers
>> K.
>
> Michal Karm Babacek has updated the pull request incrementally with one additional commit since the last revision:
>
> Adds test for MIME application/wasm
I: Configuring ca-certificates...
W: Failure while configuring base packages. This will be re-attempted up to five times.
W: See /home/runner/work/jdk/jdk/sysroot/debootstrap/debootstrap.log for details (possibly the package libasound2:riscv64 is at fault)
I'd say unrelated to the PR...?
-------------
PR: https://git.openjdk.org/jdk/pull/11284
More information about the net-dev
mailing list