Commit Graph

135 Commits

Author SHA1 Message Date
Jon Coppeard
556585c65f Bug 1297558 - Remove explicit calls to Expose*ToActiveJS r=mccr8 2016-10-18 17:58:19 +01:00
Andrea Marchesini
e865eab7d6 Bug 1308956 - Get rid of MessagePortList - part 2 - files removed, r=smaug 2016-10-13 15:19:52 +02:00
Jan de Mooij
a53986bf29 Bug 1302448 part 1 - Rename CycleCollectedJSRuntime to CycleCollectedJSContext. r=mccr8
--HG--
rename : xpcom/base/CycleCollectedJSRuntime.cpp => xpcom/base/CycleCollectedJSContext.cpp
rename : xpcom/base/CycleCollectedJSRuntime.h => xpcom/base/CycleCollectedJSContext.h
extra : rebase_source : 075214b5057f151520926715b6154e99ae80a0b3
2016-09-14 15:47:32 +02:00
Michael Layzell
c47fca1cd7 Bug 1018486 - Part 1: Changes in dom/, r=baku
MozReview-Commit-ID: 4tCUM4KRe81
2016-09-07 10:50:35 -04:00
Nicholas Nethercote
c2306345d5 Bug 1297658 - Avoid unnecessary checking in memory reporters. r=erahm.
This patch removes checking of all the callback calls in memory reporter
CollectReport() functions, because it's not useful.

The patch also does some associated clean-up.

- Replaces some uses of nsIMemoryReporterCallback with the preferred
  nsIHandleReportCallback typedef.

- Replaces aCallback/aCb/aClosure with aHandleRepor/aData for CollectReports()
  parameter names, for consistency.

- Adds MOZ_MUST_USE/[must_use] in a few places in nsIMemoryReporter.idl.

- Uses the MOZ_COLLECT_REPORT macro in all suitable places.

Overall the patch reduces code size by ~300 lines and reduces the size of
libxul by about 37 KiB on my Linux64 builds.

--HG--
extra : rebase_source : e94323614bd10463a0c5134a7276238a7ca1cf23
2016-08-24 15:23:45 +10:00
Gabor Krizsanits
b64adac9e4 Bug 1291202 - Link pmm's with fmm's. r=billm 2016-08-22 10:28:04 +02:00
Kan-Ru Chen
506dfe6ea3 Bug 1264642 - Part 4. Use BufferList to replace raw buffers in StructuredClone. r=baku r=billm r=jorendorff
In JS StructuredClone BufferList<SystemAllocPolicy> is typedef'd to
JSStructuredCloneData and use everywhere in gecko that stores structured
clone data.

This patch changed some raw pointers to UniquePtr<JSStructuredCloneData>
and some to stack allocated JSStructuredCloneData for better life time
management. Some parameters or methods are deleted because of changing
to the new data structure.

MessagePortMessage now has the exactly same structure with
ClonedMessageData. Maybe in the future they can be consolidated.

MozReview-Commit-ID: 1IY9p5eKLgv
2016-08-23 00:40:46 +08:00
Sebastian Hengst
1785b4b376 Backed out changeset 262a71c958db (bug 1291202) for build bustage. r=backout on a CLOSED TREE 2016-08-22 11:17:14 +02:00
Gabor Krizsanits
e3b933cd9a Bug 1291202 - Link pmm's with fmm's. r=billm 2016-08-22 10:28:04 +02:00
Jan de Mooij
536f87ca97 Bug 1294404 - Merge PerThreadDataFriendFields and ContextFriendFields, clean up APIs. r=terrence,bz 2016-08-12 11:39:16 +02:00
Jan de Mooij
c33bac8363 Bug 1292892 part 5 - Replace most nsContentUtils::RootingCx calls with dom::RootingCx. r=bz,terrence 2016-08-11 14:39:23 +02:00
Jan de Mooij
5a6befce76 Bug 1292892 part 2 - Some RootingContext cleanup. r=bz,terrence 2016-08-11 14:39:22 +02:00
Jan de Mooij
0ad12515f4 Bug 1292892 part 1 - Stop using JSRuntime outside SpiderMonkey. r=bz,terrence,fitzgen,kanru 2016-08-11 14:39:22 +02:00
Nicholas Nethercote
e7f10a07fd Bug 1293603 (part 2) - Make Run() declarations consistent. r=erahm.
This patch makes most Run() declarations in subclasses of nsIRunnable have the
same form: |NS_IMETHOD Run() override|.

As a result of these changes, I had to add |override| to a couple of other
functions to satisfy clang's -Winconsistent-missing-override warning.

