Commit Graph

54 Commits

Author SHA1 Message Date
Nathan Froyd
247591cb6c Bug 1447744 - don't implement nsINamed for mozilla::Runnable when it's unused; r=erahm
We only use nsINamed on runnables for certain kinds of telemetry, and
those kinds of telemetry aren't being gathered on RELEASE_OR_BETA
builds.  We effectively make nsINamed::GetName a no-op when we're not
collecting said telemetry.  But implementing nsINamed does have a cost:
the vtable of every runnable (and we have hundreds of subclasses of
mozilla::Runnable) will contain pointers for GetName (and extra pointers
for QueryInterface/AddRef/Release), and all those pointers times all
those subclasses adds up quickly.  Let's not implement nsINamed when
nsINamed isn't going to be used.

This change saves ~100K of binary size on x86-64 Linux; the savings
should be similar on other 64-bit systems, and ~50K on 32-bit systems.
2018-03-23 14:53:55 -04:00
Byron Campen [:bwc]
1764bdb849 Bug 1431755 - Part 1: Add a variant of NS_GetCurrentThread that does not auto-create an nsIThread. r=froydnj
MozReview-Commit-ID: 9naTxaANX4u
2018-01-19 09:41:22 -06:00
Dorel Luca
b9524a4a52 Backed out 3 changesets (bug 1431755) for Mochitest failure on test_profile_worker_bug_1428076.html on a CLOSED TREE
Backed out changeset c1befb56cf4d (bug 1431755)
Backed out changeset 8116e9cfc3f0 (bug 1431755)
Backed out changeset 1878f143ccda (bug 1431755)
2018-01-31 00:58:04 +02:00
Byron Campen [:bwc]
5b31c867f4 Bug 1431755 - Part 1: Add a variant of NS_GetCurrentThread that does not auto-create an nsIThread. r=froydnj
MozReview-Commit-ID: 9naTxaANX4u
2018-01-19 09:41:22 -06:00
Andrew McCreight
63ed70e5d6 Bug 1426779 - Disable precise runnable leakchecking names on release and beta. r=froydnj
The NS_IMPL_NAMED_* macros rely on the mName field, which are not
defined on beta or release, so don't use them on those branches, so
that Firefox will build.

MozReview-Commit-ID: 9wEnPqshBJ8
2018-01-04 12:59:02 -08:00
Andrew McCreight
c1fd2ee4cc Bug 1410209, part 3 - Use Runnable::mName for the class name with XPCOM leak checking. r=smaug
Most subclasses of Runnable don't bother to override AddRef and
Release, so XPCOM leak checking ends up reporting Runnable, which
makes it impossible to know what is actually leaking.

Each subclass of Runnable is already required to pass in the name of
the class, which is stored in the field mName. This patch changes
Runnable to use mName as the class name for XPCOM leak checking, thus
giving each subclass a specific name without needing to change the
hundreds of existing subclasses of Runnable.

The limitation of this approach is the classes that DO use
NS_IMPL_ADDREF/RELEASE_INHERITED end up using the same class name that
is used by the superclass AddRef/Release, but with a different size,
which causes assertions in the leak checker. To work around this, I
change NS_IMPL_ADDREF/RELEASE_INHERITED to not call into
NS_LOG_ADDREF/RELEASE for classes that are a subclass of
Runnable. This needs to use IsConvertible<> and not IsBaseOf<> because
the latter requires the classes involved to be defined, and headers
can use nsISupportsImpl.h without nsThreadUtils.h.

