So a very very very specific XSS vulnerability that affects the key generation process. I'm pretty sure that can be solved by not allowing any user input during the generation.
> Second attack vector: Third-party JS libraries. If Coinbase is loading JS from any external source
So don't load any external JS libraries on the key-generating pages.
> The third attack vector, which a sibling comment mentioned, is a rogue browser extension.
That's ridiculous. If you download malware on any OS, and allow it to run, it can do whatever within whatever permissions you allowed. Malware has been stealing money and identities long before Bitcoin was invented. Users need to learn not to install crap.
That can also be solved at the browser level - a website should be able to request a secure extension-less mode.