There's no way for a site to securely store keys in the browser. The server can't put them there because then the server would have them too. A client-side script could generate them, but it can't store them without extensions (or the server via some JS it sends) also having access to them.
This is why Signal and WhatsApp require the client to run on the phone - the phones are doing the decryption for the web apps.
This is flaky, consumes a lot of battery and generally is somewhat error-prone - probably not something FB wants to deal with.