Bobby Holley
7f37486434
Bug 965898 - Throw for [[Delete]] and [[DefineOwnProperty]]. r=gabor
2014-07-30 12:23:02 -07:00
Bobby Holley
825af5fcd8
Bug 965898 - Implement proper behavior for [[Enumerate]] And [[OwnPropertyKeys]]. r=gabor
2014-07-30 12:23:02 -07:00
Bobby Holley
a3fdc785eb
Bug 965898 - Cross-origin objects should have null prototypes. r=gabor
2014-07-30 12:23:02 -07:00
Bobby Holley
c94d4e694c
Bug 965898 - All properties from cross-origin objects are "configurable", non-enumerable, and non-writable. r=gabor
2014-07-30 12:23:02 -07:00
Bobby Holley
4855eef6ea
Bug 965898 - All properties on cross-origin DOM objects should be |own|. r=gabor
2014-07-30 12:23:01 -07:00
Bobby Holley
971ad29192
Bug 965898 - Implement an Xray subclass that we can use to implement HTML5 cross-origin semantics. r=gabor
2014-07-30 12:23:01 -07:00
Bobby Holley
f90f3f7319
Bug 965898 - Drop support for XPCWN XOWs. r=gabor
...
XOWs only allow access to Window and Location, both of which are on WebIDL now.
2014-07-30 12:23:01 -07:00
Bobby Holley
7db28dae27
Backed out 16 changesets (bug 965898) for rooting hazards. CLOSED TREE
...
Backed out changeset ac4abde3579f (bug 965898)
Backed out changeset c4c7ab1a2f70 (bug 965898)
Backed out changeset e0bf3598dfe1 (bug 965898)
Backed out changeset 8f2788a0ba24 (bug 965898)
Backed out changeset 0d1cda4decaa (bug 965898)
Backed out changeset 3d80ffc439fb (bug 965898)
Backed out changeset ad66ab36fe2d (bug 965898)
Backed out changeset dcf7ccf6eff2 (bug 965898)
Backed out changeset d3f02e80355d (bug 965898)
Backed out changeset 212f2d05d9e7 (bug 965898)
Backed out changeset c350a2c0aa6d (bug 965898)
Backed out changeset c75acd0663a9 (bug 965898)
Backed out changeset d68f7ef0ae69 (bug 965898)
Backed out changeset 610e6d6e1a88 (bug 965898)
Backed out changeset 54d40a30f6ad (bug 965898)
Backed out changeset 403a0e1d2324 (bug 965898)
2014-07-29 22:57:59 -07:00
Bobby Holley
6b55e0bd57
Bug 965898 - Fix non-unified build bustage. r=me CLOSED TREE
2014-07-29 22:37:55 -07:00
Bobby Holley
ee67f37e7b
Bug 965898 - Allow both gettable and settable attributes in Filter(). r=gabor
2014-07-29 21:35:32 -07:00
Bobby Holley
de4ecc2a87
Bug 965898 - Squelch exceptions during the shadowing detection in isCrossOriginAccessPermitted. r=gabor
2014-07-29 21:35:32 -07:00
Bobby Holley
393c112402
Bug 965898 - Switch policies for get{,Own}PropertyDescriptor. r=gabor
2014-07-29 21:35:32 -07:00
Bobby Holley
ad9059bb11
Bug 965898 - Generalize FilterSetter to work on all the relevant fields of JSPropertyDescriptor. r=gabor
2014-07-29 21:35:31 -07:00
Bobby Holley
212683cae4
Bug 965898 - Don't use a FilteringWrapper to get an unfiltered view in ChromeObjectWrapper. r=gabor
...
This is necessary because subsequent patches cause us to assert when invoking
getPropertyDescriptor on a FilteringWrapper for which |Policy| denies both GET
and SET.
This stuff is really a mess. I'm looking forward to it going away.
2014-07-29 21:35:31 -07:00
Bobby Holley
83e31f73e3
Bug 965898 - Throw for [[Delete]] and [[DefineOwnProperty]]. r=gabor
2014-07-29 21:35:31 -07:00
Bobby Holley
f2b2ae9683
Bug 965898 - Implement proper behavior for [[Enumerate]] And [[OwnPropertyKeys]]. r=gabor
2014-07-29 21:35:31 -07:00
Bobby Holley
ea11a4e359
Bug 965898 - Cross-origin objects should have null prototypes. r=gabor
2014-07-29 21:35:30 -07:00
Bobby Holley
1ddc37dfd7
Bug 965898 - All properties from cross-origin objects are "configurable", non-enumerable, and non-writable. r=gabor
2014-07-29 21:35:30 -07:00
Bobby Holley
7724a65eb8
Bug 965898 - All properties on cross-origin DOM objects should be |own|. r=gabor
2014-07-29 21:35:30 -07:00
Bobby Holley
605a17bbb6
Bug 965898 - Implement an Xray subclass that we can use to implement HTML5 cross-origin semantics. r=gabor
2014-07-29 21:35:30 -07:00
Bobby Holley
49b066f2d2
Bug 965898 - Drop support for XPCWN XOWs. r=gabor
...
XOWs only allow access to Window and Location, both of which are on WebIDL now.
2014-07-29 21:35:29 -07:00
Bobby Holley
64ee1af06f
Bug 1042398 - Add a WaiveXrayWrapper override for ::iterate. r=gabor
...
I thought we had overrides for all the proxy traps that returned non-primitive
values, but it looks like we missed one.
2014-07-23 15:20:05 -07:00
Wes Kocher
575bd1d6b6
Backed out changeset 79d2db9a2a2c (bug 1042398) for build bustage on a CLOSED TREE
2014-07-23 13:08:24 -07:00
Bobby Holley
3c1972e20d
Bug 1042398 - Add a WaiveXrayWrapper override for ::iterate. r=gabor
...
I thought we had overrides for all the proxy traps that returned non-primitive
values, but it looks like we missed one.
2014-07-23 12:36:22 -07:00
Boris Zbarsky
858b055504
Bug 1021066. Make named setters work even for non-overridebuiltins bindings over Xrays. r=bholley,jorendorff
2014-07-23 01:06:33 -04:00
Mike Hommey
d10b15b035
Bug 1041860 - Avoid setting FINAL_LIBRARY to libraries that further use a FINAL_LIBRARY. r=mshal
2014-07-23 08:37:51 +09:00
Bobby Holley
81109a2b27
Bug 742444 - Only propagate waivers between same-origin compartments. r=gabor
2014-07-22 16:14:27 -07:00
Bobby Holley
bac5dd0535
Bug 742444 - Pass the old wrapper or value to the prewrap callback instead of its flags. r=gabor
...
We need this so that we can reason about the origin of the wrapper that
previously had a waiver and decide whether or not to extend it.
2014-07-22 16:14:27 -07:00
Bobby Holley
4bbb23f320
Bug 930091 - Check objects at COW membranes. r=gabor,r=msucan
2014-07-20 15:36:32 -06:00
Bobby Holley
984a293d6d
Bug 1040181 - Use an opaque wrapper rather than failing in Rewrap. r=gabor
2014-07-20 10:03:58 -06:00
Bobby Holley
51cadd7069
Bug 1038844 - Implement a COW opt-out for automation. r=gabor,sr=mrbkap
2014-07-17 21:34:48 -07:00
Bobby Holley
09cb98bd4a
Bug 1036185 - Clean up logic in IsPermitted (bonus fix). r=gabor
2014-07-15 09:04:19 -07:00
Bill McCloskey
c28e537321
Bug 1017323 - Fix some non-unified build bustage
2014-07-14 22:49:09 -07:00
Bill McCloskey
8b9dfc45b5
Bug 1017323 - Add-on interposition (r=bholley)
2014-07-14 22:10:05 -07:00
Bobby Holley
77cc9f70ea
Bug 856067 - Add some helpful logging to the console when we deny access to a non-Xrayable object. r=gabor
2014-07-14 10:09:07 -07:00
Bobby Holley
a724996a80
Bug 856067 - Remove special case for content XBL scopes. r=gabor
...
This is now the default behavior. \o/
2014-07-14 10:09:07 -07:00
Bobby Holley
f53b8f6e56
Bug 856067 - Make unwaived non-Xrayable objects opaque from privileged code. r=gabor
2014-07-14 10:09:07 -07:00
Boris Zbarsky
7bf5a529d9
Bug 832014 part 9. Switch AccessCheck to using the generated LocationBinding::IsPermitted method. r=bholley
2014-07-11 19:34:44 -04:00
Bobby Holley
2b47d5e6dc
Bug 987669 - Just use macros because MSVC and gcc don't have real constexpr support. r=me CLOSED TREE
2014-07-11 09:37:00 -07:00
Bobby Holley
e02167ae21
Bug 987669 - Turn on Xrays for Error objects. r=gabor
2014-07-11 09:09:22 -07:00
Bobby Holley
7d9004da47
Bug 987669 - Add Xray support for FooError.prototype.name. r=gabor
2014-07-11 09:09:22 -07:00
Bobby Holley
e0938bdec8
Bug 987669 - Implement Xray support for the data properties on ErrorObject instances. r=gabor
2014-07-11 09:09:21 -07:00
Bobby Holley
d896ae2a5e
Bug 987669 - Implement IsErrorObjectKey and do more at compile-time. r=gabor
2014-07-11 09:09:21 -07:00
Chris Peterson
fca203c323
Bug 1036778 - Replace MOZ_ASSUME_UNREACHABLE with MOZ_CRASH in js/xpconnect. r=bholley
2014-06-29 20:42:36 -07:00
Bobby Holley
65f180179d
Bug 1034262 - Honor the wantXrays of both sides of the membrane when computing same-origin wrappers. r=gabor
...
The basic problem in the testcase is that one compartment requests same-origin
Xrays via wantXrays=true (the default for Sandboxes) while the other does not.
The current code only considers the wantXrays flag of the compartment performing
the access, so we end up in a situation where we have same-origin compartments,
but Xray in one direction and Transparent in the other.
This is a problem for crossCompartmentFunction.apply(null, [arg]). If both
globals get transparent wrappers, there's obviously no problem. And if both
globals get XrayWrappers, then the |apply| happens on the XrayWrapper of the
function in the caller's compartment. So the Array is unpacked in the caller's
compartment, and again we have no problem.
But if the caller gets Transparent and the callee gets Xrays, then we end up
invoking |apply| from the callee's side, which then gets an XrayWrapper to the
array. This XrayWrapper may do surprising things, leading to the odd situation
in the testcase.
Same-origin Xrays are kind of broken anyway, but I don't think we'll ever be
able to get rid of them. So the most sensible thing to do is probably to honor
the flag (if set) from either compartment. This patch does that.
2014-07-10 10:04:30 -07:00
Bobby Holley
f99be51d16
Bug 1034239 - Replace GentlyOpaque with an "Xray-to-nothing" wrapper. r=gabor
...
I did this wrong before. Making this a SecurityWrapper means that the caller does
not subsumes the target, and that the target therefore needs to be protected
from the caller. But GentlyOpaque was supposed to be an analog of PermissiveXray
for use when no useful XrayTraits exist, so it should behave similarly.
If we make this a Filtering Security Wrapper, we get a bunch of assertions where we
expect CheckedUnwrap to succeed for a chrome-side wrapper. And we can't making it
a Filtering Non-Security Wrapper, because then the filtering policy isn't even
consulted (an optimization in jsproxy.cpp).
Really, we want all of the Xray machinery (like the ability to waive and to place
expandos), and we just don't want to resolve any properties. This patch does this.
2014-07-10 09:31:37 -07:00
Bobby Holley
86b1eef248
Bug 1034239 - Add Proxies to ForceCOWBehavior. r=gabor
2014-07-10 09:31:37 -07:00
Jan de Mooij
7fd4ee6769
Bug 1034627 part 3 - Fix SandboxDump, AccessCheck.cpp to work with Latin1 strings and nursery strings. r=bholley
2014-07-10 17:36:35 +02:00
Bobby Holley
7ee918bfb2
Bug 1033927 - Drop support for custom [object XrayWrapper [object ClassName]] stringification. r=peterv
2014-07-07 13:11:24 -07:00
Jan de Mooij
3c7459b21a
Bug 1034191 - Make nsDependentJSString users work with Latin1 strings and nursery-allocated strings. r=bz
2014-07-05 17:30:54 +02:00