Bug 1069075 - Fix race condition in flushing pluginData cache in PluginContent.jsm. r=gfritzsche.

--HG--
extra : rebase_source : 0a0c801e0a8802e0a8ae04ac34e9977576f64e1e
extra : histedit_source : 03138083b2ac0892c2d66898db918528dda01fe0
Bug 1069075 - Send location along with CTP messages. r=gfritzsche.

Before, we were comparing Principals sent up from PluginContent against the
Principal of the selected browser - this was in order to account for races
(and intermittent oranges) where the browser has moved away from a page before
a CTP message has been received by the parent.

Comparing Principals works beautifully, except in the case of Data URIs, since
Data URIs inherit the Principals of the page they were linked from. That means
that if we're on a page with a link to a Data URI that embeds a plugin, if we
quickly browse to that page and back before a CTP message reaches the parent,
when the CTP message finally arrives, the Principals will match. We solve this
by sending the location as well as the Principal, to do a final comparison if
the Principals do match.

--HG--
extra : rebase_source : 095706306d241a254f62b28527a96a427d7e55c3
extra : histedit_source : 3afe814271166f70afce6a423bbb7809c5a983c7