Commit Graph

26 Commits

Author SHA1 Message Date
Boris Zbarsky
24566ec012 Bug 1243001 part 7. Stop wrappercaching dom::Promise when SPIDERMONKEY_PROMISE is defined. r=peterv
nsWrapperCache expects the object it stores to have an ObjectMoved op that will
notify the wrapper cache when the object is moved.  SpiderMonkey promises don't
have a way to do this.

The XPCConvert changes are needed to allow code that passes around Promise
objects as nsISupports to continue working instead of ending up with
double-wrapped nsISupports (XPCWrappedNative for an nsISupports XPCWrappedJS)
around the SpiderMonkey Promise.
2016-02-09 17:40:31 -05:00
Nathan Froyd
01583602a9 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

--HG--
rename : mfbt/nsRefPtr.h => mfbt/RefPtr.h
2015-10-18 01:24:48 -04:00
Boris Zbarsky
f87bcd3914 Bug 1176800 part 2. Add a ToJSValue overload for owning unions. r=peterv 2015-07-01 00:15:30 -04:00
Kyle Machulis
c035543458 Bug 1123516 - Implement maplike/setlike in WebIDL Codegen; r=bz 2015-06-29 15:38:53 -07:00
Andrea Marchesini
3aa189b5ff Bug 1163388 - patch 2 - get rid of nsIDOMFile, r=ehsan
--HG--
rename : dom/base/nsIDOMFile.idl => dom/base/nsIDOMBlob.idl
2015-05-18 14:52:26 +01:00
Andrew McCreight
9e8f4b219e Bug 1152551, part 2 - Fix mode lines in dom/. r=jst 2015-05-03 15:32:37 -04:00
Ehsan Akhgari
2a9cba85f6 Bug 1151884 - Enable the uint32_t overload of ToJSValue; r=smaug 2015-04-08 21:58:07 -04:00
Boris Zbarsky
94eab48905 Bug 1146333. Get rid of WrapCallThisValue and just use ToJSValue, now that we have it. r=peterv 2015-03-30 23:43:45 -04:00
Tom Tromey
7e74625848 Bug 1095728 - Mark ToJSValue with MOZ_WARN_UNUSED_RESULT. r=bz 2014-12-09 14:45:00 -05:00
Boris Zbarsky
8ec9d58716 Bug 1087851 part 1. Rename WrapNewBindingObject to GetOrCreateDOMReflector to make it clearer what it does. r=peterv for the idea; patch itself is just search-and-replace 2014-11-26 14:25:20 -05:00
Paul Adenot
f459f9eddd Bug 1000264 - Allow an object that inherits from nsWrapperCache but not nsISupports to be passed as a Promise::MaybeResolve argument. r=bz
--HG--
extra : rebase_source : 3bab4f00e3949b83a6914ab8ade63f8390b818cd
2014-10-22 19:26:10 +02:00
Ryan VanderMeulen
064303be00 Backed out changesets 0c9407b0e481, c2c37b2e9fac, and 488700194519 (bug 1000264) for e10s test failures.
CLOSED TREE
2014-11-13 12:40:15 -05:00
Paul Adenot
b9f58b458e Bug 1000264 - Allow an object that inherits from nsWrapperCache but not nsISupports to be passed as a Promise::MaybeResolve argument. r=bz
--HG--
extra : rebase_source : ff023975d448bac82465e77eff1f49e39658483d
2014-10-22 19:26:10 +02:00
Ben Kelly
600ab9bfb9 Bug 1091091: Support ErrorResult in Promise::MaybeReject(). r=bz 2014-10-30 11:12:09 -04:00
Ehsan Akhgari
9fe74dfec0 Bug 839838 - Implement DOMRequest.then; r=sicking,bzbarsky
This is implemented by creating a Promise object internally and
forwarding the .then() call to it. Any further callbacks passed to
future .then() calls will be added as callbacks on the same internal
promise object. We also take care of resolving or rejecting the promise
if the success/error event of the DOMRequest object has been fired
before .then() is called.
2014-10-11 09:46:01 -04:00
Kyle Huey
91315e3b5f Bug 1031051: Part 13 - Support ToJSValue()ing CallbackObjects and nsTArrays of raw pointers. r=bz
Without special handling CallbackObject subclasses will fall into the "nsISupports but not nsWrapperCache" case which goes through an XPConnect wrapping path that has no idea how to cope with a CallbackObject.  We need both the CallbackObject overload and the EnableIf bit in the template because the template will bind to the subclass and thus be preferred to the CallbackObject overload which requires an implicit conversion to the base class.

Before this patch nsTArray<T*> will eventually try to ToJSValue a T* which will select the boolean overload.  Thanks C++!  The new template overload that takes a T and attempts to dereference it will be preferred because it can bind to the type directly and does not require the implicit (and terrible!) conversion to bool.  This template is written in terms of T and not T* so we can test to see if T is a pointer type (and not merely something that can be coerced to a T*, such as a T[N]).
2014-06-30 16:02:03 -07:00
Olli Pettay
0040a9cd76 Bug 1023280 - Rename dictionary.ToObject to ToObjectInternal, r=bz 2014-06-11 22:38:55 +03:00
Michael Shuen
e76fd87034 Bug 972385 - Make JS::AutoValueVector subscript operator return handles. r=jonco, smaug 2014-04-28 16:53:00 +02:00
Boris Zbarsky
d05a92fd80 Bug 996831. Add a ToJSValue overload for nsresult, to allow rejecting promises from C++ more easily. r=bholley 2014-04-16 15:13:41 -04:00
Boris Zbarsky
78577315be Bug 996474. Add a ToJSValue overload that takes a Handle<Value>. r=bholley 2014-04-16 15:13:41 -04:00
Ryan VanderMeulen
565416fed7 Backed out 3 changesets (bug 996474, bug 996831) for B2G bustage on a CLOSED TREE.
Backed out changeset 8f98a4c2257f (bug 996831)
Backed out changeset 7acce569bd84 (bug 996831)
Backed out changeset 1845b09c7578 (bug 996474)
2014-04-16 19:31:41 -04:00
Boris Zbarsky
9523850626 Bug 996831. Add a ToJSValue overload for nsresult, to allow rejecting promises from C++ more easily. r=bholley 2014-04-16 15:13:41 -04:00
Boris Zbarsky
5b38f6c7c1 Bug 996474. Add a ToJSValue overload that takes a Handle<Value>. r=bholley 2014-04-16 15:13:41 -04:00
Boris Zbarsky
98f070ccaf Bug 994811 part 1. Add a ToJSValue overload for dictionary types. r=bholley 2014-04-11 22:20:52 -04:00
Boris Zbarsky
c420001bda Bug 994793. Make the array bits of ToJSValue nicer. r=bholley 2014-04-10 14:57:42 -04:00
Boris Zbarsky
4ad64a690c Bug 994453 part 1. Factor out the to-JS conversions from Promise.h into mozilla::dom::ToJSValue methods. r=bholley
Apart from moving the methods, I made the following changes:

1)  Renamed them to ToJSValue.
2)  Inlined the boolean overload.
3)  Added overloads that take integer types.
4)  Changed the order of the aCx and aArgument arguments so aCx comes first.
5)  Renamed "abv" to "obj" in the typed array overload.
2014-04-10 14:57:07 -04:00