CSPSourceList.prototype.equals compares two source lists by doing two checks:
1. their length is equal
2. each of the items in the sorted list of sources is equal
This causes * and 'none' to be considered equal because they both have an empty internal source list.
Fixing this bug is trivial. It is, however, hiding a bug in content/base/test/unit/test_bug558431.js. Only that test has the bug, NOT the feature it's testing, so we don't need to worry about fixing this for Firefox 4. I'll file a follow-up bug to fix that test.
Created attachment 512965 [details] [diff] [review]
Created attachment 628889 [details] [diff] [review]
unbitrotted trivial fix and added test cases. jst: this is literally a three line fix (two that matter), touching only CSPUtils.jsm. Can you take a quick look?
Pushed to inbound.