[x] Addons can schedule asynchronous ("multi-frame") tasks that run over multiple frames - handled by the engine
[x] The status of a scheduled task can be queried via the C_Rendering API
[x] Until the task has finished, a basic loading screen widget is displayed
[x] It should have a foreground image that can be adjusted via its API (e.g., to display a logo over the background)
[x] It should also have a background image that can be set
[x] It should have a spinning indicator (a very basic CSS animation will suffice for now)
[x] It should have a progress text that can be dynamically updated (static text only, for now)
[x] The loading screen should overlay all other UI elements (i.e., render at the FRAME_STRATA_FULLSCREEN_OVERLAY z-index)
The tasks need to be deferred so that the browser's layout engine has time to render the loading screen widget. To simplify things, only one task should be considered, since it's just a function that could combine multiple tasks if that were needed.
Since there's no proper API to configure frame strata and levels, I just hardcoded the z-index for now... It will have to be streamlined at some point in the future (see #12).
Goals:
C_Rendering
APIFRAME_STRATA_FULLSCREEN_OVERLAY
z-index)The tasks need to be deferred so that the browser's layout engine has time to render the loading screen widget. To simplify things, only one task should be considered, since it's just a function that could combine multiple tasks if that were needed.