The fact that it runs at all is an amazing achievement. Kudos to the team that managed to shoehorn it in.
What is likely to be seen as a bug by others, is actually the thing that gives me hope. There's no way for a WebAssembly program to access the host file system. I hope it stays that way.
If the Wasm host can, in a foolproof and easy to verify way, offer the user dialog boxes to read/write single files... we'd have the "PowerBox" that is required to make a modern capability based operating system.
Preventing a process from deciding itself which files to access disables so many attack vectors.
> Preventing a process from deciding itself which files to access disables so many attack vectors.
It also disables a lot of existing use cases and file types (basically any multi-file file format):
Multi-part archives, multi-part video files, playlists, videos with separate subtitle files, HTML documents containing links to other local HTML documents or referencing various sub-resources (images/videos/audio/style sheets/scripts/...), Audacity projects, images with metadata in external sidecar files, ditto for georeferenced images, QGIS projects, AutoCAD's lock file implementation, DWG files as such, …
Edit: And since we're talking about Office software: Spreadsheets referencing data from other spreadsheets stored in separate files…
It would work differently. Libre office would think it was accessing a local file, but really it would be whatever the JavaScript tells it exists. So you might be able to implement a rudimentary online doc and storage system using this if your users could suffer tab sizes of 300MiB for every open doc.
What is likely to be seen as a bug by others, is actually the thing that gives me hope. There's no way for a WebAssembly program to access the host file system. I hope it stays that way.
If the Wasm host can, in a foolproof and easy to verify way, offer the user dialog boxes to read/write single files... we'd have the "PowerBox" that is required to make a modern capability based operating system.
Preventing a process from deciding itself which files to access disables so many attack vectors.