Right, I've realized that I asked too many questions in this thread, so I tried to ask more focused question here. You did not answer it, so let me as the most interesting (to me) question:
>> If the answer to the question above is "Arcan will use a different external client for each", then how will those clients be managed? Is there going to be a allow-list of video codecs and text renderers hardcoded into the browser? Or any site can specify any requirement, and browser will just go fetch it automatically on first visit? ...
Since you mention "API breaks", it sounds like list of clients is hardcoded in browser version. So what is the innovation compared to existing web, _from the standpoint of the website author_? I see the the following items:
- Discrete "API Levels" instead of forever backwards compatibility. More bundled libraries.
- Lua instead of Javascript, no WASM or any other low-level/compiled code
- No "HTML equivalent" - if a page wants to do text layout, then it has to pull layout library
- Bundle all libraries in initial package instead of loading them dynamically
- No third-party storage, and maybe first-party is optional too (not sure what's the plat for this.. user prompt? explicit action?)
Did I get this right? did I miss something?
(From what I see, the SHMIF, pledge, Decode/Encode/Network/Terminal, and all this stuff is basically internal browser implementation detail - cool to know if you are a browser author, but does not matter for your typical page writer, right?)
>> If the answer to the question above is "Arcan will use a different external client for each", then how will those clients be managed? Is there going to be a allow-list of video codecs and text renderers hardcoded into the browser? Or any site can specify any requirement, and browser will just go fetch it automatically on first visit? ...
Since you mention "API breaks", it sounds like list of clients is hardcoded in browser version. So what is the innovation compared to existing web, _from the standpoint of the website author_? I see the the following items:
- Discrete "API Levels" instead of forever backwards compatibility. More bundled libraries.
- Lua instead of Javascript, no WASM or any other low-level/compiled code
- No "HTML equivalent" - if a page wants to do text layout, then it has to pull layout library
- Bundle all libraries in initial package instead of loading them dynamically
- No third-party storage, and maybe first-party is optional too (not sure what's the plat for this.. user prompt? explicit action?)
Did I get this right? did I miss something?
(From what I see, the SHMIF, pledge, Decode/Encode/Network/Terminal, and all this stuff is basically internal browser implementation detail - cool to know if you are a browser author, but does not matter for your typical page writer, right?)