Closed Bug 738874 Opened 11 years ago Closed 11 years ago

Don't allow non-classinfo XPCWNs to be wrapped cross-compartment


(Core :: XPConnect, defect)

Not set





(Reporter: bholley, Assigned: bholley)




(1 file)

I was pretty surprised to discover that we do this, since it breaks identity invariants (only showed up in the a11y tests, surprisingly). Thankfully, with bug 734475, we now have a proper fix.

Before landing this, I want to test with my instrumentation from bug 734475 to make sure that this doesn't cause us to take an unreasonable number of unions.
Attached patch patch. v1Splinter Review
Attaching a patch. Flagging mrbkap for review.
Attachment #608940 - Flags: review?(mrbkap)
Attachment #608940 - Flags: review?(mrbkap) → review+
This patch reveals more test issues with cpg that were getting masked by wrapping objects that we shouldn't have. But it's fine to land on m-c (with a small test fix).

Pushed to m-c:
Target Milestone: --- → mozilla14
(In reply to Bobby Holley (:bholley) from comment #3)
> Pushed to m-c:

Correction: pushed to _inbound_
Closed: 11 years ago
Resolution: --- → FIXED
I just did the measurement about native set unions. I ran them on the places browser-chrome tests, which run for about a minute on my machine.

============XPCNativeSet Union Statistics=============
Total calls to Union Creator: 80270
Maximum set size encountered: 7
Number of times we reused the first set: 75585
Number of times we reused the second set: 4685
Number of times we made a new set: 0
Maximum number of incremental sets created while making a new set: 0

If the reuse the first set, we do a maximum of setSize^2 pointer comparisons. I think this is acceptable.
You need to log in before you can comment on or make changes to this bug.