* [web] provide an actual rootFolder from EditorProviders in tests
- Fixup SocketIOMock and ShareJS mocks to provide the complete interface
- Extend SocketIOMock interface to count event listeners
- Fixup test that did not expect to find a working rootDoc
* [web] expose imageName from ProjectContext
* [clsi-cache] check compiler settings before using compile from cache
* [web] avoid fetching initial compile from clsi-cache in PDF detach tab
GitOrigin-RevId: e3c754a7ceca55f03a317e1bc8ae45ed12cc2f02
* [haproxy] add support for xhr-polling in real-time
* [web] try 3 WebSockets then fallback to xhr-polling when (re-)connecting
* [web] ensure old socket.io transport has been closed when reconnecting
* [web] close xhr-polling transport before leaving the page
This will de-register the client, leave the project and clean up the
connected clients tracking ASAP.
* [web] rename constant to avoid confusion
Co-authored-by: Alf Eaton <alf.eaton@overleaf.com>
---------
Co-authored-by: Alf Eaton <alf.eaton@overleaf.com>
GitOrigin-RevId: 55e500c341145947e5589875438fc796394b6ae4