MozReview-Commit-ID: H0pgvwQSZAE
2017-10-25 13:51:17 -07:00
Gabriele Svelto
166d82c47c Bug 1402519 - Remove MOZ_CRASHREPORTER directives from xpcom; r=froydnj
MozReview-Commit-ID: HS3M0DJQ3qc
2017-10-10 11:59:39 +02:00
shindli
f90a73f3c0 Backed out 16 changesets (bug 1402519) for conflicts during merge r=backout on a CLOSED TREE
Backed out changeset 07fcf163241a (bug 1402519)
Backed out changeset c6d2ad45d8e2 (bug 1402519)
Backed out changeset 8a3caca61294 (bug 1402519)
Backed out changeset 01425eae2c48 (bug 1402519)
Backed out changeset cf298d3815de (bug 1402519)
Backed out changeset e1964f4389cd (bug 1402519)
Backed out changeset f405337f3569 (bug 1402519)
Backed out changeset a76356fd3359 (bug 1402519)
Backed out changeset d3bb350d1c34 (bug 1402519)
Backed out changeset 9d3bfd9f932c (bug 1402519)
Backed out changeset e3dd6e5b073f (bug 1402519)
Backed out changeset e801b0c00134 (bug 1402519)
Backed out changeset 8a4139fa5dca (bug 1402519)
Backed out changeset 8d01c14ac1ca (bug 1402519)
Backed out changeset 24e0dcd01898 (bug 1402519)
Backed out changeset f8fdf450613f (bug 1402519)
2017-11-23 00:11:44 +02:00
Gabriele Svelto
53bb53d5a2 Bug 1402519 - Remove MOZ_CRASHREPORTER directives from xpcom; r=froydnj
MozReview-Commit-ID: HS3M0DJQ3qc
2017-10-10 11:59:39 +02:00
Philippe Normand
241e37aac1 Bug 1410023 - Non-unified build fixes for xpcom/threads. r=froydnj
The recent Timer implementation changes from Bug 1404198 broke non-unified builds.
2017-10-20 17:36:29 +01:00
Kris Maglione
f0246b2f9c Bug 1404198: Part 2b - Switch to NS_NewTimer* in xpcom. r=njn
MozReview-Commit-ID: BEtHEpOmT1E
2017-10-15 23:11:22 -07:00
Wes Kocher
9e21e10ce3 Merge inbound to m-c a=merge
MozReview-Commit-ID: 6viJ4wRxLa8
2017-09-26 15:54:51 -07:00
Bevis Tseng
5a549f7a6b Bug 1399707 - Make entries in TabChild::sActiveTabs and EventLoopActivation::mEventGroups unique. r=billm 2017-09-13 11:59:35 +08:00
Philippe Normand
30a6142939 Bug 1402824 - Include nsComponentManagerUtils.h in nsThreadUtils.cpp to fix non-unified build. r=billm
do_CreateInstance was used without prior declaration.

MozReview-Commit-ID: 4LkXAcZytM7
2017-09-25 11:01:25 +01:00
Sebastian Hengst
8184ec7ae9 Backed out changeset c17cf6e4ee95 (bug 1402824) 2017-09-26 10:37:53 +02:00
Philippe Normand
067b294a21 Bug 1402824 - Include nsComponentManagerUtils.h in nsThreadUtils.cpp to fix non-unified build. r=billm
do_CreateInstance was used without prior declaration.

MozReview-Commit-ID: 4LkXAcZytM7
2017-09-25 11:01:25 +01:00
Bill McCloskey
91b9d4ac3b Bug 1350432 - Initial Quantum DOM scheduler implementation, disabled by default (r=froydnj)
MozReview-Commit-ID: JWBxz3bwgwD
2017-08-25 10:28:23 -07:00
Stone Shih
cef54f76bd Bug 1351148 Part3: Synthesize native input events with priority. f=kats,smaug. r=smaug.
The test helper_touch_action_regions.html uses nsDOMWindowUtils to synthesize native input events and creates some runnables to trigger the test. It expects the runnables which synthesize native input events are processed first, then the runnables to continue the test, and finally the input events are forwarded from chrome process to content process. Enabling event prioritization may change the execution order.
Wraps those runnables to synthesize native input events as priority=input and dispatches those runnables to continue the test with priority=input to make sure the execution order is as expected.

MozReview-Commit-ID: 8hkaB1FRW9T
2017-05-19 15:41:24 +08:00
Stone Shih
af7e3376a6 Backed out changeset 07b66fb75c71 (bug 1351148) 2017-08-11 15:19:37 +08:00
Stone Shih
84ebdbfab9 Bug 1351148 Part3: Synthesize native input events with priority. f=kats,smaug. r=smaug.
The test helper_touch_action_regions.html uses nsDOMWindowUtils to synthesize native input events and creates some runnables to trigger the test. It expects the runnables which synthesize native input events are processed first, then the runnables to continue the test, and finally the input events are forwarded from chrome process to content process. Enabling event prioritization may change the execution order.
Wraps those runnables to synthesize native input events as priority=input and dispatches those runnables to continue the test with priority=input to make sure the execution order is as expected.

