RFR: 8297609: Add application/wasm MIME type for wasm file extension [v2]

Jaikiran Pai jpai at openjdk.org
Wed Nov 30 00:58:16 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:
>> 
>> ![bad](https://user-images.githubusercontent.com/691097/203292673-dff79256-7286-42b1-9b72-60ff6e9aadd3.png)
>> 
>> 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`:
>> 
>> ![good](https://user-images.githubusercontent.com/691097/203293296-77ff4913-b86d-45fe-976e-8cbcde79da36.png)
>> 
>> 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

Thank you for these changes. These look fine to me.

-------------

Marked as reviewed by jpai (Reviewer).

PR: https://git.openjdk.org/jdk/pull/11284


More information about the net-dev mailing list