Would it work to sample the compartment checks? Make them a no-op for 999/1000 
of the cases? You'd probably find the ones you cared about, if the (annotated) 
crash reports are what you need. Could even submit a "soft crash".

phone-typed


On Nov 21, 2012, at 1:44 PM, Boris Zbarsky <[email protected]> wrote:

> On 11/21/12 2:13 PM, Bobby Holley wrote:
> 
>> 1 - Objects cannot reach cross-compartment objects without going through a
>> cross-compartment wrapper (and thus receiving a security audit from
>> XPConnect).
> 
> This is empirically false in Gecko.  See testcase in your email.
> 
> This invariant _would_ be true if we exercised all possible codepaths in our 
> tests; then our compartment-mismatch assertions would catch it.  But we don't 
> exercise all codepaths in our tests...
> 
> So we've replaced one sort of whack-a-mole with another, slightly more 
> manageable one: JS_WrapValue/Object whack-a-mole, hopefully enforced by 
> sufficient test coverage.
> 
> The question is whether we can do anything better.  And maybe not involving 
> the performance pain of JS_WrapValue/Object....
> 
>> Now, the flip side of this is that same operations that could have
>> potentially violated the above invariants now manifest themselves as
>> compartment mismatches.
> 
> Which are not fatal in release builds, note.
> 
>> But I contend that this is much better than the alternative
> 
> Sure.
> 
>> I think these invariants are extremely important, and I haven't thought of
>> a way to make them happen without callers being minimally aware of them (in
>> the sense of 'enter a compartment').
> 
> I think the long-term path forward here is to excise all non-binding JSAPI 
> usage from the DOM, because I'm becoming more and more convinced that there 
> are too many footguns in JSAPI that people are just not aware of.  And trying 
> to make them aware is a waste of resources, in my opinion, especially as the 
> set of things to be aware of keeps changing.
> 
>> then I think we should just make compartment checking run on release builds
> 
> I doubt the perf hit there is acceptable, unfortunately.  :(
> 
> -Boris
> _______________________________________________
> dev-tech-js-engine-internals mailing list
> [email protected]
> https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals
_______________________________________________
dev-tech-js-engine-internals mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals

Reply via email to