MozReview-Commit-ID: 8hkaB1FRW9T
2017-05-19 15:41:24 +08:00
Carsten "Tomcat" Book
e8397cd735 Backed out changeset 1662b38e3107 (bug 1351148) 2017-07-28 09:20:23 +02:00
Bevis Tseng
ce50e5aaca Bug 1378930 - Part 1: Remove nsINamed::SetName(). r=billm
MozReview-Commit-ID: 7aM1yJRsfPH
2017-07-21 11:50:43 +08:00
Stone Shih
4f5ae8bbd7 Bug 1351148 Part3: Synthesize native input events with priority. f=kats,smaug. r=smaug.
The test helper_touch_action_regions.html uses nsDOMWindowUtils to synthesize native input events and creates some runnables to trigger the test. It expects the runnables which synthesize native input events are processed first, then the runnables to continue the test, and finally the input events are forwarded from chrome process to content process. Enabling event prioritization may change the execution order.
Wraps those runnables to synthesize native input events as priority=input and dispatches those runnables to continue the test with priority=input to make sure the execution order is as expected.

MozReview-Commit-ID: 8hkaB1FRW9T
2017-05-19 15:41:24 +08:00
Andreas Farre
9a3d6441e6 Bug 1372856 - Implement GetName for IdleRunnableWrapper. r=froydnj 2017-06-29 23:55:56 +02:00
Bill McCloskey
ce42826bdf Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-26 14:19:58 -07:00
Andreas Farre
3211aa3b33 Bug 1368072 - Move idle dispatch to thread manager. r=froydnj
Also exposes idle dispatch with timeout.
2017-06-22 11:14:10 +02:00
Phil Ringnalda
483d45dcb9 Backed out 3 changesets (bug 1368072) for colliding with a new use of the thing it was renaming
Backed out changeset 1d7e008d7d70 (bug 1368072)
Backed out changeset c4a1ddf9be0d (bug 1368072)
Backed out changeset ba1cdae5a8d6 (bug 1368072)
2017-06-21 23:28:37 -07:00
Nathan Froyd
592ac3680a Bug 1372670 - part 1 - remove non-MOZILLA_INTERNAL_API NS_IsMainThread(); r=erahm
Everybody who cares about this function calls it from within libxul.
2017-06-21 12:59:28 -04:00
Carsten "Tomcat" Book
238bf154d5 Backed out changeset 4f6302a98ae4 (bug 1372405) 2017-06-21 13:59:26 +02:00
Andreas Farre
33d74bc42c Bug 1368072 - Move idle dispatch to thread manager. r=froydnj
Also exposes idle dispatch with timeout.
2017-06-21 12:36:41 +02:00
Phil Ringnalda
27342433a0 Merge m-c to m-i
MozReview-Commit-ID: 5k3Ip7tGRsC
2017-06-20 21:49:33 -07:00
Bill McCloskey
67e8af4720 Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-20 21:44:11 -07:00
Phil Ringnalda
bc4a75b212 Backed out 3 changesets (bug 1368072) for timeouts in test_TelemetrySession.js and test_fullscreen-api.html and unhandled "TypeError: Services.tm.mainThread.idleDispatch is not a function" promise rejections
Backed out changeset 357635c84e49 (bug 1368072)
Backed out changeset 1797afe16a2a (bug 1368072)
Backed out changeset 4782401394a9 (bug 1368072)

