RFR: 8297609: Add application/wasm MIME type for wasm file extension [v2]
Michael McMahon
michaelm at openjdk.org
Wed Nov 30 08:43:25 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
Seems like a reasonable change. I added a comment to the bug report to the effect that there's an existing system property that might be useful here as well. "content.types.user.table" overrides the location of the file being updated here. We're also going to look into updating that mechanism to load a separate file with additional entries to add to the default file.
-------------
Marked as reviewed by michaelm (Reviewer).
PR: https://git.openjdk.org/jdk/pull/11284
More information about the net-dev
mailing list