--HG--
extra : rebase_source : 815d0018b0b13329bb5698c410f500dddcc3ee12
2016-08-08 12:18:10 +10:00
Andrea Marchesini
60ab8339e0 Bug 1288736 - Add some missing rv.SuppressException(), r=smaug 2016-07-22 16:50:10 +02:00
Andrew McCreight
2d0dfef092 Bug 1287623, part 1 - Use StaticRefPtr for sScriptCacheCleaner. r=smaug 2016-07-21 09:54:16 -07:00
Wes Kocher
3bba9b339e Backed out 5 changesets (bug 1287623) for static build bustage CLOSED TREE
Backed out changeset a48daec87ec9 (bug 1287623)
Backed out changeset 248153344e15 (bug 1287623)
Backed out changeset 8aa409c9b1ce (bug 1287623)
Backed out changeset 602d4d88e806 (bug 1287623)
Backed out changeset 114da8bdc0b0 (bug 1287623)
2016-07-20 15:40:33 -07:00
Andrew McCreight
6b881b736e Bug 1287623, part 1 - Use StaticRefPtr for sScriptCacheCleaner. r=smaug 2016-07-20 15:19:00 -07:00
Ehsan Akhgari
36b7d9bfd1 Bug 1277135 - Add an rval argument to JS::CloneAndExecuteScript(); r=jorendorff 2016-07-19 19:40:51 -04:00
Andrew McCreight
e1d8d2ed7b Bug 1272423 - Refuse to send large messages via the message manager. r=baku
Large IPC messages will hit a fatal assert, so reject message manager
messages earlier.

Also, collect telemetry on the rejected messages.
2016-06-09 09:35:19 -07:00
Andrew McCreight
858cf1d807 Bug 1275707, part 3 - Rename MESSAGE_MANAGER_MESSAGE_SIZE. r=baku
Now that digits have been filtered out of the message manager message
names to avoid creating thousands of similar keys, we can reenable the
telemetry by renaming it. Also, update the description to address
bsmedberg's comments, and add me to the list of alert emails.
2016-06-01 15:11:06 -07:00
Andrew McCreight
fdd63bef5d Bug 1275707, part 2 - Remove numbers from the message manager message names. r=billm
There are a huge number of different message manager messages with
names of the form "ublock0:sb:{N}", where {N} is some number from 1 to
over 1000. Having so many different keys seems to cause problems for
telemetry and makes it harder to tell how many messages of each type
there really are, so this patch combines them by eliminating any
digits. It will also help for the webdev tools that use channels with
names like "debug:server1.conn5.child1:packet". This will create some
ambiguity (eg there are some messages of the form "ublock:sb:{N}"),
but that should be a minor issue.
2016-06-01 15:11:06 -07:00
Andrew McCreight
263493a069 Bug 1275707, part 1 - Factor out a common method for message manager size telemetry. r=billm 2016-06-01 15:11:06 -07:00
Kyle Huey
c73656947b Bug 1265927: Move nsRunnable to mozilla::Runnable, CancelableRunnable to mozilla::CancelableRunnable. r=froydnj 2016-04-25 17:23:21 -07:00
Andrew McCreight
8ff7bf5725 Bug 1260908 - Fix type of kMinTelemetryMessageSize. r=smaug 2016-04-14 09:22:44 -07:00
Alexandre Poirot
ff90d0b471 Bug 1258496 - Purge message manager cached scripts on 'message-manager-flush-caches' notification. r=smaug 2016-04-13 11:04:11 -07:00
Andrew McCreight
8fc2a0583c Bug 1263235, part 2 - Make PContent::AsyncMessage and PContentBridge::AsyncMessage's data argument last. r=smaug 2016-04-09 06:50:59 -07:00
Bill McCloskey
b3613ec89e Bug 1260908 - Record IPC message sizes (r=dvander) 2016-04-01 11:22:27 -07:00
Wes Kocher
7db1b1b28a Backed out 2 changesets (bug 1260908) for build bustage
Backed out changeset 5582a25d289d (bug 1260908)
Backed out changeset 9612cef48d43 (bug 1260908)

