I'm not yet sure whether this all should somehow take account priorities in
different tabs. Should background tab's "CRITICAL" be less critical than
in foreground tab.
Perhaps that kind of thing could be optimized later if needed.

Hi,
For our WebGL application, we stream down hundreds of individual assets to load a scene. Some of these assets (skeletons, meshes, low-res textures) are far more important than others (high-res textures). In addition, some objects in a 3D scene are more important than others. Your own 3D character is more important than others. The room is more important than props in the room.
In our native applications, we have the ability to prioritize network traffic appropriately, but on the web, we don't. Being able to prioritize XMLHttpRequest would be a large improvement to our customer experience.
Thanks,
Chad

We actually want HTTP so we can leverage CDNs, Varnish, and the browser's cache. All of our 3D assets are indexed by hash and thus infinitely cacheable, so, while pushing data with WebSockets might be an improvement on the initial load, it doesn't help at all for subsequent loads.
HTTP + priority would be perfect for this use case.