Support for the web crypto API is allright, but not perfect. According to caniuse.com it got 91.5% support:
- You'll need to use prefixes for some older browsers, and deal with some inconsistencies in the IE 11 version of the API.
- Older versions of IE than 11 have no support at all. But that's only a 0.3% of global usage.
- Your big problems are two mobile browsers - Opera Mini (2.3%) and the Android browser (0.8%). They have no support. However, usage of these might vary across the world. Opera Mini, for instance, is big in the developing world but not so much elsewhere.
What's important here is that you need to completely disable your application (or at least the sensitive parts) if the crypto API is not supported. Falling back on something terrible such as Math.random
is not an option. Telling 8.5% of your users they can't use your site might off course cause some PR problems...
I'd say you need to have a very special use case for this to be motivated. But you seem to be familiar with the criticism, so I will not reiterate that. Just make sure your problem isn't already solved by the correct use of HTTPS.