Commit Graph

1660 Commits

Author SHA1 Message Date
Bill McCloskey
87e444edff Bug 747066 - Inline xpc_UnmarkGray (r=terrence)
--HG--
extra : rebase_source : 9a5fe3cdcac2e3352407031c969ed705b0458dab
2012-11-19 10:59:01 -08:00
Peter Van der Beken
f19a710259 Fix for bug 814195 (Replace Element quickstubs with new binding methods). r=bz.
--HG--
extra : rebase_source : 360b2ee1bc678265781991149185a1c1d262642e
2012-11-22 12:09:43 +01:00
Ehsan Akhgari
a7a98ebf22 Merge mozilla-central into mozilla-inbound 2012-11-28 09:43:30 -05:00
Olli Pettay
79b3761656 Bug 811206, Fix JSHolder drop handling, part 2 (assert), r=mccr8
--HG--
extra : rebase_source : e7731c7d1f81e250ea6992e4a15c3dc52bb136d0
2012-11-28 02:56:06 +02:00
Olli Pettay
9ade992793 Bug 811206, Fix JSHolder drop handling, part 1 (base), r=mccr8
--HG--
extra : rebase_source : 0ea98d9e542ebade36653661fe4e941a03b87781
2012-11-28 01:54:15 +02:00
Peter Van der Beken
85985b93de Fix for bug 814821 (Dromaeo dom-traverse regression from bug 812333) - part 4: inline xpc_qsUnwrapObj. r=bz.
--HG--
extra : rebase_source : 712ff5573098f9d29fce555fb8cd548c5900d60e
2012-11-27 10:20:05 +01:00
Peter Van der Beken
26802bf1cf Fix for bug 814821 (Dromaeo dom-traverse regression from bug 812333) - part 3: reorder castNativeFromWrapper. r=bz.
--HG--
extra : rebase_source : 6f5e0593219f5f664791c1cd0c976f43fb96609e
2012-11-27 10:20:05 +01:00
Geoff Brown
cdc96a13ff Bug 815699 - Check for null mGREDir in xpcshell dir provider; r=jimm 2012-11-27 11:44:24 -07:00
Jon Coppeard
36ffac8ea8 Bug 790338 - Split up xpconnect finalization callback r=billm
--HG--
extra : rebase_source : 2b70376622af8104d829c23b0014cbd7d8d73a87
2012-10-12 10:45:30 +01:00
Kyle Huey
531578ec07 Bug 814102: Make the 'this' object used when compartment sharing a FakeBackstagePass. r=mrbkap 2012-11-26 14:41:59 -08:00
Kyle Huey
9048d562b8 Bug 811784: Account for subscripts when figuring out what object to stick properties on. r=mrbkap 2012-11-26 14:41:55 -08:00
Peter Van der Beken
b045a6d2b2 Fix for bug 812333 (Replace Node quickstubs with new binding methods) - part 2: install Node's binding methods on the XPConnect proto. r=bz. 2012-11-22 12:09:41 +01:00
Peter Van der Beken
3fb06020ff Fix for bug 814022 (Make instanceof for new DOM bindings work across scopes). r=bz. 2012-11-19 11:59:13 +01:00
Bobby Holley
6d0cce4a71 Bug 812415 - Use wrapperSubsumes rather than isChrome in XPCNativeWrapper.unwrap. r=mrbkap
The current behavior breaks same-origin Xrays in sandboxes. This makes it match
the check we do in XrayWrapper.cpp for the .wrappedJSObject property.
2012-11-21 17:55:58 -08:00
Bobby Holley
e01eac97a5 Bug 813394 - Test both |window.location| and |location| in navigated-away-from frame. r=bz 2012-11-21 13:20:05 -08:00
Bobby Holley
d889379068 Bug 808608 - Fix test_bug802557. r=bz
There are a number of fixes to this important tests, so this warrants a separate
patch.

First of all, the boundTo machinery goes away, because we no longer have same-
compartment Xrays giving us the weird bound methods.

Furthermore, now that the sensitive methods are just regular old methods
off the prototype. They'll fail correctly when used on a same-scope object,
but not for cross-scope XOWs they'll just fail in the
GetWrappedNativeOfJSObject rat's nest (when they can't unwrap the security
wrapper), so we'll just get a generic XPConnect error instead of a security
exception. I want to fix this soon, so I changed the skipMessageCheck stuff
to use todo_is.

