Commit Graph

140 Commits

Author SHA1 Message Date
Boris Zbarsky
15316b1400 Bug 865961. Root the scope argument of wrap-the-xpconnect-object helpers in WebIDL bindings. r=ms2ger 2013-04-29 17:33:42 -04:00
Boris Zbarsky
8003a22424 Bug 717637. Stop using non-global parent objects for everything that's not an element, since having a mix of parent objects makes us fail shape guards in the JIT. r=peterv 2013-04-29 17:33:41 -04:00
Boris Zbarsky
e9fca1d653 Bug 865964. Remove dead WrapCallbackInterface code. r=smaug 2013-04-26 13:41:21 -04:00
Boris Zbarsky
9ba2beac5c Bug 766583 part 1. Stop declaring dictionaries as const on the stack in bindings code. r=smaug 2013-04-25 19:03:06 -04:00
Boris Zbarsky
7a5392b28d Bug 861493. When passing arguments to an Xray for a WebIDL constructor, make sure to do the argument unwrapping before entering the content compartment. r=bholley,waldo
There are several changes here:

1) Adds some MutableThis methods to Optional, Nullable, and dictionaries to
   effectively allow doing a const_cast without knowing the actual type being
   templated over.  I needed this because I do not in fact know that type in
   the relevant code.  I'm open to suggestions for a better name for this
   method.
2) Adds some operator& to RootedJSValue to make it look more like a JS::Value,
   and in particular so I can JS_WrapValue the thing in it.
3) Adds a Slot() method to NonNullLazyRootedObject, just like NonNull has.
4) Adds an operator& to LazyRootedObject to make it look more like JSObject* so
   I can JS_WrapObject the thing in it.
5) Implements the actual rewrapping of the arguments into the content compartment.
6) Fixes a small preexisting bug in which we didn't look at named constructors
   in getTypesFromDescriptor (this was causing my tests to not compile).
7) Changes Xrays to not enter the content compartment when calling a WebIDL
   constructor.
