For instrumenting:
We could maybe use the search engine to look for strings that look suspicious (perhaps insource:/on\w+=/ intitle:js
. insource:/javascript:/ intitle:js
yields quite a lot actually. I think part of the problem there is there is no way to pass a function to mw.util.addPortlesLink currently.
Ultimately, we won't have a true idea until we start actually adding the Content-Security-Policy-Report-Only header. At the initial stage, we could also only add the header to something like 0.1% of users, so we don't end up drowning in reports.
For separating on to separate domains:
The main reason that the policy is long is for compatability with user scripts loading things from other sites. If we're willing to break that (When I first wrote the RFC I thought it would be bad to break that, but now I actually am more leaning towards allowing that, especially if we still allow meta), we could simply use 'self' after every keyword, and I think that would be very easy to understand.
If we do decide to limit default-src (or more specificly connect-src) we would need the full list of wikimedia domains in order to do CORS.
So I don't think we'd actually get much from separating out those content types into separate domains.