Earlier quoted context omitted.
Chat is probably one of the only functionalities that are still better served by an ad-hoc app If you need notifications, just use a native app (or even a web one wrapped in a native app) Anyway, most of these "features" are used because they are already there, remove them from the base install of the browser, distribute them as a plugin and make the devs consider that the feature could not be present and they will s…
This is not just about chat. Ever tried to build a cross-device synchronization without being able to push updates to clients? It sucks. The user doesn't know that another user changed something until he opens the app and then the app has to fetch and integrate all updates since the last interaction with the app and the user has to wait until his app is ready.
Most app that need to push updates to the client do it by having a background service talking to the update server or polling for updates
You can even do it via HTTP(S) if every other protocol is blocked by a firewall or a corporate proxy