Commit Graph

101 Commits

Author SHA1 Message Date
Nathan Froyd
cccdd9fbca Bug 1177488 - use |const char*| for representing async call reasons; r=bz,fitzgen
Using a simple |const char*| is more memory-efficient than allocating a
JS string. We still have to allocate the JS string for passing things
into JS, but ideally we will be able to move the point of allocation
much closer to where it's actually needed, rather than indiscriminantly
doing it all the time.
2016-03-23 10:40:53 -04:00
Wes Kocher
ea76ed99d7 Backed out changeset 95494e68c722 (bug 1177488) for crashes in test_bug732665.xul CLOSED TREE
MozReview-Commit-ID: IFUHUBUCnCD
2016-03-25 12:11:48 -07:00
Boris Zbarsky
d8d55b4579 Bug 1259545. Remove the JS_SaveFrameChain bits in CallbackObject error reporting, since they are no longer needed. r=bholley
The code this is working around no longer exists.
2016-03-25 11:11:20 -04:00
Nathan Froyd
418aa2af4f Bug 1177488 - use |const char*| for representing async call reasons; r=bz,fitzgen
Using a simple |const char*| is more memory-efficient than allocating a
JS string. We still have to allocate the JS string for passing things
into JS, but ideally we will be able to move the point of allocation
much closer to where it's actually needed, rather than indiscriminantly
doing it all the time.
2016-03-23 10:40:53 -04:00
Boris Zbarsky
8b4ef1c72e Bug 1255817 part 6. Fix up some comments in CallbackObject that refer to things that no longer exist. r=bholley 2016-03-23 11:44:55 -04:00
Boris Zbarsky
e3b2de6aa9 Bug 1255817 part 2. Get rid of AutoJSAPI::OwnsErrorReporting and AutoJSAPI::TakeOwnershipOfErrorReporting. r=bholley 2016-03-23 11:44:54 -04:00
Boris Zbarsky
172598b4e2 Bug 1257335. Replace some AutoSafeJSContext uses with AutoJSAPI or AutoJSContext uses. r=bholley
In general, using an AutoJSAPI inited with an object is NOT the same as using
AutoSafeJSContext (or AutoJSAPI inited without an object) and then entering the
compartment of the object: the former will report exceptions to the global of
the object as it comes off the stack, while the latter will not.  This only
really matters if we have an object from a window or worker global and hence
might fire error events, or report internal stuff to the web console.

The changes to initing with an object made in this bug are OK for the following
reasons:

1) dom/base/Console.cpp: Always clears its exception before coming off the stack.
2) dom/base/nsDOMClassInfo.cpp: Inits with a non-web global.
3) dom/base/nsFrameMessageManager.cpp: Inits with a non-web global.
4) dom/media/MediaPermissionGonk.cpp: We probably want the caller to notice if
   anything here throws.
5) dom/xbl/nsXBLPrototypeBinding.cpp: Inits with a non-web global.
6) dom/xul/nsXULElement.cpp: Inits with a non-web global.
7) extensions/pref/autoconfig/src/nsJSConfigTriggers.cpp: Inits with a non-web global.
8) ipc/testshell/XPCShellEnvironment.cpp: Inits with a non-web global.
2016-03-18 10:48:38 -04:00
Wes Kocher
168746512d Backed out changeset ee3c99e6f676 (bug 1177488) for LeakSanitizer failures
MozReview-Commit-ID: FFfF4u2vOrS

