Commit Graph

511 Commits

Author SHA1 Message Date
Tom Schuster
e167ae3181 Bug 1130988 - Add SharedArrayBuffer to JSXray. r=bz 2016-10-29 20:11:42 +02:00
Tom Schuster
d7b85e18f7 Bug 1248865 - Some small changes to JSXray and tests. r=bz 2016-10-25 10:18:40 +02:00
Boris Zbarsky
9415b02a01 Bug 946906 part 8. When getting a cacheable property off a DOM Xray, cache it on the Xray's expando object. r=bholley 2016-10-10 18:16:26 -04:00
Boris Zbarsky
a4b57886a2 Bug 946906 part 6. Clear the relevant slots on Xray expandos when clearing cached slots on a DOM object. r=bholley 2016-10-10 18:16:26 -04:00
Boris Zbarsky
0a18a05583 Bug 946906 part 5. Use the codegenned JSClass, if available, when creating Xray expando objects. r=bholley 2016-10-10 18:16:26 -04:00
Boris Zbarsky
2e545432d8 Bug 946906 part 3. Create a macro for declaring Xray expando classes, and move the default Xray expand class definition to bindings code. r=bholley 2016-10-10 18:16:25 -04:00
Boris Zbarsky
cd84de07f9 Bug 946906 part 2. Declare XrayExpandoObjectClassOps in XrayWrapper.h so we can use it from bindings code. r=bholley 2016-10-10 18:16:25 -04:00
Boris Zbarsky
8d298dc273 Bug 946906 part 1. Move the ExpandoSlots enum to XrayWrapper.h. r=bholley
The other option, of course, is to just define an "expando slot count" constant
in the header and then static_assert it has the right value once the
ExpandoSlots enum is declared.
2016-10-10 18:16:25 -04:00
Tooru Fujisawa
a5294e0308 Bug 1289050 - Part 1: Use ASCII variant of JS_ReportError in simple case. r=jwalden 2016-08-14 20:39:28 +09:00
Boris Zbarsky
c4d991847b Bug 1302849 part 1. Remove the now-dead SCSecurityXrayXPCWN thing. r=mrbkap 2016-09-15 11:41:45 -04:00
Jan de Mooij
21f6f04f90 Bug 1302448 part 2 - Rename XPCJSRuntime to XPCJSContext. r=mrbkap 2016-09-14 15:48:17 +02:00
Tom Schuster
faedc0de60 Bug 1299321 - Make DOM/Xray handle string values in JSPropertySpec. r=peterv 2016-09-02 18:39:50 +02:00
Jon Coppeard
66a80788eb Bug 1296688 - Add JSCLASS_FOREGROUND_FINALIZE flag r=sfink r=smaug 2016-08-24 14:18:10 +01:00
Tom Schuster
62b6679fa2 Bug 1114580 - Define getBuiltinClass on Xray. r=peterv 2016-08-18 10:59:36 +02:00
Boris Zbarsky
8c056aea7a Bug 1291142. Ensure that we don't return gray objects when getting child windows by name or index. r=bholley 2016-08-02 11:06:25 -07:00
Botond Ballo
f5f305a264 Bug 1289608 - Define XrayWrapper<...>::singleton for all instantiations, instead of defining specializations for specific ones. r=bholley
MozReview-Commit-ID: GecaSstpxRQ
2016-07-29 16:40:08 -04:00
Boris Zbarsky
519cbb38a4 Bug 1281276 part 5. Get rid of the LangType argument of the XPCCallContext constructor and the now-dead language type enums. r=bholley 2016-06-23 00:22:29 -04:00
Jeff Walden
51488fefe9 Bug 888969 - Make the getPrototypeOf/setPrototypeOf traps scriptable. r=efaust, r=bholley 2016-02-23 13:42:30 -08:00
Nicholas Nethercote
a35143c546 Bug 1261723 (part 2) - Separate class ops from js::Class. code=njn,h4writer. r=efaust,bz.
js::Class op are often all null. And when they're not all null, they're often
duplicated among classes. By pulling them out into their own struct, and using a
(possibly null) pointer in js::Class, we can save 114 KiB per process on
64-bit, and half that on 32-bit.
* * *
imported patch separate-ClassOps-2
2016-04-01 11:00:01 +11:00
Nicholas Nethercote
2e87fb6483 Bug 1260984 (part 3) - Separate js::ClassSpec from js::Class. r=jorendorff.
js::ClassSpec is often all null. When it's not all null, it's often duplicated
among classes. By pulling it out into its own struct, and using a (possibly
null) pointer in js::Class, we can save 138 KiB per process on 64-bit, and half
that on 32-bit.
2016-04-01 10:59:54 +11:00
Till Schneidereit
28fb965537 Bug 911216 - Part 7: Implement ES6 Promises in the JavaScript engine. r=efaust 2015-11-10 12:34:00 +01:00
Tom Schuster
ec0ec57aca Bug 1256688 - Continue using getPropertyDescriptor for has in XrayWrapper. r=peterv 2016-03-19 01:30:03 +01:00
Benjamin Bouvier
e9e5750ced Bug 1251308; r=luke
MozReview-Commit-ID: AqsMX4m7Qh9
2016-03-09 11:20:11 +01:00
Till Schneidereit
a238951051 Bug 1254968 - Add support for running JS builtins' constructors over Xray wrappers without unwrapping the newTarget. r=bholley,f=bz 2016-02-10 23:09:13 +01:00
Boris Zbarsky
f99662f676 Bug 1254293. Fix dom::GetArrayIndexFromId to actually follow the spec for large indices (i.e. ones that don't fit in in int32_t). r=peterv 2016-03-08 17:21:40 -05:00
Peter Van der Beken
dd98d2022e Bug 1248478 - Remove some obsolete code in XrayWrapper.cpp. r=bholley. 2016-02-16 19:30:49 +01:00
Boris Zbarsky
74de217760 Bug 1243824. Add support for static functions and attributes on JSXrays. r=bholley 2016-02-05 10:41:08 -05:00
Kyle Huey
e95edb30a9 Bug 1241764: Replace nsPIDOMWindow with nsPIDOMWindowInner/Outer. r=mrbkap,smaug 2016-01-30 09:05:36 -08:00
Tom Schuster
05bbc0341d Bug 1242214 - Rename JSPropertyDescriptor JS::PropertyDescriptor everywhere else. r=smaug 2016-01-28 11:28:04 +01:00
Tom Schuster
8436c3c6c9 Bug 1242214 - Rename JSPropertyDescriptor JS::PropertyDescriptor in js. r=sstangl 2016-01-28 11:28:04 +01:00
Tom Schuster
3c0beb5219 Bug 1242072 - Continue using getPropertyDescriptor for get in XrayWrapper. r=bholley 2016-01-26 19:38:52 +01:00
Luke Wagner
786af33c6f Bug 1239601 - improve the UniquePtr situation (r=jandem) 2016-01-15 18:26:20 -06:00
Nathan Froyd
54dfa729a9 Bug 1218454 - part 2 - don't #include nsContentUtils.h from CallbackObject.h; r=bz
We used to need nsContentUtils.h here for nsCxPusher, but since that got
moved to ScriptSettings.h, we no longer need nsContentUtils.h for
anything.
2015-10-26 12:14:47 -04:00
Jan de Mooij
24de1247fd Bug 1125423 part 3 - Use IsWindow/IsWindowProxy functions instead of checking for Class hooks. r=bz 2015-11-06 19:03:52 +01:00
Jan de Mooij
eae167fd59 Bug 1125423 part 2 - Rename stopAtOuter argument to *Unwrap functions to stopAtWindowProxy. r=bz 2015-11-06 19:03:52 +01:00
Nathan Froyd
4e6d8f6705 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi
2015-10-18 01:24:48 -04:00
Bobby Holley
0116d26e57 Bug 1198934 - Support special-case WebExtension behavior for TypedArrays. r=billm 2015-10-14 16:57:51 -07:00
Jason Orendorff
24d3e52551 Bug 1054756, part 5 - Remove Class::convert. 2015-03-20 16:28:59 -05:00
Jason Orendorff
c2e41c4309 Bug 1054756, part 4 - Remove BaseProxyHandler::defaultValue. r=jandem. 2015-03-20 14:03:24 -05:00
Jason Orendorff
52fed7bb56 Bug 1054756, part 3 - Implement Symbol.toPrimitive. Replace existing convert hooks with methods. r=jandem.
JSClass::convert is no longer used after this, but to minimize the noise, it will be deleted in a separate patch. However all non-nullptr convert hook implementations must be replaced with [@@toPrimitive] methods in this patch to avoid changing the behavior.

The changes in XrayWrapper.cpp fix a pre-existing bug: when an Xray wrapper tries to emit the "Silently denied access" warning, if id is a symbol, the existing code triggers an error trying to convert it to a string for the warning message. Implementing Symbol.toPrimitive revealed this bug; the fix is straightforward.
2015-03-20 14:02:55 -05:00
Jason Orendorff
348961c14d Bug 1054756, part 1 - Support symbol-keyed properties in JSXrayTraits::resolveOwnProperty(). r=jandem. 2015-07-07 19:22:20 -05:00
Wes Kocher
acbbcd2aca Backed out 7 changesets (bug 1206168, bug 1177318, bug 1054756) for hazard build failures CLOSED TREE
Backed out changeset e892727a373a (bug 1206168)
Backed out changeset 6c93d1044b7e (bug 1054756)
Backed out changeset 105433ce195b (bug 1054756)
Backed out changeset 13128a88f2b9 (bug 1054756)
Backed out changeset c250abf4fd17 (bug 1054756)
Backed out changeset fc9fef646a97 (bug 1054756)
Backed out changeset c8897f109a08 (bug 1177318)
2015-09-23 12:31:19 -07:00
Jason Orendorff
b7001bb468 Bug 1054756, part 5 - Remove Class::convert. 2015-03-20 16:28:59 -05:00
Jason Orendorff
8e474554fe Bug 1054756, part 4 - Remove BaseProxyHandler::defaultValue. r=jandem. 2015-03-20 14:03:24 -05:00
Jason Orendorff
0ba28d226c Bug 1054756, part 3 - Implement Symbol.toPrimitive. Replace existing convert hooks with methods. r=jandem.
JSClass::convert is no longer used after this, but to minimize the noise, it will be deleted in a separate patch. However all non-nullptr convert hook implementations must be replaced with [@@toPrimitive] methods in this patch to avoid changing the behavior.

The changes in XrayWrapper.cpp fix a pre-existing bug: when an Xray wrapper tries to emit the "Silently denied access" warning, if id is a symbol, the existing code triggers an error trying to convert it to a string for the warning message. Implementing Symbol.toPrimitive revealed this bug; the fix is straightforward.
2015-03-20 14:02:55 -05:00
Jason Orendorff
99c16c5477 Bug 1054756, part 1 - Support symbol-keyed properties in JSXrayTraits::resolveOwnProperty(). r=jandem. 2015-07-07 19:22:20 -05:00
Tom Schuster
62062f042f Bug 603201 - Change GetProperty receiver argument to Value in the browser. r=smaug 2015-09-18 00:14:41 +02:00
Nicholas Nethercote
04cf6d258b Bug 1200484 (part 2) - Use JS column numbers in ReportWrapperDenial(). r=mrbkap. 2015-08-31 21:28:50 -07:00
Kyle Huey
a1b3153fd0 Bug 1182316: Part 3 - Add assertions to most other WebIDL entry points, clean up nsIDOMJSWindow cruft. r=peterv 2015-07-16 22:10:35 -07:00
Bobby Holley
c66ad2a5e6 Bug 1182409 - Add 'allowWaivers' sandbox option. r=gabor 2015-07-15 11:32:30 -07:00