8) Adds some friend API to report things as not being functions.
2013-04-25 19:03:05 -04:00
Boris Zbarsky
9c1973b5d2 Bug 864727 part 5. Make all the WrapObject methods take a handle for the scope object. r=ms2ger 2013-04-25 12:29:54 -04:00
Boris Zbarsky
0b6ba06beb Bug 864727 part 4. Pass a handle for the scope object to all the various Wrap*Object stuff in BindingUtils. r=ms2ger
Note: The JS::Rooted in CGWrapWithCacheMethod is just there until we start passing a handle to Wrap().
2013-04-25 12:29:53 -04:00
Boris Zbarsky
498c958a33 Bug 864590. Assert that the object is not null when wrapping WebIDL objects. r=peterv 2013-04-24 14:59:15 -04:00
Peter Van der Beken
bd68680410 Bug 852094 - Support Unforgeable on proxy-based DOM bindings. r=bz. 2012-12-20 10:56:11 +01:00
David Zbarsky
5dda7256e6 Bug 857439 Followup: Add null-checks for WrapObject failing and assert that the JSObject took ownership if WrapObject succeeded r=bz 2013-04-19 18:18:31 -04:00
David Zbarsky
8ce74aae9d Bug 857439 Part 3: Make sure to delete owned interfaces if wrapping fails r=bz 2013-04-19 04:49:21 -04:00
Jon Coppeard
1f1c0e6af9 Bug 861281 - GC: Root the wrap object API r=terrence r=bholley
--HG--
extra : rebase_source : 1d3ed88299ad8e9ad6812fb41aa48f03cc7aabae
2013-04-15 18:32:55 +01:00
Jacek Szpot
514f40e52a Bug 854503 - Rename JS unwrapping functions. r=bholley 2013-04-11 11:50:18 -07:00
Boris Zbarsky
ecc404d587 Bug 688691. Warn when LenientThis actually causes us to not throw. r=ms2ger 2013-04-08 17:04:21 -04:00
Ryan VanderMeulen
24a4c17eff Backed out changeset a85d21e394c0 (bug 854503) for bustage. 2013-04-06 14:37:33 -04:00
Jacek Szpot
8ce12e971c Bug 854503 - Rename JS unwrapping functions. r=bholley 2013-04-04 12:14:32 +02:00
Boris Zbarsky
0d9204981d Bug 855700. Make returning an nsIVariant from a WebIDL interface work. r=smaug 2013-04-03 22:22:16 -04:00
Boris Zbarsky
b105f502e9 Bug 855582 part 2. Make the bindings' various spec arrays const, and make the jitinfo structs static. r=khuey 2013-04-02 20:20:38 -04:00
Boris Zbarsky
52855cafca Bug 856833 part 3. Rip out no longer needed proxy-unwrapping code. r=waldo 2013-04-02 20:20:37 -04:00
Bobby Holley
e231772ba1 Bug 854480 - Remove old-style unwrapping from dom/bindings bindings. r=bz 2013-04-01 15:17:50 -07:00
Terrence Cole
9801ecf36c Bug 855145 - DeMACROize the JS tracing interfaces; r=billm,mccr8
--HG--
extra : rebase_source : 915c80052b4412f653033eb5fc4d4f96c5d49bd5
2013-03-26 15:10:34 -07:00
Boris Zbarsky
80ffa442d8 Bug 854001 part 2. Remove a null check in bindings code that is no longer needed because workers no longer use a DOMJSClass for prototype objects. r=peterv,bent 2013-03-28 15:43:33 -04:00
Jon Coppeard
b752526987 Bug 849273 - Investigate splitting the js and JS namespaces r=terrence
--HG--
extra : rebase_source : 2b131d0177f02e5f0e89398545481fcacbfde00f
2013-03-19 10:35:41 +00:00
Peter Van der Beken
5cf619c9f2 Bug 812617 - Provide a JSBindingFinalized hook for the native classes using Web IDL bindings to know when their JS wrapper has been finalized; r=bzbarsky
--HG--
extra : rebase_source : bb5059a170f3c2f4aa977190fceea421b41b5e58
2013-03-17 21:47:12 -04:00
Boris Zbarsky
f257517c68 Bug 846972 part 2. Add the WebIDL APIs for StyleSheet and CSSStyleSheet. r=peterv 2013-03-17 10:42:59 -04:00
Bill McCloskey
a3cea08b3a Bug 759585 - Zones (r=jonco,bhackett,njn,dvander,luke,bz,mccr8,bholley) 2013-03-16 20:36:37 -07:00
Masatoshi Kimura
e5e5a90814 Bug 848339 - Remove the vestigial boolean outparam from nsWrapperCache::WrapObject. r=bz 2013-03-12 08:03:47 +09:00
Olli Pettay
e5921ddec1 Bug 822399 - Make Event to use Paris bindings, r=peterv 2013-03-09 13:34:29 +02:00
Jon Coppeard
8d5fd16382 Bug 848395 - GC: Move Rooted to JS namespace - rename js::Rooted to JS::Rooted outside SpiderMonkey r=terrence
--HG--
extra : rebase_source : 35cbf3cc4da4598c2e9e6975028ef397718849db
2013-03-06 16:41:43 +00:00
Ed Morley
fe417ad697 Backed out changeset 28ef4bdff455 (bug 848395) 2013-03-07 13:03:35 +00:00
Jon Coppeard
fa71007e65 Bug 848395 - GC: Move Rooted to JS namespace - rename js::Rooted to JS::Rooted outside SpiderMonkey r=terrence
--HG--
extra : rebase_source : 866879df05e3ec3f8e93570eb3f6b71103636b41
2013-03-06 16:41:43 +00:00
William Chen
e750316a3c Bug 847773 - Added override for GetWrapperCache with smart pointer argument to resolve ambiguity in templates. r=bz 2013-03-04 20:30:13 -08:00
Boris Zbarsky
09a15646fc Bug 845666. Add support for sequences containing other sequences (or dictionaries containing sequences) to WebIDL. r=peterv
This keeps simple sequence arguments and variadics using an auto array, while everything else uses a non-auto array.
2013-03-02 01:07:43 -05:00
Peter Van der Beken
c485f6afee Fix for bug 825628 (Implement NamedConstructor) - add codegen support for NamedConstructor. r=bz.
--HG--
extra : rebase_source : 8393995dca6f65cb49512874c1916ee745436638
2013-01-22 11:51:15 +01:00
Jonathan Kew
5219b8ae03 backout cset 4ede352670cd (bug 759585) on a CLOSED TREE on suspicion of making windows reftests so slow that they timeout and burn 2013-02-22 09:36:41 +00:00
Bill McCloskey
c330d96d13 Bug 759585 - Change the granularity of collection from compartment to zone (r=jonco,bhackett,njn,dvander,mccr8,bz,luke,bholley) 2013-02-21 18:23:47 -08:00
Boris Zbarsky
25deb6d78c Bug 839088 part 1. Add a way to throw a JS::Value on an ErrorResult. r=peterv 2013-02-19 11:54:40 -05:00
Peter Van der Beken
d07b3d8eef Fix for bug 838269 (Support cross-global |... instanceof DOMInterface|). r=bz.
--HG--
extra : rebase_source : e5ad1d7da8029394e3ecb38909eca406a675dbe9
2013-01-08 19:05:36 +01:00
Boris Zbarsky
12c45cc91b Bug 836920. Move dom::Optional<> and dom::Sequence to BindingDeclarations.h so using dictionaries in interfaces whose name comes before 'PrimitiveConversions' alphabetically does not break. r=peterv
All the code is just moving except the Optional<nsAString>::operator=
that takes a FakeDependentString.  That had to be changed so it has no
dependency on the actual definition of FakeDependentString.
2013-02-06 09:56:15 +00:00
Boris Zbarsky
5e8ac50381 Bug 830992 part 1. Make it possible to pass CallbackObject& as the thisObj for callback functions. r=peterv 2013-02-06 09:42:17 +00:00
Boris Zbarsky
fd94476421 Bug 822470 part 7. Use new callback codegen for conversion to and from JS. r=peterv
NodeFilter, EventListener, and DOMTransaction will be updated to use the new codegen once we've fixed the consumers.
2013-01-28 08:34:31 -05:00
Boris Zbarsky
1ddbf2e612 Bug 822470 part 6. Hook up callback interface codegen. r=peterv 2013-01-28 08:34:30 -05:00
Andrew McCreight
6f2b4df7a3 Bug 777385 - Support (some) Paris bindings objects as weak map keys. r=peterv
This adds support for many kinds of Paris bindings objects as weak map keys.
This patch supports nsISupports objects as well as non-cycle-collected
non-nsISupports objects. What is needed for support is to preserve any wrapper,
if the object is wrapper cached. In other cases, we don't need to do anything.
2012-11-09 10:59:02 -08:00
Jeff Walden
d9889b3184 Bug 826447 - Change all the proxy API signatures to take unsigned flags, rather than bool set, so that it's easier to find all tests of JSRESOLVE_ASSIGNING. r=bz
--HG--
extra : rebase_source : 3b88b411965087984d7973a90f8fa1b06457a6ce
2013-01-03 15:31:36 -06:00
Boris Zbarsky
ed9fff52e3 Bug 820665 part 4. Remove no-longer-used IsPlatformObject. r=khuey 2013-01-03 14:03:16 -05:00
Boris Zbarsky
3bff400090 Bug 820665 part 3. WebIDL spec updates to changes in how callback interfaces work. r=khuey
Specifically, any object that's not a Date or RegExp can implement a callback interface.
2013-01-03 14:03:11 -05:00
Boris Zbarsky
d19479dcd6 Bug 820665 part 1. More WebIDL spec updates to changes in how dictionaries work. r=khuey
Specifically, the following changes:

1) A union that includes a dictionary and is the last non-optional
   argument must actually be marked optional, just like a dictionary
   argument.
2) Disallow a union from containing both a nullable type and a dictionary.
3) Now all non-Date and non-RegExp objects can be used as dictionaries,
   including from overload resolution and union conversion.

We don't support dictionaries inside unions yet, or unions as
distinguishing args, so the spec changes to do with converting null to
dictionaries inside a union or picking the union overload if there is
a union containing a dictionary and null is the distinguishing arg
value are not relevant to us so far.
2013-01-03 14:03:00 -05:00
Boris Zbarsky
6c26f6fab3 Bug 825288. Handle SOWs correctly in MaybeWrapValue. r=peterv 2013-01-02 22:03:25 -05:00
Boris Zbarsky
6ed64d61c5 Bug 819845. Update WebIDL bindings to spec change: sequences/arrays are no longer distinguishable from dictionaries, and conversion to a sequence works on arbitrary objects. r=khuey 2013-01-02 22:03:25 -05:00
Boris Zbarsky
40ae916f86 Bug 825025. MaybeWrapValue should work with all gcthings. r=peterv 2012-12-29 22:13:26 -08:00