--HG--
extra : rebase_source : 0c7f5e290b388b2f35837a5f757f2d962b973da3
2016-03-14 13:15:21 -07:00
Nathan Froyd
6b6c2a1fcd Bug 1177488 - use |const char*| for representing async call reasons; r=bz,fitzgen
Using a simple |const char*| is more memory-efficient than allocating a
JS string.  We still have to allocate the JS string for passing things
into JS, but ideally we will be able to move the point of allocation
much closer to where it's actually needed, rather than indiscriminantly
doing it all the time.
2016-03-08 16:29:25 -05:00
Kyle Huey
9eea75a6f5 Bug 1252268: If the slow script dialog aborts an interval timer callback, don't schedule it again. r=bz 2016-03-10 01:50:56 -08:00
Boris Zbarsky
36d4079be7 Bug 1254847 part 3. Make AutoEntryScript always take ownership of error reporting. r=bholley 2016-03-09 19:02:03 -05:00
Kyle Huey
91efc5a86c Bug 1241764: Replace nsPIDOMWindow with nsPIDOMWindowInner/Outer. r=mrbkap,smaug 2016-01-30 09:05:36 -08:00
Boris Zbarsky
89a6485e7f Bug 1172246. Make sure CallSetup's handling of exceptions it wants to deal with itself works even when the callable is a JSNative that uses the JS_Report*Error APIs instead of throwing exceptions in the usual way. r=bholley 2015-06-08 16:16:27 -04:00
Boris Zbarsky
888bc2d651 Back out bug 1172246 because of mochitest-JP bustage. Who needs tests that we care about running on try anyway? 2015-11-20 18:00:27 -05:00
Boris Zbarsky
bc25c907d6 Bug 1172246. Make sure CallSetup's handling of exceptions it wants to deal with itself works even when the callable is a JSNative that uses the JS_Report*Error APIs instead of throwing exceptions in the usual way. r=bholley 2015-06-08 16:16:27 -04:00
Jan de Mooij
fffc37012e Bug 1125423 part 2 - Rename stopAtOuter argument to *Unwrap functions to stopAtWindowProxy. r=bz 2015-11-06 19:03:52 +01: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
Bobby Holley
110f12e7ca Bug 1072150 - Use the opt-out for various sloppy consumers. r=bz 2015-09-24 14:02:41 -07:00
Tom Tromey
9f3b16bf4c Bug 1148593 - Create async stack in callback objects. r=bz, r=fitzgen
--HG--
extra : rebase_source : f9b507d8f005dbca6f40f510ca41a0cbb03aebf9
2015-07-24 07:01:00 -04:00
Ryan VanderMeulen
b171b787bd Backed out changesets fa9fe193778f and 3eaf867930dd (bug 1148593) for test_async_setTimeout_stack.html and test_async_setTimeout_stack_across_globals.html failures. 2015-07-17 12:37:24 -04:00
Tom Tromey
843465db8e Bug 1148593 - Create async stack in callback objects. r=bz, r=fitzgen 2015-07-17 07:48:00 -04:00
Boris Zbarsky
9c31c02f69 Bug 1180525. Run callbacks whose window is no longer current as long as its document is the active document in the browsing context. r=bholley
The distinction only matters when document.open() makes a different
window current without changing the active document.
2015-07-07 17:38:07 -04:00
Boris Zbarsky
90031d3619 Bug 1173593. Make it possible to throw TypeError (or, in fact, any other Error from the content compartment) from js-implemented webidl. r=bholley 2015-06-15 20:09:36 -04:00
Olli Pettay
6c339b4947 Bug 1149891, backout bug 1081038 because it made us run mutation observer callbacks against the spec, part 2, r=bholley
--HG--
extra : rebase_source : 3d34419ec07782b1a3260c36fc64a1b26b3679e8
2015-05-29 19:11:09 +03:00
Andrew McCreight
9e8f4b219e Bug 1152551, part 2 - Fix mode lines in dom/. r=jst 2015-05-03 15:32:37 -04:00
Jim Blandy
ebd83c9a61 Bug 1152577: Add 'aReason' argument to AutoEntryScript constructor, and provide plausible names for its instantiations. r=bholley
--HG--
extra : rebase_source : 8ab7a3628a5b4d94b957f24e23e4c5c7871db97c
2015-04-08 21:23:48 -04:00
Eddy Bruël
a95bcbb9fd Bug 1092102 - Implement a WorkerDebuggerGlobalScope;r=khuey 2015-03-04 00:51:53 +01:00
Boris Zbarsky
8615709f13 Bug 1107953 part 1. Change the invariants around aCompartment in CallSetup to allow passing it even when the exception handling mode is eRethrowExceptions. r=bholley 2015-01-15 17:39:01 -05:00
Boris Zbarsky
8fd98d4057 Bug 1107592 part 2. Allow chrome JS to directly throw content DOMExceptions that will propagate out to the web script. r=peterv 2015-01-02 17:08:33 -05:00
Gabor Krizsanits
dbcc1f28d5 Bug 1081038 - part2: Removing nsAutoMicroTask where we have AutoEntryScript. r=bholley 2014-11-14 16:46:26 +01:00
Carsten "Tomcat" Book
c969ca2647 Backed out changeset 9243c59c3e56 (bug 1081038) 2014-11-13 11:48:00 +01:00
Gabor Krizsanits
beb54125e8 Bug 1081038 - part 2: Removing nsAutoMicroTask where we have AutoEntryScript. r=bholley 2014-11-13 09:50:15 +01:00
Bobby Holley
e3eca2660e Bug 1070696 - Rename xpc::GetNativeForGlobal to xpc::NativeGlobal and make it accept non-global JSObjects. r=smaug
The method is infallible, and making the callers invoke
js::GetGlobalForObjectCrossCompartment manually is dumb.
2014-09-21 21:31:53 +02:00
Bobby Holley
e70ddb7476 Bug 1052052 - Hoist Auto*JSContext into nsContentUtils and kill nsCxPusher.{cpp,h}. r=gabor 2014-08-14 18:47:15 -07:00
Ryan VanderMeulen
30ae466592 Backed out changesets 5b1a3161f614, 17a9673ed782, and a9b8c346d295 (bug 1052052) for B2G non-unified bustage. 2014-08-14 17:23:10 -04:00
Bobby Holley
3e4d70a655 Bug 1052052 - Hoist Auto*JSContext into nsContentUtils and kill nsCxPusher.{cpp,h}. r=gabor 2014-08-14 12:54:34 -07:00
Seth Fowler
0fd6e994ae Bug 913586 (Part 4) - Update Maybe users in dom. r=bz
--HG--
extra : rebase_source : 7b6159b00b3bf4f919b30f1bccc8939cc04fe526
2014-08-13 15:39:41 -07:00
Boris Zbarsky
d519374494 Bug 1019149. For calls into JS-implemented WebIDL, don't check whether it's OK to run the script (it is) and whether the script lives in a window (it doesn't). r=bholley 2014-06-03 11:38:37 -04:00
Boris Zbarsky
490d4fc9b2 Bug 1019091. Do less work in the CallSetup destructor when we have no exception. r=bholley 2014-06-03 11:38:37 -04:00
Terrence Cole
e82db4c03a Bug 1013531 - Clarify the naming of the rooting analysis supression guards; r=sfink
--HG--
extra : rebase_source : 95229e907222dd7335f92ae13dd83f1065eabf58
2014-05-28 17:34:36 -07:00
Ryan VanderMeulen
5822c2ae12 Backed out changeset 0d61bcf08362 (bug 1013531) for bustage.
CLOSED TREE
2014-05-29 13:26:55 -04:00
Terrence Cole
a3d66fba38 Bug 1013531 - Clarify the naming of the rooting analysis supression guards; r=sfink
--HG--
extra : rebase_source : ce44e4a4428414a132eae7167c485ff366b1f0a6
2014-05-28 17:34:36 -07:00
Nick Lebedev
c49e263d0f Bug 998002 - Rename nsContentUtils::Get{Subject,Object}Principal to nsContentUtils::{Subject,Object}Principal. r=bholley 2014-05-13 11:58:00 +02:00
Boris Zbarsky
865b9215f3 Bug 978618. Fix error reporting for unintended XPConnect exceptions thrown by JS-implemented webidl to actually work correctly. r=bholley 2014-03-05 08:32:27 -05:00
Bobby Holley
c8041c17a7 Bug 975419 - Trace the Incumbent Global from a CallbackObject (but check it too, just to be safe). r=bz,mccr8 2014-03-03 08:53:42 -08:00
Bobby Holley
e5ad98ec72 Bug 968335 - Implement GetCallerPrincipalOverride. r=bz 2014-02-14 22:36:44 -08:00
Phil Ringnalda
4d898ac6fc Back out 4fc776ee6852:6a0ebe4ddd01 (bug 968335) and e7d697004921 (bug 923904) for b2g emulator build bustage
CLOSED TREE
2014-02-14 18:35:30 -08:00
Bobby Holley
c0fe9cb542 Bug 968335 - Implement GetCallerPrincipalOverride. r=bz 2014-02-14 16:13:38 -08:00
Olli Pettay
0eb04a40df Bug 963285 - CallSetup may set context options but not restore them , r=bz 2014-01-24 00:56:50 +02:00
Terrence Cole
5f6e9be3fb Bug 955660 - Fix an exact rooting hazard in CallSetup; r=bz 2013-12-31 08:30:57 -08:00