MozReview-Commit-ID: BKeDiGZ8Z8B
2016-04-01 10:44:27 -07:00
Bill McCloskey
5672f5992c Bug 1260908 - Record IPC message sizes (r=dvander) 2016-04-01 09:59:19 -07: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
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
Boris Zbarsky
d0363ce0e6 Bug 1254846. Add an AutoEntryScript constructor that takes a JSObject instead of an nsIGlobalObject, for convenience. r=bholley 2016-03-09 15:28:26 -05:00
Peter Van der Beken
946ac27409 Bug 1251655 - Remove support for JavaScript-DOM-class and JavaScript-DOM-interface. r=bz.
--HG--
extra : rebase_source : 88c93e93905e20d2f6755d67d86902fdfc923eb4
2016-02-14 15:59:48 +01:00
Andrew McCreight
b80e656e9e Bug 1247679, part 3 - Replace NS_IMPL_CYCLE_COLLECTION_TRACE_JSVAL_MEMBER_CALLBACK with JS_MEMBER. r=smaug 2016-02-22 10:11:02 -08:00
Mantaroh Yoshinaga
0d77c71c32 Bug 1174624 - Add the Transferable parameter into SendAsyncMessage of nsFrameMessageManager. r=baku 2016-01-31 22:48:00 +01:00
Nathan Froyd
69d27155df Bug 1247362 - move mAnonymousGlobalScope tracing into nsMessageManagerScriptExecutor; r=mccr8 2016-02-09 17:08:53 -05:00
Nicholas Nethercote
b0da382c6c Bug 1187151 (part 15) - Replace nsBaseHashtable::Enumerate() calls in dom/ with iterators. r=baku.
--HG--
extra : rebase_source : ecaa04bef4088c23213fe470549336c1a7420f1c
2016-01-28 14:08:19 -08:00
Kyle Huey
91efc5a86c Bug 1241764: Replace nsPIDOMWindow with nsPIDOMWindowInner/Outer. r=mrbkap,smaug 2016-01-30 09:05:36 -08:00
Lars T Hansen
1b2551c10b Bug 1231337 - part 2, conditionally enable shared memory for dedicated workers. r=khuey
--HG--
extra : rebase_source : 9da6daa1211937d0fe1ca11eccce4ea90ca0e637
extra : histedit_source : 4d08c392a2766d46dcb41b14dea24d4c4f9be855
2016-01-06 16:31:38 +01:00
Jeff Walden
5be7be38a1 Bug 1235615 - Split JS::CompartmentOptions into JS::CompartmentCreationOptions that are immutable characteristics of a compartment, and JS::CompartmentBehaviors that may be changed after the compartment's been created. r=terrence
--HG--
extra : rebase_source : f08c380ae247d3308d4c36788ac765de1b75af50
2015-12-28 16:15:52 -06:00
Nicholas Nethercote
9e83f2e7cf Bug 1187782 (part 8) - Replace nsBaseHashtable::EnumerateRead() calls in dom/base/ with iterators. r=khuey.
--HG--
extra : rebase_source : a6ecc15d5115adc7864bf47abd8812918b8e8381
2015-11-04 21:35:12 -08:00
Nicholas Nethercote
93ecb44fb0 Bug 1187782 (part 7) - Replace nsBaseHashtable::EnumerateRead() calls in dom/base/ with iterators. r=khuey.
--HG--
extra : rebase_source : 18783668ce36d11faf96c4210f228e23f7e49ccc
2015-11-04 19:43:45 -08: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
David Rajchenbach-Teller
cbe8e23af4 Bug 1212244 - Same-process sendAsyncMessage can now throw instead of OOM. r=smaug
--HG--
extra : rebase_source : 50d89efacee7103452218782c92a53a7cf07dd9b
2015-10-07 12:42:43 +02:00
Andrea Marchesini
66b3673ccc Bug 1209461 - Remove compilation warnings in nsFrameMessageManager, r=smaug 2015-09-29 16:36:36 +01:00
Kan-Ru Chen
352ceeac46 Bug 1186843 - Don't recreate message manager. r=smaug 2015-09-21 17:51:08 +08:00
Kan-Ru Chen
21cb002f63 Bug 1186843 - Always cache delayed scripts in message manager 2015-09-21 17:51:08 +08:00
Andrea Marchesini
cd4473d62f Bug 1203426 - Rename StructuredCloneIPCHelper to StructuredCloneData, r=smaug
--HG--
rename : dom/ipc/StructuredCloneIPCHelper.cpp => dom/ipc/StructuredCloneData.cpp
rename : dom/ipc/StructuredCloneIPCHelper.h => dom/ipc/StructuredCloneData.h
2015-09-10 21:50:58 +01:00
Andrea Marchesini
896e177461 Bug 1201806 - part 1 - Remove OwningSerializedStructuredCloneBuffer and use StructuredCloneIPCHelper everywhere in IPC code, r=smaug 2015-09-09 08:10:32 +01:00