MozReview-Commit-ID: 6kdcSkERjTD
2017-06-20 21:41:14 -07:00
Eric Rahm
ee77ff26e0 Bug 1374414 - Stop warning if target is null in idle dispatch. r=froydnj 2017-06-20 10:31:33 -07:00
Andreas Farre
6ff2e1ad99 Bug 1368072 - Move idle dispatch to thread manager. r=froydnj
Also exposes idle dispatch with timeout.
2017-06-19 06:36:00 +02:00
Carsten "Tomcat" Book
bbe9441993 Backed out changeset 9846de3bd954 (bug 1372405) 2017-06-20 08:27:02 +02:00
Bill McCloskey
f69608368b Bug 1372405 - Provide names for all runnables in the tree (r=froydnj)
MozReview-Commit-ID: DKR6ROiHRS7
2017-06-19 22:25:47 -07:00
Olli Pettay
34c5cca53e bug 1358898, ensure AsyncFreeSnowWhite is run often enough, r=mccr8,nfroyd 2017-06-16 20:00:04 +03:00
Bill McCloskey
b9ea10b472 Bug 1365102 - Convert NS_GetCurrentThread uses in xpcom/ (r=froydnj)
MozReview-Commit-ID: 69qVzf8QJMq
2017-06-12 20:21:43 -07:00
Bill McCloskey
dfef750c32 Bug 1361164 - Add Get{Current,Main}ThreadEventTarget getters to replace NS_Get{Current,Main}Thread (r=froydnj)
We want people to transition to using event targets rather than threads when possible. These
getters should make it easier to make that change.

MozReview-Commit-ID: 3bN4tRgJjBL
2017-06-12 20:20:08 -07:00
Bill McCloskey
04b1343a42 Bug 1361164 - Add infallible IsOnCurrentThread to nsIEventTarget (r=froydnj)
MozReview-Commit-ID: 12bk9hQ7Wnv
2017-06-12 20:20:08 -07:00
Olli Pettay
4a39d744a0 Bug 1358476, add support for timeout when doing idle dispatch, p=farre,smaug, r=nfroyd 2017-05-24 17:34:50 -04:00
Andreas Farre
41eb664f21 Bug 1366750 - Rename nsIIncrementalRunnable to nsIIdleRunnable. r=smaug
The name nsIIdleRunnable makes more sense, since its main use is in
nsIThread::idleDispatch.

MozReview-Commit-ID: H6qchxKnt7a
2017-05-23 13:24:25 +02:00
Bill McCloskey
1e3f60887c Bug 1361561 - Add GetCurrentVirtualThread function (r=froydnj)
This change adds some functions that should be used instead of PR_GetCurrentThread. They both return a PRThread. GetCurrentPhysicalThread does exactly the same thing as PR_GetCurrentThread, but it makes it clearer what you're getting when there are cooperatively scheduled threads running.

GetCurrentVirtualThread returns the same value for all threads in a cooperative thread pool. The actual value it returns is somewhat immaterial.

MozReview-Commit-ID: 4lFwsF2NuzC
2017-05-09 21:53:23 -07:00
Cervantes Yu
6bcb4f30a4 Bug 1024669 - Part 1: Annotate crash reports with thread names. r=gsvelto
NS_SetCurrentThreadName() is added as an alternative to PR_SetCurrentThreadName()
inside libxul. The thread names are collected in the form of crash annotation to
be processed on socorro.

MozReview-Commit-ID: 4RpAWzTuvPs
2017-02-07 18:57:23 +08:00
Sebastian Hengst
189424cb45 Backed out changeset 7fdcabdbb675 (bug 1024669) for failing mda, GTest and talos jobs. r=backout on a CLOSED TREE 2017-04-10 19:05:44 +02:00
Cervantes Yu
c2014c712d Bug 1024669 - Part 1: Annotate crash reports with thread names. r=gsvelto
MozReview-Commit-ID: 4RpAWzTuvPs
2017-02-07 18:57:23 +08:00
Carsten "Tomcat" Book
e6d6caf1f8 Backed out changeset 7a52d887bcea (bug 1024669) for bustage 2017-04-10 11:43:49 +02:00
Cervantes Yu
eb13868db5 Bug 1024669 - Part 1: Annotate crash reports with thread names. r=gsvelto
MozReview-Commit-ID: 4RpAWzTuvPs
2017-02-07 18:57:23 +08:00
Chris Peterson
ec64a5b9f4 Bug 1331171 - Part 3: Remove xpcom checks for Windows Vista. r=froydnj
Also remove the #includes of some unused header files.

MozReview-Commit-ID: 6mRoIazEA3j
2017-01-12 01:13:55 -08:00