However, _that_ caused an UNEXPECTED-PASS for the DefaultValue test (which
was the only one of the array of tests that was throwing a security exception
in step 2). So I added an annotation for that in item[2].
2012-11-21 13:20:05 -08:00
Bobby Holley
4fb0eb55a2 Bug 808608 - Remove Xray shadowing protection infrastructure. r=mrbkap
This is now unused.
2012-11-21 13:20:05 -08:00
Bobby Holley
645bf15f18 Bug 808608 - Fix up tests to work with new behavior. r=bz,me 2012-11-21 13:20:05 -08:00
Bobby Holley
deb1246831 Bug 808608 - Remove special testing for Location in test_bug505915. r=me
Removing test coverage isn't great. But the only reason this test is doing all
this funny stuff with Location is that it thinks that it's always wrapped in
an Xray wrapper and that we always do a dynamic security check, which is no
longer true. Moreover, it checks for very specific error messages, which are
kind of in flux right now as I'm fixing up GWNOJO. The calls are never going
to actually succeed (since location isn't a Node), so it's not really clear
how to fix up this test to do something uniquely useful in a readable way.
I've added enough Location test coverage recently that I'm comfortable removing
this part.
2012-11-21 13:20:05 -08:00
Bobby Holley
9081886d4a Bug 808608 - Remove specialized Location security wrappers. r=mrbkap 2012-11-21 13:20:05 -08:00
Bobby Holley
de65cd77ed Bug 808608 - Remove unnecessary outparam. r=mrbkap 2012-11-21 13:20:05 -08:00
Bobby Holley
aa8b4abfd6 Bug 808608 - Implement shadowing protection in nsDOMClassInfo. r=mrbkap
This allows us to remove the same-compartment Location wrappers. This can
go away when we move Location to the new bindings and get access to
[Unforgeable].
2012-11-21 13:20:05 -08:00
Bobby Holley
52508e361a Bug 808608 - Rescue expando sharing tests. r=mrbkap
We have a very nice and robust infrastructure for per-origin expando sharing
for Xrays. Unfortunately, the only way to currently exercise it is with
Location objects, since those are the only objects with same-origin Xrays
(cross-origin Xrays don't allow expandos at all). Sandbox wantXrays would
almost work here, but we actually make an explicit exception for sandboxes
so that they never share expandos (the 'exlusive global' stuff).

I think the infrastructure is nice and that we may want it in the future, so
I don't really want to back it out. But I also don't want to leave it in the
tree untested. So I'm adding an explicit Cu API to force DOM compartments to
use same-origin Xrays. This allows us to keep testing this stuff, which I think
is important.
2012-11-21 13:20:04 -08:00
Daniel Holbert
41aacf08c9 Bug 811057: Make DeferredFinalizeFunction take a uint32 instead of an int32 as its "slice" parameter. r=peterv 2012-11-21 10:20:32 -08:00
Ryan VanderMeulen
66bbddb09f Merge m-c to inbound. 2012-11-20 20:28:29 -05:00
Olli Pettay
3879ea62f2 Bug 794158, Remove over-complicated AutoWrapperChanger, r=peterv 2012-11-20 23:01:28 +02:00
Bill McCloskey
3868c9ddea Backout 2ee20348ae59 (bug 747066) for Win64 crashes 2012-11-20 10:45:43 -08:00
Benjamin Peterson
f96fb190ef Bug 795104 - Sources with a custom charset can't be lazily loaded. r=bz 2012-11-20 11:30:03 -06:00
Boris Zbarsky
46a77679c5 Bug 813423. A bit more inlining for stuff that should really be inline. r=peterv 2012-11-20 11:36:06 -05:00
Boris Zbarsky
47c856187a Bug 813419. Add a non-null-checking version of xpc_UnmarkGrayObject. r=mccr8 2012-11-20 11:36:06 -05:00
Ehsan Akhgari
69c983597a Backed out 6 changesets (bug 814821, bug 815158, bug 814195) for test failures
Backed out changeset 0c2011091748 (bug 815158)
Backed out changeset 9d70b4460508 (bug 814195)
Backed out changeset bf8746658a72 (bug 814821)
Backed out changeset e73366b088d7 (bug 814821)
Backed out changeset 49fc6d535c41 (bug 814821)
Backed out changeset 987aea26a43a (bug 814821)
2012-11-27 16:30:39 -05:00
Peter Van der Beken
d376ba5130 Fix for bug 814195 (Replace Element quickstubs with new binding methods). r=bz.
--HG--
extra : rebase_source : 349ceea8412f4133e1b9de4e2859d7663da27fa5
2012-11-22 12:09:43 +01:00
Peter Van der Beken
a1c40fa0ac Fix for bug 814821 (Dromaeo dom-traverse regression from bug 812333) - part 4: inline xpc_qsUnwrapObj. r=bz.
--HG--
extra : rebase_source : 8506cc86db7ebfe8832ed5696aeb45c79364af1f
2012-11-27 10:20:05 +01:00
Peter Van der Beken
77aa58865d Fix for bug 814821 (Dromaeo dom-traverse regression from bug 812333) - part 3: reorder castNativeFromWrapper. r=bz.
--HG--
extra : rebase_source : ad4c96a240140f56b1b451df3b57a4d5c47ee3ee
2012-11-27 10:20:05 +01:00
Nicolas B. Pierron
a0f4f2a053 Bug 810062 - Toggle JSOPTIONs before the compartment creation. r=bhackett 2012-11-19 18:07:20 -08:00
Bill McCloskey
f2265f897b Bug 747066 - Inline xpc_UnmarkGray (r=terrence) 2012-11-19 10:59:01 -08:00
Nicholas Nethercote
fa52b57f84 Bug 789398 - Rework the type inference memory reporters. r=bhackett.
--HG--
extra : rebase_source : 945c35907d0d4a62b904664da7b5f2b35a182034
2012-11-18 14:40:01 -08:00
Jim Mathies
1892c79026 Bug 810810 - Add support for 'APluginsDL' to the xpcshell directory service provider and return the GRE folder when queried. r=bsmedberg, glandium 2012-11-17 14:35:16 -06:00
Jonathan Griffin
67543c33b9 Backed out a94288026ea5 (Bug 811784) for turning all b2g emulator tests red 2012-11-16 18:30:22 -08:00
Kyle Huey
040cbf0f95 Bug 811784: Account for subscripts when figuring out what object to stick properties on. r=mrbkap
--HG--
extra : rebase_source : 6da8a33c512b2e5758094f4a2108e5c342c7c28c
2012-11-16 08:54:58 -08:00
Ed Morley
353ea03fab Backout 4bc502c08da4 (bug 811784) for xpcshell failures 2012-11-16 18:16:33 +00:00
Kyle Huey
9bcf4c9be1 Bug 811784: Account for subscripts when figuring out what object to stick properties on. r=mrbkap 2012-11-16 08:54:58 -08:00
Kannan Vijayan
ef9c9830cc Bug 803730 - Mochitest for bug. 2012-11-15 22:57:18 -05:00
Bobby Holley
29ae85a79e Bug 809674 - Fail at call time when invoking an XPCWrappedJS method with [implicit_jscontext] or [optional_argc]. r=mrbkap
I think this is the path of least resistance here.
2012-11-15 10:16:36 -08:00
Peter Van der Beken
fa62dbbc16 Fix for bug 811895 (Fix WN Xray special methods so they can take new DOM binding objects). r=bz.
--HG--
extra : rebase_source : 4b4ade0c3cddee9241e94f2e20216cee73a8e284
2012-09-26 16:17:51 +02:00
Benoit Jacob
58175ef06b Bug 807437 - Eliminate redundant Traverse/Unlink CC macros - part 2: handmade fixups - r=mccr8 2012-11-15 02:32:40 -05:00
Benoit Jacob
f4c1a03e74 Bug 806279 - CC macros refactoring: part 3: fold the TRAVERSE_NATIVE and AMBIGUOUS cases - r=mccr8,smaug 2012-11-15 02:32:39 -05:00
Boris Zbarsky
fa61227956 Bug 811449 part 8. Get rid of nsGenericElement. r=peterv 2012-11-14 14:10:08 -08:00
Peter Van der Beken
218b158687 Fix for bug 807075 (New DOM binding APIs for HTMLElement). r=bz.
--HG--
extra : rebase_source : 842b9397d2b050f880c44d3366bcc838e6615fd5
2012-11-11 00:30:15 +01:00
Ben Turner
3a4dc012ab Bug 809661 - Need a speedy way to construct a thread list for SMS messages. r=sicking 2012-11-14 11:49:56 -08:00
Bobby Holley
56d2c9b612 Bug 569506 - Tearoff tests. r=mrbkap 2012-11-14 10:15:13 -08:00
Bobby Holley
a75f5ca4d9 Bug 800915 - Remove the cx parameter and simplify various APIs. r=sfink,bz
If callers want to throw, it's now their responsibility.
2012-11-14 09:56:26 -08:00
Bobby Holley
5fe101ddca Bug 800915 - Reimplement PUNCTURE consumers in terms of isSafeToUnwrap() and remove PUNCTURE API. r=mrbkap 2012-11-14 09:56:25 -08:00
Bobby Holley
583cb7273a Bug 800915 - Add infrastructure to flag security wrappers as unsafe to unwrap. r=mrbkap 2012-11-14 09:56:25 -08:00
Bobby Holley
1bc19ac093 Bug 800915 - Clarify and refine the semantics of SecurityWrapper so that it is used if and only if unwrapping is unsafe. r=mrbkap
The naming scheme for Xray typedefs is the concatenation of the tuple:
({SC,}, {Security,Permissive}, Xray, {XPCWN,DOM}). This is admittedly a bit
much, but I think it's still better than explicitly doing the "typdef Foo Xray"
everywhere. Moreover, once the new DOM bindings are done, the last component
in the tuple will go away.
2012-11-14 09:56:25 -08:00
Ed Morley
c7eb022388 Backout 54c4f2ff78e3 (bug 807075) for Windows compilation errors 2012-11-14 16:45:28 +00:00
Peter Van der Beken
ee9050291e Fix for bug 807075 (New DOM binding APIs for HTMLElement). r=bz.
--HG--
extra : rebase_source : 9afce481cd0a5c8a1014c8c9b0aad7d6665aaa82
2012-11-11 00:30:15 +01:00
Gregor Wagner
1c428080a1 Backout f2c60518351d Bug 809661 2012-11-13 14:44:18 -08:00
Ben Turner
827cb19e8c Bug 809661 - Need a speedy way to construct a thread list for SMS messages. r=sicking 2012-11-13 13:01:26 -08:00
Kyle Huey
9efde1e3a0 Bug 810987: When sharing a global, don't import properties onto the global, import them onto the appropriate 'this' object. r=mrbkap
--HG--
extra : rebase_source : c3a92d4197831fa3061bf3f01b7cc610cc89e867
2012-11-13 11:13:27 -08:00
Kyle Huey
1eb5f304df Backout Bug 810987. 2012-11-13 10:27:37 -08:00
Kyle Huey
b490fd3695 Backed out changeset 62886fd1aaa4 2012-11-13 10:25:24 -08:00
Kyle Huey
d4d9b2dcd8 Bug 810987: Followup bustage fix. 2012-11-13 10:24:08 -08:00
Kyle Huey
1854d5c345 Bug 810987: When sharing a global, don't import properties onto the global, import them onto the appropriate 'this' object. r=mrbkap 2012-11-13 08:57:44 -08:00
Ed Morley
1e33323cc9 Backout bcb591d32bd6 (bug 809674) on suspicion of breaking B2G marionette-webapi 2012-11-13 13:48:21 +00:00
Ryan VanderMeulen
6dd149a122 Backed out de9fff3a523, c567df2244f5, 8e3d976d5dc5, and c7499faaec23 (bug 800915) for bustage.
--HG--
extra : rebase_source : c823063bfa31d59d32b3402bd4b458b84b703cd5
2012-11-12 21:43:39 -05:00
Bobby Holley
a575c96c5e Bug 800915 - Remove the cx parameter and simplify various APIs. r=sfink,bz
If callers want to throw, it's now their responsibility.
2012-11-12 17:35:32 -08:00
Bobby Holley
943664eddf Bug 800915 - Reimplement PUNCTURE consumers in terms of isSafeToUnwrap() and remove PUNCTURE API. r=mrbkap 2012-11-12 17:35:32 -08:00
Bobby Holley
7627d68c2a Bug 800915 - Add infrastructure to flag security wrappers as unsafe to unwrap. r=mrbkap 2012-11-12 17:35:32 -08:00
Bobby Holley
6c6f3210d3 Bug 800915 - Clarify and refine the semantics of SecurityWrapper so that it is used if and only if unwrapping is unsafe. r=mrbkap
The naming scheme for Xray typedefs is the concatenation of the tuple:
({SC,}, {Security,Permissive}, Xray, {XPCWN,DOM}). This is admittedly a bit
much, but I think it's still better than explicitly doing the "typdef Foo Xray"
everywhere. Moreover, once the new DOM bindings are done, the last component
in the tuple will go away.
2012-11-12 17:35:31 -08:00
Bobby Holley
4a55654f1d Bug 809674 - Fail at call time when invoking an XPCWrappedJS method with [implicit_jscontext] or [optional_argc]. r=mrbkap
I think this is the path of least resistance here.
2012-11-12 16:17:24 -08:00
Bobby Holley
d28553ba1e Bug 810743 - First check for pending exceptions, _then_ examine the invoke result. r=mrbkap 2012-11-12 16:17:24 -08:00
Bill McCloskey
1ca35e1751 Bug 810560 - Followup (r=luke) 2012-11-12 15:17:01 -08:00
Bill McCloskey
28df0f4893 Bug 810560 - Fix scheduledForDestruction assertion (r=luke)
--HG--
extra : rebase_source : 6c25ad6b505e818d66f1caaea907c55355f7559a
2012-11-12 14:57:53 -08:00
Peter Van der Beken
451ff8f738 Fix for bug 804950 (New DOM binding APIs for Element). r=bz.
--HG--
extra : rebase_source : a8691ead07dfa8ecca812396047627dc15474d83
2012-10-16 13:51:00 +02:00
Terrence Cole
d3648d3506 Bug 805080 - Move more API users to CompileOptions; r=luke
There is no reason to have special methods for specific sets of CompileOptions
when the JS::Compile interface is so easy to use.  Other API methods can be
moved internal or removed entirely with this change.

--HG--
extra : rebase_source : f48fb221ebe02c0137e521ea605953532808825d
2012-11-06 17:36:47 -08:00
Peter Van der Beken
1e5f78238f Fix for bug 807330 (Make xpc_qsUnwrapThis/xpc_qsUnwrapArg deal with new DOM bindings). r=jst.
--HG--
extra : rebase_source : 3553f82516bfaa0764185f94e2eef616d9cd696d
2012-09-26 16:17:46 +02:00
Bill McCloskey
a31392133c Bug 803376 - Allow wrappers to be reused (r=bholley) 2012-09-11 17:14:24 -07:00
Boris Zbarsky
80ce9e7dce Bug 807226 part 0.5. More undefs to stop Windows headers from messing with our GetClassName. r=peterv 2012-11-09 07:59:41 -08:00
Boris Zbarsky
ffdef1ff6b Bug 779048 part 0.5. Don't require a JSContext argument for nsJSUtils::GetStaticScriptGlobal. r=bholley 2012-11-09 07:43:57 -08:00
Fernando Jiménez
ab6877282c Bug 809218 - Expose atob and btoa functions in xpcshell; r=mrbkap 2012-11-08 13:45:41 -08:00
Bobby Holley
dae0b41b61 Bug 809547 - Tests. r=bz 2012-11-07 22:40:48 -08:00
Benoit Jacob
76c68d3d90 Bug 809715 - Use MFBT's IsBaseOf to simplify QS_IS_NODE - r=ehsan 2012-11-07 21:33:31 -05:00
Bobby Holley
65525139b8 Bug 805807 - Filter setters. r=mrbkap 2012-11-07 15:45:50 -08:00
Bobby Holley
6482c110be Bug 802557 - Mochitests. r=bz 2012-11-07 15:43:09 -08:00
Bobby Holley
2147e93e72 Bug 806751 - Pile more garbage into GetWrappedNativeOfJSObject. r=mrbkap
--HG--
extra : rebase_source : 9d290c7058dd4a1984aff94ef84376913947189e
2012-11-07 14:12:14 -08:00
Nathan Froyd
57e1984f1b Backout a9cfcf4b62d9 (bug 803730), a5e214d4f8b0 (bug 803730), for intermittent oranges in newly added tests 2012-11-07 14:58:29 -05:00
Kannan Vijayan
34d532839a Bug 803730 - Add mochitest for bug. 2012-11-07 13:03:31 -05:00
Bobby Holley
b9f313371c Bug 809318 - Fix flakey tests. r=philor 2012-11-07 09:39:32 -08:00
Bobby Holley
b03878d5cf Bug 808457 - Add Telemetry for Components.lookupMethod and Components.interfaces. r=mrbkap 2012-11-07 08:28:35 -08:00
Bobby Holley
b7a80f0b32 Bug 808611 - Move valueOf to nsIDOMLocation. r=mrbkap 2012-11-07 08:27:23 -08:00
Bobby Holley
2d5f3aaee1 Bug 808730 - Implement the 'IfFound' parent of ReparentWrapperIfFound. r=mrbkap
This is a pretty dumb bug, but we never actually hit this codepath at the moment.
We currently end up in wrapper by either explicitly calling
ReparentWrappedNativeIfFound (in nsNodeUtils and in nsHTMLDocument), or by moving
existing wrappers during orphan fixup. The former always passes a wrapper-cached
object, and the latter guarantees that we always have a wrapper. So we'd never
hit the "no wrapper cache, no wrapper" case in the current code.
2012-11-06 17:56:49 -08:00
Andrea Marchesini
c5757607e2 Bug 781425 - Part 1: Enconding and dictionary. r=mounir, sr=sicking 2012-11-06 18:23:13 -05:00
Bobby Holley
3606ad5e6b Bug 807179 - Add a constructor for JSPropertyDescriptor. r=luke 2012-11-05 17:49:44 -08:00
Bobby Holley
4d2a0ba749 Bug 800864 - Add some more tests. r=bz 2012-11-05 17:15:53 -08:00
Bobby Holley
8c976f0b41 Bug 793969 - Tests. r=mrbkap 2012-11-05 17:10:34 -08:00
Boris Zbarsky
5865858536 Bug 807548. Enumerating an Xray should not see the 'constructor' property on DOM prototypes unless we're told to include non-enumerable properties. r=peterv 2012-11-05 11:58:03 -05:00
Ehsan Akhgari
a782ddd2a1 Merge mozilla-central into mozilla-inbound 2012-11-04 11:09:45 -05:00
Ms2ger
67f936b45b Bug 801991 - Remove the ability to generate custom quickstubs; r=peterv 2012-11-04 09:00:06 +01:00
Bobby Holley
6877351937 Bug 805807 - Rearchitect filtering policies so that check() doesn't throw on denial. r=mrbkap
This is another one of those annoying situaitons in XPConnect right now where we
can't ask a question without potentially throwing if the answer is no. There's
also a bunch of unused cruft in here (like the Perm*Access stuff), so this stuff
was ripe for a spring cleaning. Unfortunately, I wasn't able to divide this patch
up nicely. Sorry for the big diff. :-(

In a nutshell, this patch changes things so that Policy::check() just becomes
a predicate that says whether the access is allowed or not. There's the remote
possibility that one of the underlying JSAPI calls in a ::check() implementation
might throw, so callers to ::check() should check JS_IsExceptionPending
afterwards (this doesn't catch OOM, but we can just continue along until the
next OOM-triggering operation and throw there).

Aside from exceptional cases, callers should call Policy::deny if they want to
report the failure. Policy::deny returns success value that should be returned
to the wrapper's consumer.
2012-11-02 21:47:49 -03:00
Bobby Holley
d2fe9d94ec Bug 805807 - Make Components wrapper throw on denial. r=mrbkap
There's really no reason to use the wishy-washy static COW Deny() here.

Also, note that the xpcshell-test wasn't testing what it thought it
was - interfaces is accessible from content code.
2012-11-02 21:47:49 -03:00
Bobby Holley
f923e7af7f Bug 731471 - Crashtesty-mochitest. r=me 2012-11-04 07:41:01 -08:00
Peter Van der Beken
ba4378de1d Test for bug 798264. 2012-10-12 12:48:25 +02:00
Ed Morley
14d92519c8 Backout 23c9f61a243b & 6ca11f4b470c (bug 805807) for mochitest-1 orange in test_contextmenu.html 2012-11-02 14:12:51 +00:00
Bobby Holley
0123f9f2d2 Bug 805807 - Rearchitect filtering policies so that check() doesn't throw on denial. r=mrbkap
This is another one of those annoying situaitons in XPConnect right now where we
can't ask a question without potentially throwing if the answer is no. There's
also a bunch of unused cruft in here (like the Perm*Access stuff), so this stuff
was ripe for a spring cleaning. Unfortunately, I wasn't able to divide this patch
up nicely. Sorry for the big diff. :-(

In a nutshell, this patch changes things so that Policy::check() just becomes
a predicate that says whether the access is allowed or not. There's the remote
possibility that one of the underlying JSAPI calls in a ::check() implementation
might throw, so callers to ::check() should check JS_IsExceptionPending
afterwards (this doesn't catch OOM, but we can just continue along until the
next OOM-triggering operation and throw there).

Aside from exceptional cases, callers should call Policy::deny if they want to
report the failure. Policy::deny returns success value that should be returned
to the wrapper's consumer.
2012-11-02 13:27:59 +01:00
Bobby Holley
7c2fa965c3 Bug 805807 - Make Components wrapper throw on denial. r=mrbkap
There's really no reason to use the wishy-washy static COW Deny() here.

Also, note that the xpcshell-test wasn't testing what it thought it
was - interfaces is accessible from content code.
2012-11-02 13:27:59 +01:00
Nicholas Nethercote
7c4faece03 Bug 806283 - Split up and add native iterators to "object/misc" memory reports. r=jorendorff.
--HG--
extra : rebase_source : 867e178d0c921de9e144fb274e1c0d77c8845b81
2012-11-01 16:51:04 -07:00
Kyle Huey
45adfbf2c8 Bug 798491: Add an option to stick all chrome JSMs/JS components in the same compartment. r=mrbkap,philikon
--HG--
extra : rebase_source : 98337b6a8c07d05e8c961a452dd05a7d75c3c60b
2012-10-31 09:13:28 -07:00
Tom Schuster
cbb3282bdd Bug 805222 - Change some usages of GetFunctionId to GetFunctionDisplayId for better JS stacktrace. r=bholley,robcee 2012-10-31 13:34:42 +01:00
Vicamo Yang
e6e6deb486 Backout 67cb43bb8865: Breaks B2G Marionette 2012-10-31 16:35:11 +08:00
Andrew McCreight
0c7c1a6f53 Bug 806433 - Make mReleaseRunnable a ref ptr. r=smaug 2012-10-30 20:01:31 -07:00
Jonas Sicking
05fe127cc1 Bug 806587: Restore getCodebasePrincipal since extensions use it. r=mounir 2012-10-30 22:24:41 +01:00
Boris Zbarsky
90dce3227b Bug 801819. Remove nsIDOMCSS2Properties and the classinfo bits for CSS declarations. r=peterv,dbaron 2012-10-30 17:14:06 -04:00
Terrence Cole
e78fa7d5a1 Bug 805080 - Remove unused CESU8 support from SpiderMonkey; r=luke
We have many CESU8 paths in SpiderMonkey which are completely unused and
untested. We have many more "UTF-8" paths which are really mislabled CESU8 paths
and visa-versa. This patch attempts to disentable all of the various encoding
options in SpiderMonkey.
2012-10-29 13:55:17 -07:00
Bobby Holley
325938f110 Bug 804630 - Tests for exposing prototype properties on a derived object. r=mrbkap 2012-10-30 18:29:11 +01:00
Kyle Huey
7457de64ad Bug 798491: Add an option to stick all chrome JSMs/JS components in the same compartment. r=mrbkap,philikon 2012-10-30 12:28:11 -07:00
Ed Morley
a7bb0ec116 Backout a145ded68994, e0cf397089ec & 1545e91c658e (bug 798491) for bustage on a CLOSED TREE 2012-10-30 17:02:31 +00:00
Kyle Huey
3bc1160788 Bug 798491: Followup bustage fix. 2012-10-30 08:42:47 -07:00
Kyle Huey
dd0cfd935a Bug 798491: Add an option to stick all chrome JSMs/JS components in the same compartment. r=mrbkap,philikon 2012-10-30 08:26:12 -07:00
Jacek Szpot
bea8356b2c Bug 792180 - Replace NS_{UN,}LIKELY with MOZ_{UN,}LIKELY; r=ehsan 2012-10-26 15:32:10 +02:00
Peter Van der Beken
99782186da Fix for bug 778152 (Content window does not have an XMLHttpRequest property when accessed via an Xray wrapper in a subscript). r=bz.
Switch from using the interface objects from the Xrays compartment to wrapping
interface objects and interface prototype objects in Xrays. Make dom binding
Xrays deal with both instance objects and interface and interface prototype
objects.
2012-10-09 20:50:27 +02:00
Bobby Holley
b9ab242827 Bug 803068 - Merge DirectWrapper and Wrapper. r=ejpbruel
--HG--
extra : rebase_source : a2b98a9585c6f7761747cfaf55684e6eeed91344
2012-10-29 16:52:53 +01:00
Bobby Holley
b709b3dc7f Bug 803068 - Manually grab the BaseProxyHandler derived traps in SandboxProxyHandler. r=ejpbruel
Let's just bite the bullet and do this here. It will let us get rid of
IndirectProxyHandler, which has really overcomplicated our proxy hierarchy.

--HG--
extra : rebase_source : 7e81529936bc256d672e40537eb6abca6374e52c
2012-10-29 16:52:53 +01:00
Bobby Holley
b8b176e756 Bug 797206 - Remove GetPrincipalFromContext. r=bz 2012-10-29 15:55:36 +01:00
Peter Van der Beken
da84553f1f Fix for bug 778152 (Content window does not have an XMLHttpRequest property when accessed via an Xray wrapper in a subscript) - rename ProtoOrIfaceArray. r=bz.
--HG--
extra : rebase_source : c426270fc1ebee818629bd94dfc8d11af59bfc00
2012-10-09 20:50:27 +02:00
Peter Van der Beken
9194dae35e Fix for bug 804992 (Enable objects with new DOM bindings to be parent of other DOM objects). r=bz.
--HG--
extra : rebase_source : f07cade82dad0216d94e68dd0c0f495977abeb31
2012-09-12 22:29:30 +02:00
Peter Van der Beken
c4a61ef363 Fix for bug 804732 (Remove mCachedDOMPrototypes). r=bz.
--HG--
extra : rebase_source : dc9ffe5f37dbc0542cbb47384b2d25472c70d801
2012-10-23 22:11:58 +02:00
Nicholas Nethercote
f3101549fc Bug 805915 (part 5) - Add more detail to shape memory reports. r=luke.
--HG--
extra : rebase_source : f1a05ea15b78e5f33d6398accca3333ab29fa1c6
2012-10-29 08:51:21 +11:00
Nicholas Nethercote
77a87b6eb8 Bug 805915 (part 4) - Add more detail to string memory reports. r=luke.
--HG--
extra : rebase_source : 010e28f10917ae4cc9d0d11abace9bcdabf0aba8
2012-10-29 08:51:21 +11:00
Nicholas Nethercote
94ad872ba1 Bug 805915 (part 2) - Add more detail to object memory reports. r=luke.
--HG--
extra : rebase_source : e54ece88753280ccac284f6265fd92310dc1bec6
2012-10-29 08:51:21 +11:00
Nicholas Nethercote
5286ab9159 Bug 805915 (part 1) - Rename the "cross-compartment-wrappers" memory report. r=luke.
--HG--
extra : rebase_source : a9689bde17b043bc8bec55c0307c0bbf94768232
2012-10-29 08:51:21 +11:00
Ryan VanderMeulen
ce9be1b16b Bug 799917 - Backout for various regressions. 2012-10-28 08:49:20 -04:00
Bill McCloskey
17ffbf5002 Bug 692267 - Remove jsgc.h from INSTALLED_HEADERS (r=terrence) 2012-10-26 11:17:24 -07:00
Andrew Quartey
1d0db40554 Bug 792581 - part 20: Replace LL_UI2L macro with int64_t cast. r=ehsan 2012-10-25 19:25:57 -04:00
Nikhil Marathe
814dbc2a57 Bug 804174 - Inline CallerHasUniversalXPConnect with IsCallerChrome. r=mccr8 2012-10-25 16:10:53 -07:00
Bobby Holley
94d3058170 Bug 797821 - Null check to fix intermittent orange. r=me 2012-10-25 18:36:45 +02:00
Ehsan Akhgari
78b2656cbc Backed out 2 changesets (bug 579517)
Backed out changeset 5298adc70963
Backed out changeset 86ccf7c918ce (bug 579517)
2012-10-25 12:32:24 -04:00
Ehsan Akhgari
03be701616 Code hygiene: don't use PR_TRUE and PR_FALSE, and use stdint types instead of PRInt types (no bug really, but you could say bug 579517) 2012-10-25 11:48:19 -04:00
Bobby Holley
2c584933ef Bug 797821 - Address Ms2ger's review comments. r=me 2012-10-25 17:01:09 +02:00
Bobby Holley
888856a6f7 Bug 797821 - Remove the XPConnect Compartment Set. r=mrbkap 2012-10-25 17:01:09 +02:00
Bobby Holley
461c6572fd Bug 797821 - Hoist XPConnect-y stuff out of the compartment private and into the XPCWrappedNativeScope. r=mrbkap
This change means we no longer have to keep around a set of XPConnect compartments.
We keep the compartment private around for non-xpconnecty stuff like about:memory
instrumentation that needs to happen on non-xpconnect compartments.
2012-10-25 17:01:09 +02:00
Bobby Holley
3d0731683a Bug 797821 - Removed the unused reserved slot for XPConnect globals. r=mrbkap 2012-10-25 17:01:09 +02:00
Bobby Holley
1fd1acf5e9 Bug 797821 - Remove JSCLASS_XPCONNECT_GLOBAL flag. r=mrbkap 2012-10-25 17:01:09 +02:00
Bobby Holley
92a2cd3a9d Bug 797821 - Decide whether we need to trace DOM stuff based on more relevant information than JSCLASS_XPCONNECT_GLOBAL. r=mrbkap
This will let us rip out that flag.
2012-10-25 17:01:08 +02:00
Bobby Holley
a6b39f268c Bug 797821 - Remove FindInJSObjectScope and friends. r=mrbkap
\o/
2012-10-25 17:01:08 +02:00
Bobby Holley
f46b3babff Bug 797821 - Replace usage of XPCWrappedNativeScope::FindInJSObjectScope(ccx, obj) with GetObjectScope(obj). r=mrbkap 2012-10-25 17:01:08 +02:00
Bobby Holley
723b180d23 Bug 797821 - Create XPCWrappedNativeScopes immediately after global creation. r=mrbkap 2012-10-25 17:01:08 +02:00
Bobby Holley
1c625b67e4 Bug 797821 - Remove xpc_NewSystemInheritingJSObject and cached mJSPrototypeObject. r=mrbkap
xpc_NewSystemInheritingJSObject is totally unnecessary now that the system bit
has been removed (\o/). Furthermore, the mJSPrototypeObject optimization is
really dumb. it complicates tracing significantly, and we don't actually use it
in any critical places: XPCWrappedNative and slim wrapper creation use a different
prototype, so this is used only for the creation of tearoff reflectors (seldom/
never used), XPCWrappedNativeProto objects, and the nohelper prototype on the
scope (once per scope).

We could actually just pass NULL to JS_NewObject and let it deal. However, this
would actually trigger a dynamic lookup for the prototype object of the
associated JSClass, which isn't what we want. So we just explicitly pass in
Object.prototype.
2012-10-25 17:01:08 +02:00
Bobby Holley
39c5c62a72 Bug 797821 - Remove unused aNative parameter to XPCWrappedNativeScope creation. r=mrbkap 2012-10-25 17:01:08 +02:00
Bobby Holley
e99bbde601 Bug 797821 - Stop storing mScriptObjectPrincipal. r=mrbkap 2012-10-25 17:01:08 +02:00
Bobby Holley
ea14cf4726 Bug 797821 - Stop making nsXBLDocumentInfo and nsXULPrototypeDocument globals with XPConnect. r=mrbkap
We already weren't creating a scope for them. They're generally pretty isolated
and are just used for holding functions that get cloned into other scopes.
Apparently mccr8 once found an edge from an nsXULPrototypeDocument scope into
another scope, but I don't think that should really break anything.
2012-10-25 17:01:07 +02:00
Bobby Holley
a7207d9cf8 Bug 797821 - Allow compartment privates to be lazily created when using them just for storing about:memory URIs. r=mrbkap
This will allow us to stop making nsXULPrototypeDocument and nsXBLDocumentInfo
globals XPConnect globals.
2012-10-25 17:01:07 +02:00
Bobby Holley
4f6ed4314a Bug 797821 - Stop passing wantXrays directly to CreateGlobalObject. r=mrbkap
This can happen after the fact where it needs to.
2012-10-25 17:01:07 +02:00
Bobby Holley
2b65e9933d Bug 797821 - Loosen the CompartmentPrivate contract so that having one does not imply being in the compartment set. r=mrbkap
The compartment set goes away in later patches anyway. This is to allow us to
create compartment privates for things like XUL prototype document globals
without having to put them in the set and trace expandos and such.
2012-10-25 17:01:07 +02:00
Bobby Holley
597176da8c Bug 797821 - Simplify the call signature for XPC::CreateGlobalObject. r=mrbkap 2012-10-25 17:01:07 +02:00
Bobby Holley
5b8ecc6233 Bug 797821 - Remove CreateNewGlobal. r=mrbkap
It doesn't do anything useful at this point.
2012-10-25 17:01:07 +02:00
Bobby Holley
4ae7a4efff Bug 797821 - Remove the dependency of XPCWrappedNativeScope instantiation on XPCCallContext and expose the raw constructor. r=mrbkap 2012-10-25 17:01:07 +02:00
Bobby Holley
1d77b1d068 Bug 801576 - Android bustage fix. r=me 2012-10-24 14:18:39 +02:00
Bobby Holley
ed10eb5a54 Bug 801576 - Add tests for the same-origin policy. r=mrbkap 2012-10-24 12:04:19 +02:00
Bobby Holley
617a6ac6bd Bug 801576 - Forbid cross-origin access to the History object. r=mrbkap 2012-10-24 12:04:18 +02:00
Ryan VanderMeulen
a25b975d2e Merge m-c to inbound. 2012-10-23 22:41:34 -04:00
Ryan VanderMeulen
12d8547592 Merge the last PGO-green inbound changeset to m-c. 2012-10-23 22:28:33 -04:00
Olli Pettay
f060a0ba42 Bug 780770, nsThread::SetMainThreadObserver, r=bz+bholley 2012-10-24 01:26:36 +03:00
Benjamin Peterson
b26c0de860 Bug 804404 - Set source hook in XPC initialization. r=bz 2012-10-23 18:09:00 -04:00
Chuck Lee
3156424831 Bug 780142 - Rewrite MozWifiConnectionInfoEvent. r=smaug 2012-10-22 18:18:26 +08:00
Chuck Lee
c467984383 Bug 780142 - Rewrite WifiStatusChangeEvent. r=smaug 2012-10-22 17:17:18 +08:00
Nick Hurley
e7f284c9d3 Bug 536324 part 3 - Change consumers of nsIChannel. r=sworkman 2012-10-22 10:51:07 -07:00
Andres Hernandez
3da7d5c215 Bug 769298 - Avoid logging script errors coming from private windows in the global error console 2012-10-19 15:52:21 -06:00
Boris Zbarsky
04d6d1040c Bug 801712 part 2. Switch ImageData to WebIDL bindings. r=peterv 2012-10-22 13:08:52 -04:00
Boris Zbarsky
f49c8f247c Bug 801712 part 1. Add the WebIDL binding API to ImageData. r=peterv 2012-10-22 13:08:52 -04:00
Boris Zbarsky
4ca88b5279 Bug 801723. WebIDL binding objects may not have classinfo even if they're nsISupports. r=peterv 2012-10-22 13:08:51 -04:00
Bobby Holley
bac4dc387e Bug 789224 - Separate certificate principals out from CAPS. r=dveditz
There's no longer any reason why "certificate principals" need to be principals at all.
I tried to rip them out entirely, but it looks like they're still used vestigially at XPI
install time to display author information. But there's no reason that they have to be
porkbarreled into the security-critical objects that we pass around all over the place.
So let's make them their own deal.

I was tempted to call them "certificate holders", but that would involve renaming methods and
cause more compat fuss than necessary.

--HG--
rename : caps/idl/nsISignatureVerifier.idl => security/manager/ssl/public/nsISignatureVerifier.idl
2012-10-22 08:29:56 +02:00
Bobby Holley
9735e11f83 Bug 789224 - Remove capability manager stuff in nsScriptSecurityManager. r=mrbkap 2012-10-22 08:29:55 +02:00
Peter Van der Beken
ea23f44eff Fix for bug 803872 (Remove remaining references to the dom.new_bindings pref). r=Ms2ger. 2012-10-21 13:06:55 +02:00
Ms2ger
3accfeaf06 Bug 796903 - Part b: Remove classinfo from DOMImplementation; r=bz 2012-10-21 09:38:41 +02:00
Olli Pettay
35f1ebaa50 Bug 802829 - Don't add nsXPCWrappedJS objects to CC graph if they only point to a certainly alive object, r=mccr8 2012-10-20 22:53:25 +03:00
Peter Van der Beken
e86cd8818c Fix for bug 801083 (Remove old proxy-based list bindings). r=bz. 2012-10-13 14:50:24 +02:00
foudfou
6f0250e530 Bug 799537 - Sort xpconnect chrome mochitests in tests/chrome. r=bholley 2012-10-19 23:16:07 +02:00
foudfou
de4dd87170 Bug 799537 - Move xpconnect chrome mochitests in tests/mochitest to tests/chrome. r=bholley
--HG--
rename : js/xpconnect/tests/mochitest/test_bug361111.xul => js/xpconnect/tests/chrome/test_bug361111.xul
rename : js/xpconnect/tests/mochitest/test_bug760131.html => js/xpconnect/tests/chrome/test_bug760131.html
2012-10-19 22:44:26 +02:00
Bobby Holley
1fc641f872 Bug 793969 - Define an identity transformation at the Xray layer. r=mrbkap 2012-10-19 21:00:48 +02:00
Isaac Aggrey
8c55998b7e Bug 794510: Part 1 - Build with NO_NSPR_10_SUPPORT by default; r=ehsan,glandium,wtc 2012-10-11 01:00:54 -05:00
Peter Van der Beken
a69ce442c1 Fix for bug 773780 (Add API for new DOM bindings for Node). r=bz.
--HG--
extra : rebase_source : 5dd51c4ad5274da9235c8c341b0531f234e95a91
2012-10-09 14:31:24 +02:00
Ryan VanderMeulen
f33ec87f1e Bug 798123 - Fix build bustage. r=Waldo
CLOSED TREE
2012-10-18 22:21:38 -04:00
Gabriele Svelto
59704eda24 Bug 798123 - Replace the array conversion functions in BluetoothUtils.cpp with those in nsTArrayHelpers.h. r=mrbkap 2012-10-18 15:20:54 +02:00
Benjamin Peterson
c1b83b29cb Bug 803358 - Remove JSOPTION_RELIMIT. r=luke 2012-10-18 21:06:42 -04:00
Josh Matthews
ab013b1329 Backed out changeset 12002e126b39 (bug 769298) 2012-10-18 17:27:23 -04:00
Andres Hernandez
67591e3369 Bug 769298 - Avoid logging script errors coming from private windows in the global error console 2012-10-18 00:24:56 -06:00
Bobby Holley
b9899be941 Bug 802968 - Fix racy test behavior. r=me DONTBUILD
--HG--
extra : rebase_source : 631b1d7d8efc625725b9a733c8e065030ff795e1
2012-10-18 14:41:13 +02:00
Bill McCloskey
17957fa850 Bug 798678 - Weakmap key preservation test (r=mccr8) 2012-10-17 18:22:54 -07:00
Bill McCloskey
0a9fd297da Bug 798678 - Add weakmap key preservation support to cycle collector (r=mccr8) 2012-10-17 18:22:46 -07:00
Bill McCloskey
9748750db4 Bug 798678 - Refactor wrapper preservation for weakmaps (r=mccr8) 2012-10-08 18:22:47 -07:00
Bill McCloskey
0728920867 Bug 714050 - Add support for optional JS helper threads (r=luke) 2012-10-16 11:57:09 -07:00
Bobby Holley
52f96099f5 Bug 801241 - Properly handle |false| return false from JS_DescribeScriptedCaller. r=bz 2012-10-17 19:44:30 +02:00
Ehsan Akhgari
f5557dac78 Merge mozilla-central into mozilla-inbound 2012-10-17 13:03:16 -04:00
bzbarsky@mit.edu
06f6ce717a Bug 802243 - WrapperCache DOMStringMap, quickstub, r=smaug
--HG--
extra : rebase_source : 3c1bb6ab18692d647461af42e732e5f150ae8500
2012-10-17 04:14:32 +03:00
Bobby Holley
3242a23dc7 Bug 792280 - Only censor function.caller for non-same-origin calls. r=luke 2012-10-17 17:56:49 +02:00
Justin Lebar
29781b32ab Bug 801780 - Part 2: Explicitly call out long strings in about:memory. r=njn 2012-10-17 10:44:31 -04:00
Bobby Holley
8c277bc6ef Bug 797304 - Replace MoveWrapper nonsense with orphan fixup. r=peterv 2012-10-16 15:07:54 +02:00
Bobby Holley
5ab5c9ac07 Bug 797304 - Add special handling for nuked parents in orphan fixup. r=peterv 2012-10-16 15:07:54 +02:00
Bobby Holley
ba09c72553 Bug 797304 - Be more aggressive when fixing up orphans. r=peterv
To make stronger assumptions, we should dig deeper on the parent chain, and also morph any slim wrappers. This is slightly slower, but not much, since this stuff only gets called for HTML documents, and the parent chains there tend to be short. Moreover, this only gets called during document.open(), where performance doesn't matter so much.
2012-10-16 15:07:54 +02:00