Commit Graph

1681 Commits

Author SHA1 Message Date
Andreas Pehrson
f12e78691b Bug 1299515 - Make const nsMainThreadPtrHandle<T> usable. r=erahm
This enables having a const nsMainThreadPtrHandle<T> member which we want to
ensure doesn't get assigned to, but whose (the `T`'s) non-const methods are
still usable on main thread. Similar to how RefPtr<T> works.

MozReview-Commit-ID: 8CG0MwIZmLc

--HG--
extra : rebase_source : f0e897d3bf4f9a4d752e964ef63de73a9e710752
2017-11-22 11:24:18 +01:00
Andrea Marchesini
a8a933a51f Bug 1425559 - Implement nsIThreadManager::spinEventLoopUntilOrShutdown, r=smaug
Currently nsIThreadManager::spinEventLoopUntil doesn't monitor the shutting
down. Firefox shutting down can be blocked by a 'broken' use of
nsIThreadManager::spinEventLoopUntil.
nsIThreadManager::spinEventLoopUntilOrShutdown should be used instead.
2018-01-28 08:41:36 +01:00
Chris Peterson
944d82e014 Bug 1428535 - Revert some unnecessary -Wsuggest-override warning suppressions.
It was decided in bug 1430669 that we won't enable gcc's -Wsuggest-override warnings at this time, so these ugly pragmas from bug 1428535 won't be necessary.

--HG--
extra : rebase_source : 221b1f40bb071933ad3e320ce2fa491b2a5917fb
extra : amend_source : 7fc3e6ff067aa5ae8d728e1751de3d2590d31493
2018-01-17 11:39:34 -08:00
Chris Peterson
37efe4d0e6 Bug 1428535 - Add missing override specifiers to overridden virtual functions. r=froydnj
MozReview-Commit-ID: DCPTnyBooIe

--HG--
extra : rebase_source : cfec2d96faeb11656d86d760a34e0a04cacddb13
extra : intermediate-source : 6176724d63788b0fe8caa3f91607c2d93dbaa7ec
extra : source : eebbb0600447f9b64aae3bcd47b4be66c02a51ea
2017-11-05 19:37:28 -08:00
Mike Conley
921cb8735c Bug 1397426 - Rename TabChild's notion of "active tabs" to "visible tabs" and move logic into renderLayers. r=billm
MozReview-Commit-ID: 1bBNwew7uCk

--HG--
extra : rebase_source : 0e59b548c6c01d7feaf9f40c282ab2f55e47bab7
extra : source : 4643e46ff8d3e84d10ff178e15a1be7f734b020f
2017-11-03 11:27:29 -04:00
Andrew McCreight
b2ca279d4f 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

--HG--
extra : rebase_source : 1ee201c1f0049b02fb57679908915920226592a2
2018-01-04 12:59:02 -08:00
Andreas Farre
9450b8fef3 Bug 1425566 - Collect telemetry for unlabeled idle runnables. r=erahm 2018-01-03 14:19:03 +01:00
Andrew McCreight
4e452aadbf 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

--HG--
extra : rebase_source : 0be13fe2e649e62be1f9471fc03fac43024eb0aa
2017-10-25 13:51:17 -07:00
Andreas Farre
40c26995ea Bug 1410096 - Move labeled queues to SchedulerGroup. r=smaug
This improves the performance of GetEvent and PutEvent in
LabeledEventQueue by removing a hash table mapping groups to queues.
2017-12-15 21:17:31 +01:00
Andreas Farre
54b84f70d3 Bug 1417107 - Use histogram key suffix 'unlabeled' instead of 'labeled'. r=erahm
Make unlabeled runnables be the runnables we tag with extra
information, since they're the ones we want to decrease.

Note: This changes values gathered for telemetry!
2017-12-15 17:02:50 +01:00
Jean-Yves Avenard
a1172cfb0e Bug 1424647: Prevent race on AllPromiseHolder::mPromise. r=jwwang
If any of the promises gets resolved/rejected prior MozPromise::All completing, it would return nullptr

MozReview-Commit-ID: Lqhv2t2upvF

--HG--
extra : rebase_source : 0c85172958c00a2ac3aa0bd33e4e50dd1893c3ba
2017-12-10 23:31:04 +01:00
Eric Rahm
07c97a5afe Bug 1423773 - Part 1: Remove usage of nsStringGlue.h. r=glandium
This removes an unnecessary level of indirection by replacing all
nsStringGlue.h instances with just nsString.h.

--HG--
extra : rebase_source : 340989240af4018f3ebfd92826ae11b0cb46d019
2017-12-06 16:52:51 -08:00
Mike Conley
053fbea1fc Backed out changeset 4643e46ff8d3 (bug 1397426)
--HG--
extra : rebase_source : 3e235d725c42300f3c8f3af51850e3c4e1aa7ddf
2017-12-06 16:03:32 -05:00
Mike Conley
cacae0556b Bug 1397426 - Rename TabChild's notion of "active tabs" to "visible tabs" and move logic into renderLayers. r=billm
MozReview-Commit-ID: 1bBNwew7uCk

--HG--
extra : rebase_source : fb907f0e9f02635b122dbf67da7a7c1292427cec
2017-11-03 11:27:29 -04:00
Gabriele Svelto
3e3a359edc Bug 1402519 - Remove MOZ_CRASHREPORTER directives from xpcom; r=froydnj
MozReview-Commit-ID: HS3M0DJQ3qc

--HG--
extra : rebase_source : c535b0760480deea1c9889c629c52857bf52ea64
2017-10-10 11:59:39 +02:00
shindli
fb855aa7ba 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
13364cc36b Bug 1402519 - Remove MOZ_CRASHREPORTER directives from xpcom; r=froydnj
MozReview-Commit-ID: HS3M0DJQ3qc

--HG--
extra : rebase_source : bb09e9e3b01d39e91a1377117fa127a09c29cccd
2017-10-10 11:59:39 +02:00
Andrea Marchesini
eedd5e2174 Bug 1416724 - part 1 - AbstractThread::Dispatch should propage errors if failing the dispatching of Runnables, r=jwwang 2017-11-15 07:58:02 +01:00
shindli
385fb3428c Backed out 4 changesets (bug 1416724) for failing /builds/worker/workspace/build/src/dom/media/hls/HLSDemuxer.cpp:89:5 r=backout on a CLOSED TREE
Backed out changeset 45352aa4319d (bug 1416724)
Backed out changeset 01d1e5263bcd (bug 1416724)
Backed out changeset bc854c315ec8 (bug 1416724)
Backed out changeset 35a50167485d (bug 1416724)
2017-11-15 09:49:04 +02:00
Andrea Marchesini
e521e16895 Bug 1416724 - part 1 - AbstractThread::Dispatch should propage errors if failing the dispatching of Runnables, r=jwwang 2017-11-15 07:58:02 +01:00
Jed Davis
c7f8a32bf4 Bug 1401786 - Move base::LaunchApp options into a LaunchOptions struct, like upstream Chromium. r=billm
MozReview-Commit-ID: 74IXV4oGeWR

--HG--
extra : rebase_source : ef4021a60506a8fc5fa5a35e3f3fefb9dbad75d6
2017-09-08 20:35:06 -06:00
Bill McCloskey
9ff9bd7c1e Bug 1412192 - Use main-thread JSContext in SystemZoneResource::IsAvailable (r=froydnj)
MozReview-Commit-ID: BC9OoHVaMEI
2017-11-11 21:04:20 -08:00
Bill McCloskey
0ab7bc4583 Bug 1412191 - Fix CooperativeThreadPool thread count assertion (r=froydnj)
MozReview-Commit-ID: 4oUM0rh4ySs
2017-11-11 21:04:20 -08:00
Bill McCloskey
79162c692a Bug 1395029 - Scheduler support for blockThreadedExecution (r=froydnj)
MozReview-Commit-ID: EXRMRh9SCsQ
2017-11-11 21:04:20 -08:00
Bill McCloskey
38f2553236 Bug 1412189 - Avoid main-thread access in PrioritizedEventQueue::SelectQueue (r=stone)
MozReview-Commit-ID: GY43FXgqr2h
2017-11-11 21:04:20 -08:00
Chris Peterson
feb58d9d37 Bug 1416164 - Replace NS_NOTYETIMPLEMENTED with MOZ_ASSERT_UNREACHABLE. r=froydnj
MozReview-Commit-ID: B5TZB3v52wY

--HG--
extra : rebase_source : 56bef4eead24901191f190e31d2841710097cdcf
2017-10-25 00:37:02 -07:00
Andrea Marchesini
3f760d8258 Bug 1415564 - TaskQueue::Dispatch should return an error if failed, r=smaug 2017-11-09 01:43:40 +01:00
Nicholas Nethercote
79aa95fa24 Bug 1414150 - Remove the "idle_queue.*" prefs. r=farre.
There's no good reason why these can't be code constants.

Especially given that, due to a bug, changes to the
"idle_queue.{min,long}_period" constants were not being passed onto the C++
code!

Here's why: those two prefs were specified as integers in all.js. But we used
AddFloatVarCache() to set up the reading of those prefs. libpref fakes floats
by storing them as strings and then converting them to floats when they are
read.

Which means that AddFloatVarCache() used to fail to get the value from all.js
-- because there's a type mismatch, int vs. string -- and instead use the
fallback default. That value is the same as the one in all.js, which is lucky.
But if someone changed the value in about:config to 100 (an integer), a similar
failure would have occured and the value used by the C++ code wouldn't be
updated!

Also note that idle_queue.max_timer_thread_bound did not have a value in
all.js.

What a mess!

--HG--
extra : rebase_source : 86f8fa905163803eb95007609c029e18c2c4f586
2017-11-08 07:54:16 +11:00
Phil Ringnalda
e0e1cf4354 Backed out 4 changesets (bug 1406327) for crashing other tests, crashing itself, and assertion failures
Backed out changeset 471c710b19b1 (bug 1406327)
Backed out changeset 5890bb3a0d97 (bug 1406327)
Backed out changeset 63c8ee57e38c (bug 1406327)
Backed out changeset 345972733daa (bug 1406327)

MozReview-Commit-ID: IwWx11QSuS4
2017-11-01 21:44:12 -07:00
Daosheng Mu
f10ab3c49f Bug 1406327 - Part 4: RefreshVRDisplays needs to be at VRListenerThread; r=kip
MozReview-Commit-ID: KuhPFqMhTDB

--HG--
extra : rebase_source : 53dac47c5ede72acbe2760f056ca88f8cbc0c6b9
2017-11-01 22:15:06 +08:00
Adam Gashlin
3da1701e2d Bug 1401400 - Part 3. Process all threads when crashing for hang. r=gsvelto
MozReview-Commit-ID: JH4PGYJreF7
2017-10-19 14:49:13 -07:00
Phil Ringnalda
ac48293bbe Backed out 5 changesets (bug 1401400) for eslint failure
Backed out changeset 788f5831a14d (bug 1401400)
Backed out changeset 3ccd39a02c21 (bug 1401400)
Backed out changeset e5860d5128fb (bug 1401400)
Backed out changeset fa28abe68df1 (bug 1401400)
Backed out changeset 0290bb0af376 (bug 1401400)

MozReview-Commit-ID: 8e9kQEaE7Bs
2017-10-26 19:29:38 -07:00
Adam Gashlin
be677dbba0 Bug 1401400 - Part 3: Process all threads when crashing for hang. r=gsvelto 2017-10-19 14:49:13 -07:00
Andrew McCreight
989d6728ca Bug 1412119 - Re-fix mode lines in xpcom. r=erahm 2017-10-26 14:39:00 -04:00
Kris Maglione
b46bd8b6b0 Bug 1411817: Add do_AddRef overloads for nsCOMPtr<T> and nsRevocableEventPtr<T>. r=froydnj
MozReview-Commit-ID: gEU7whtNHc

--HG--
extra : rebase_source : 6763e6b31be8a3341f968eef057b756fbfe3cbbe
extra : amend_source : da6140fb0559d78b46e80e72e8b6768bf2364fb1
2017-10-25 19:46:50 -07:00
Nathan Froyd
a7b1f6e01e Bug 1410575 - avoid hash table re-lookups in LabeledEventQueue::GetEvent; r=erahm
We can save the entry in the hashtable, and then re-use that entry as a
starting point for removing from the hashtable, should that become
necessary.  This saves us having to rehash things, at a minimum.
2017-10-26 13:45:29 -04:00
Sebastian Hengst
31bf3a1a42 merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: 4Lk5P5UYmTe
2017-10-24 11:52:35 +02:00
Nathan Froyd
322e865fb8 Bug 1402044 - don't inline InputEventStatistics::Get(); r=erahm
Defining Get() in the declaration of InputEventStatistics implicitly
sticks an "inline" on the function, which is not what we want: inlining
it spreads around a lot of static initialization code.  Providing an
out-of-line definition is much better in terms of code size.
2017-10-23 12:15:16 -04:00
Nathan Froyd
8a54fa305a Bug 1410232 - fix SchedulerGroupSet::Put when transitioning to multiple groups; r=billm
We were moving state from single -> multi, but we weren't doing anything
with the group that was passed in for such cases.
2017-10-23 08:49:41 -04:00
Sebastian Hengst
af53b8aad8 merge mozilla-central to autoland. r=merge a=merge 2017-10-23 23:52:54 +02:00
Philippe Normand
bf7e42184a Bug 1410023 - Non-unified build fixes for xpcom/threads. r=froydnj
The recent Timer implementation changes from Bug 1404198 broke non-unified builds.

--HG--
extra : rebase_source : c87acca6565dd282f79dec481f0abf5aea9066a1
2017-10-20 17:36:29 +01:00
Nathan Froyd
7c3d6e9065 Bug 1410088 - don't copy QueueEntry(ies) when calling LabeledEventQueue::GetEvent; r=erahm
We were extracting elements from the queue and unnecessarily refcounting
them, rather than transferring the owning reference out of the queue and
out to the caller.
2017-10-19 16:22:55 -04:00
Nathan Froyd
aeec9a0da6 Bug 1410086 - don't copy QueueEntry(ies) when checking LabeledEventQueue for ready events; r=erahm
There's no need to copy events in the queue to check whether they are
ready to run or not.
2017-10-19 16:22:55 -04:00
Nicholas Nethercote
78030c0e7b Bug 1409598 - Change nsIXPCScriptable::className and nsIClassInfo::{contractID,classDescription} from string to AUTF8String. r=froydnj.
This lets us replace moz_xstrdup() of string literals with AssignLiteral(),
among other improvements.

--HG--
extra : rebase_source : 9994d8ccb4f196cf63564b0dac2ae6c4370defb4
2017-10-18 13:17:26 +11:00
Sebastian Hengst
32f7c8fec3 merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: 1h3kZyrtqSt
2017-10-17 11:45:16 +02:00
Kris Maglione
f6ba082a01 Bug 1404198: Part 2b - Switch to NS_NewTimer* in xpcom. r=njn
MozReview-Commit-ID: BEtHEpOmT1E

--HG--
extra : rebase_source : dac8a182f1ad76df6715146e1da1279c02c0406f
2017-10-15 23:11:22 -07:00
Kris Maglione
3c7ea8250b Bug 1404198: Part 2a - Add non-virtual constructors for nsITimer. r=njn
MozReview-Commit-ID: 3I7MAquvMHj

--HG--
extra : rebase_source : 9fb92a49fb9b89aec738aca5f77ef3a612802df6
2017-10-15 23:10:17 -07:00
Daosheng Mu
e41dc03f86 Bug 1392216 - Part 1: Create VR listener thread in GPU process; r=dvander,kip
MozReview-Commit-ID: Img0HT9ax90

--HG--
extra : rebase_source : ef3e2dac31f498454121639aa46657c0cd16f949
2017-10-05 18:12:45 +08:00
Jed Davis
b39b9e95d4 Bug 1406971 - Change nsProcess to use LaunchApp from IPC, instead of NSPR, on Unix. r=froydnj
This also fixes the Unix part of bug 678369, and fixes bug 147659 as a
convenient side-effect of using LaunchApp (which has the desired
fd-closing behavior already) rather than directly using fork/exec.

The main goal is to work around bug 227246, where PR_CreateProcess on
Unix interferes with anything else that tries to use child processes.
This does not fix that bug -- NSPR will still cause problems if used in
that way -- but it's an adequate workaround for that bug in Gecko in
almost all cases (the one known exception is nsAuthSambaNTLM, which uses
NSPR directly and needs to be fixed separately).

Waiting for the child process uses waitpid() directly, sharing the
existing code used for OS X.

MozReview-Commit-ID: 6zfZ1Zgk2i9

--HG--
extra : rebase_source : e8230503d82943af4563d8d63baa029d8a698683
2017-10-06 19:58:33 -06:00
Sebastian Hengst
8ff69604ce merge mozilla-inbound to mozilla-central. r=merge a=merge 2017-10-12 12:40:23 +03:00
Chris Pearce
5ef6d52547 Bug 1407248 - Include StaticPtr.h in SystemGroup.cpp. r=billm
We were using a StaticRefPtr without it being fully defined for
SystemGroupImpl::sSingleton, resulting in a non-unified build failure.

MozReview-Commit-ID: AgSuVvGTri7

--HG--
extra : rebase_source : 906e30e8c2c21e13a045a941e9d92e1d2d2af079
2017-10-10 16:34:27 +02:00
Bill McCloskey
7ccc0ef499 Bug 1404629 - Make Queue emptiness assertion DEBUG-only (r=froydnj)
MozReview-Commit-ID: HIAJKbdiBCf
2017-10-11 14:05:32 -07:00
James Cheng
8cd834cd62 Bug 1365894 - Make SystemGroupImpl be a normal ref-counted object. r=ehsan
MozReview-Commit-ID: LUcoBhNx2M5

--HG--
extra : rebase_source : 10010b8cc206c16980c9e1601445f262104f1dd2
2017-10-09 13:40:12 -04:00
Nicholas Nethercote
8a68e6fb83 Bug 1403868 (part 4) - Reduce tools/profiler/public/*.h to almost nothing in non-MOZ_GECKO_PROFILER builds. r=mstange.
Currently the Gecko Profiler defines a moderate amount of stuff when
MOZ_GECKO_PROFILER is undefined. It also #includes various headers, including
JS ones. This is making it difficult to separate Gecko's media stack for
inclusion in Servo.

This patch greatly simplifies how things are exposed. The starting point is:

- GeckoProfiler.h can be #included unconditionally;

- everything else from the profiler must be guarded by MOZ_GECKO_PROFILER.

In practice this introduces way too many #ifdefs, so the patch loosens it by
adding no-op macros for a number of the most common operations.

The net result is that #ifdefs and macros are used a bit more, but almost
nothing is exposed in non-MOZ_GECKO_PROFILER builds (including
ProfilerMarkerPayload.h and GeckoProfiler.h), and understanding what is exposed
is much simpler than before.

Note also that in BHR, ThreadStackHelper is now entirely absent in
non-MOZ_GECKO_PROFILER builds.
2017-10-04 09:11:18 +11:00
Luke Wagner
c577a512d7 Bug 1347644 - Make NS_ProxyRelease runnables cancelable (r=bkelly)
MozReview-Commit-ID: 238uix57pl6
2017-10-06 10:55:24 -05:00
Cervantes Yu
0469f7535b Bug 1400294 - Add 'noShell' attribute to nsIProcess to use CreateProcess() for launching a process that doesn't require shell service on Windows. r=froydnj,r=aklotz,r=dmajor
This adds an attribute 'noShell' to nsIProcess that is used to launch a process
using CreateProcess() if we are sure we are launching an executable and don't
require the extra work of the Windows shell service.

MozReview-Commit-ID: 7p0iHCZK1uX
2017-10-03 11:29:14 +08:00
Wes Kocher
0196bb1eed Merge m-c to inbound, a=merge
MozReview-Commit-ID: 9KMX1mdjylD
2017-09-29 14:48:25 -07:00
Wes Kocher
eb9a2ed0f2 Merge inbound to central, a=merge
MozReview-Commit-ID: IqwKWn7ceHC
2017-09-29 14:47:25 -07:00
Cosm
b4871889d9 Bug 1385335 - Use RecursiveMutex in AsyncPanZoomController.r=botond
MozReview-Commit-ID: ETzQVCu1o7z

--HG--
extra : rebase_source : c7126c098f63e8ce12506dfaee0d995091512b06
2017-09-27 08:41:51 +05:30
David Major
d381d825e6 Bug 1376638 followup: update comment to reflect code changes. DONTBUILD 2017-09-29 12:25:10 -04:00
Philippe Normand
cf92431595 Bug 1404305 - Include nsCOMArray.h and SystemGroup in nsThreadPool.cpp to fix the build in non-unified mode. r=froydnj
MozReview-Commit-ID: 1bZHw4TS9L1

--HG--
extra : rebase_source : 8ee48871ab0ae82c70ce7eb3bd64e0497891fc97
2017-09-28 14:32:26 +01:00
Wes Kocher
22a72df7fe Merge inbound to m-c a=merge
MozReview-Commit-ID: 6viJ4wRxLa8
2017-09-26 15:54:51 -07:00
Bevis Tseng
da72a5478c Bug 1399707 - Make entries in TabChild::sActiveTabs and EventLoopActivation::mEventGroups unique. r=billm
--HG--
extra : rebase_source : ffccc53b6b1055d7cfeb281ee145b897807a7810
2017-09-13 11:59:35 +08:00
Sebastian Hengst
7eec7a0a11 merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: mr7OYuaLKE
2017-09-21 15:23:43 +02:00
Nathan Froyd
3393422869 Bug 1401662 - don't inline nsThreadManager::get(); r=erahm
Defining get() in the declaration of nsThreadManager implicitly sticks
an "inline" on the function, which is not what we want: inlining it
spreads around a lot of static initialization code.  Providing an
out-of-line definition is much better in terms of code size.
2017-09-20 17:10:20 -04:00
Byron Campen [:bwc]
6b3da0609f Bug 1383019: Move more logic under the protection of nsTimerImpl::mMutex, and simplify. r=froydnj, a=abillings
MozReview-Commit-ID: JjYScKwyika

--HG--
extra : rebase_source : a5a8a17f86459ace51d9250454bd4cf1433130b0
2017-09-14 12:19:24 -05:00
Philippe Normand
fb80b50e2e Bug 1399825 - Include nsXULAppAPI.h in nsThreadManager.cpp. r=Ms2ger
This ensures XRE_IsContentProcess() is defined, as it's used in this file.

MozReview-Commit-ID: GwBYcFBiUBK
2017-09-14 12:51:41 +01:00
James Cheng
0c675a3236 Bug 1393710 - Add thread name into NS_DebugBreak for better debugging. r=froydnj
MozReview-Commit-ID: AvqajMgtpuh

--HG--
extra : rebase_source : 13e99f103abc9e39ec4cff15f720cd09a9e6b2c5
2017-08-30 11:13:50 +08:00
Wes Kocher
1ea82f66aa Merge m-c to autoland, a=merge
MozReview-Commit-ID: AHxJvcR2Tpa
2017-09-20 17:47:16 -07:00
Blake Kaplan
04b86e2150 Bug 1398393 - Set Servo thread state on cooperative threads. r=billm
By doing this we avoid triggering assertions in the Servo code that ensure
we have registered the thread with Servo and set the proper state on it.

MozReview-Commit-ID: K6qHrYoQDLm

--HG--
extra : rebase_source : d01b0aad42273f6b92b7cfd5f5fe17ffe7b4cda0
2017-09-08 16:50:34 -07:00
Blake Kaplan
c1ce54a82a Bug 1401412 - Destroy this singleton during XPCOM shutdown. r=smaug
Unfortunately, this needed some additional trickery in order to keep its
constructor "private". I stole this trick from [1]. With this patch, we tear
down the statistics object during XPCOM shutdown intead of after it. I don't
believe that we need the object to live past the ClearOnShutdown destructors.

[1] http://rienajouter.blogspot.com/2014/10/makeshared-and-makeunique-for-classes.html

MozReview-Commit-ID: JsiN6Bq9Yp4

--HG--
extra : rebase_source : dd26c8e6906a6c9fd500c28379f8c63fd7c3ad6a
2017-09-19 17:38:05 -07:00
Bill McCloskey
0f4e7d4fe6 Bug 1398423 - Fix LabeledEventQueue bug with unlabeled events (r=froydnj)
MozReview-Commit-ID: 7ru62QTkya2
2017-09-11 19:11:03 -07:00
Bill McCloskey
b9683a5b18 Bug 1398423 - Make linked list of SchedulerGroups static (r=froydnj)
MozReview-Commit-ID: GgfdRlhPiHP
2017-09-11 19:11:01 -07:00
Bill McCloskey
9c4cbe52d1 Bug 1398417 - Fix PrioritizedEventQueue bugs with input event prioritization (r=stone)
MozReview-Commit-ID: 4wk8EUv0h7C
2017-09-11 19:10:57 -07:00
James Cheng
fb6af85bd2 Bug 1397344 - Use Decay to ensure StoreCopyPassByXXX stores the value by copy not by reference. r=gerald
MozReview-Commit-ID: Ec9yjYdQ1jC

--HG--
extra : rebase_source : 6b2f63bf7af9a3c8a879ac6f3865abf6be9a4155
2017-09-07 17:02:13 +08:00
Bill McCloskey
9cbaae8cfc Bug 1396155 - Allow LabeledEventQueue to be used outside the Scheduler (r=froydnj)
MozReview-Commit-ID: 4yEX39HXh9W
2017-09-07 22:31:34 -07:00
Bill McCloskey
4219e067da Bug 1396155 - Support active tab prioritization and round-robin scheduling in LabeledEventQueue (r=froydnj)
MozReview-Commit-ID: Ax5rWAKN50h
2017-09-07 22:31:34 -07:00
Philippe Normand
af237419fa 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

--HG--
extra : rebase_source : a983330be02ed058a109ba3bbfd6ecdd3f2ddf56
2017-09-25 11:01:25 +01:00
Philippe Normand
41218b0c60 Bug 1402824 - Include LabeledEventQueue.h in ThreadEventQueue.cpp to fix non-unified build. r=billm
LabeledEventQueue was used without prior declaration.

MozReview-Commit-ID: 3aqGDb0cZFY

--HG--
extra : rebase_source : 08e207b2024e5ba1be1eb0c55ddbe7b0fc405637
2017-09-25 10:59:47 +01:00
Philippe Normand
98e504e3be Bug 1402824 - Include AbstractThread in SystemGroup.cpp to fix non-unified build. r=billm
AbstractThread was used without prior declaration.

MozReview-Commit-ID: BmP83mmjX3b

--HG--
extra : rebase_source : 4f079246b7dd6c378eba97897f74a3c9623540df
2017-09-25 10:59:02 +01:00
Philippe Normand
4e80469013 Bug 1402824 - Include nsIThreadInteral.h in SynchronizedEventQueue to fix non-unified. r=billm
nsIThreadObserver (defined in nsIThreadInternal.h) was used without prior
declaration.

MozReview-Commit-ID: 9cSuERgUPtl

--HG--
extra : rebase_source : 15219cba6f5a41c42aa1103d8c958a55ac3b9af0
2017-09-25 10:56:13 +01:00
Philippe Normand
8bb48e0de1 Bug 1402824 - Add missing includes in Scheduler.h to fix non-unified build. r=billm
nsTArray and EventLoopActivation were used without prior declaration.

MozReview-Commit-ID: C05YG6Nzh52

--HG--
extra : rebase_source : 3f78b6a1d73f4d59d3aac4b2da79c27cae404897
2017-09-25 10:55:10 +01:00
Philippe Normand
5b8e8cc97d Bug 1402824 - Include Linkedlist.h in LabeledEventQueue to fix non-unified build. r=billm
The LinkedList.h header is requires for the sSchedulerGroups variable
declaration.

MozReview-Commit-ID: 6T0WPKQER9S

--HG--
extra : rebase_source : 545e60bdec4e186a03cb20e342e561e104abcd98
2017-09-25 10:51:41 +01:00
Philippe Normand
7f9b32afd8 Bug 1402824 - Add missing includes in PrioritizedEventQueue to fix non-unified build. r=billm
InputEventStatistics::Get() requires the InputEventStatistics.h #include.
MakeScopeExit() requires the ScopeExit.h #include.
LabeledEventQueue.h is required for the PrioritizedEventQueue class.

MozReview-Commit-ID: 7gRwhV3YQXw

--HG--
extra : rebase_source : 54b56317b2876db2ed679e9f47ffb87fdf83cdd2
2017-09-25 10:50:04 +01:00
Philippe Normand
5008d0d827 Bug 1402824 - Include nsTArray.h in InputEventStatistics.h to fix non-unified build. r=smaug
The nsTArray type was used without prior declaration.

MozReview-Commit-ID: KMUgXO2kBIY

--HG--
extra : rebase_source : 671ffe885ae7220bff746d433f55196519d05b8c
2017-09-25 10:45:25 +01:00
Philippe Normand
342808b8f7 Bug 1402824 - Include nsIRunnable in EventQueue.cpp to fix non-unified build. r=billm
nsIRunnable was used without prior declaration.

MozReview-Commit-ID: CVEkaw6xBsC

--HG--
extra : rebase_source : 06c71dfada5e26725d7771284a9f400bf7b5fdd8
2017-09-25 10:43:30 +01:00
Philippe Normand
1c42fb2d93 Bug 1402824 - Add missing includes in CooperativeThreadPool to fix non-unified build. r=billm
nsCOMPtr and nsThreadPoolNaming types were used without prior
declaration.

MozReview-Commit-ID: Gt7gksujs13

--HG--
extra : rebase_source : 57bbdb4f0d7ae0789dfc095fd4b6c99ad780f1ad
2017-09-25 10:37:31 +01:00
Sebastian Hengst
937c786bbf Backed out changeset db56e6da54d3 (bug 1402824) 2017-09-26 10:38:43 +02:00
Sebastian Hengst
6571c9215d Backed out changeset 75e36b75f564 (bug 1402824) 2017-09-26 10:38:37 +02:00
Sebastian Hengst
600c5355d9 Backed out changeset 0ffa25137672 (bug 1402824) 2017-09-26 10:38:31 +02:00
Sebastian Hengst
8232763b0e Backed out changeset ef139c527822 (bug 1402824) 2017-09-26 10:38:26 +02:00
Sebastian Hengst
c6bf3aad6d Backed out changeset 52d49783fdd0 (bug 1402824) 2017-09-26 10:38:20 +02:00
Sebastian Hengst
878a269886 Backed out changeset a414320a4559 (bug 1402824) 2017-09-26 10:38:15 +02:00
Sebastian Hengst
a0c6f2e117 Backed out changeset 1ac08c6d8373 (bug 1402824) 2017-09-26 10:38:09 +02:00
Sebastian Hengst
a4a4be50bb Backed out changeset e0dd9d0e8bc1 (bug 1402824) 2017-09-26 10:38:04 +02:00
Sebastian Hengst
8b5da0b224 Backed out changeset a3c51e77dccb (bug 1402824) 2017-09-26 10:37:58 +02:00
Sebastian Hengst
26d8084399 Backed out changeset c17cf6e4ee95 (bug 1402824) 2017-09-26 10:37:53 +02:00
Philippe Normand
d6bf4142ea 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

--HG--
extra : rebase_source : ff47c25472aec22889b8f42822ac49091c3706cf
2017-09-25 11:01:25 +01:00
Philippe Normand
7c969f97d2 Bug 1402824 - Include LabeledEventQueue.h in ThreadEventQueue.cpp to fix non-unified build. r=billm
LabeledEventQueue was used without prior declaration.

MozReview-Commit-ID: 3aqGDb0cZFY

--HG--
extra : rebase_source : e247b49b646f714e38dedb6a93d1b499e01b0c5a
2017-09-25 10:59:47 +01:00
Philippe Normand
53ea2b86ed Bug 1402824 - Include AbstractThread in SystemGroup.cpp to fix non-unified build. r=billm
AbstractThread was used without prior declaration.

MozReview-Commit-ID: BmP83mmjX3b

--HG--
extra : rebase_source : 3687625921e1d5e589f8e59901f75bf72a8d4c91
2017-09-25 10:59:02 +01:00
Philippe Normand
7d356a9f14 Bug 1402824 - Include nsIThreadInteral.h in SynchronizedEventQueue to fix non-unified. r=billm
nsIThreadObserver (defined in nsIThreadInternal.h) was used without prior
declaration.

MozReview-Commit-ID: 9cSuERgUPtl

--HG--
extra : rebase_source : b7a3a47114680dbb69c9d0f17fa75ebbc8f444dc
2017-09-25 10:56:13 +01:00
Philippe Normand
dc24f18589 Bug 1402824 - Add missing includes in Scheduler.h to fix non-unified build. r=billm
nsTArray and EventLoopActivation were used without prior declaration.

MozReview-Commit-ID: C05YG6Nzh52

--HG--
extra : rebase_source : e939b277fbeb11d82af21c077faecd82af0697c6
2017-09-25 10:55:10 +01:00
Philippe Normand
13921736ff Bug 1402824 - Include Linkedlist.h in LabeledEventQueue to fix non-unified build. r=billm
The LinkedList.h header is requires for the sSchedulerGroups variable
declaration.

MozReview-Commit-ID: 6T0WPKQER9S

--HG--
extra : rebase_source : 23f442b30d8a9160c08b52b38800e891748b4367
2017-09-25 10:51:41 +01:00
Philippe Normand
c1b72ba6c8 Bug 1402824 - Add missing includes in PrioritizedEventQueue to fix non-unified build. r=billm
InputEventStatistics::Get() requires the InputEventStatistics.h #include.
MakeScopeExit() requires the ScopeExit.h #include.
LabeledEventQueue.h is required for the PrioritizedEventQueue class.

MozReview-Commit-ID: 7gRwhV3YQXw

--HG--
extra : rebase_source : a94bbd653143ead43a317ba6470beb6d99ab584d
2017-09-25 10:50:04 +01:00
Philippe Normand
406ccc819b Bug 1402824 - Include nsTArray.h in InputEventStatistics.h to fix non-unified build. r=smaug
The nsTArray type was used without prior declaration.

MozReview-Commit-ID: KMUgXO2kBIY

--HG--
extra : rebase_source : 3bdca144a43ef7353ef9a62f94dfdc6dc2adfcc0
2017-09-25 10:45:25 +01:00
Philippe Normand
23addbba2a Bug 1402824 - Include nsIRunnable in EventQueue.cpp to fix non-unified build. r=billm
nsIRunnable was used without prior declaration.

MozReview-Commit-ID: CVEkaw6xBsC

--HG--
extra : rebase_source : 95b377eda3befeed66f37e6833a680ae4333303c
2017-09-25 10:43:30 +01:00
Philippe Normand
bf61a1b347 Bug 1402824 - Add missing includes in CooperativeThreadPool to fix non-unified build. r=billm
nsCOMPtr and nsThreadPoolNaming types were used without prior
declaration.

MozReview-Commit-ID: Gt7gksujs13

--HG--
extra : rebase_source : 18c5572548dc181ffe921154d9da00113a5e0090
2017-09-25 10:37:31 +01:00
Doug Thayer
2e2f55c74a Bug 1382440 - Fix CPUUsageWatcher on OSX and Linux r=froydnj
Properly enclose all relevant details of CPUUsageWatcher in ifdefs
which control whether it should be active or not. Additionally,
apparently clock_gettime is not defined on OSX prior to 10.12, so
this is failing to compile for OSX on the build server, but not
locally. However, clock_get_time and getrusage should cover our
use cases sufficiently.

MozReview-Commit-ID: Ffi6yXLb9gO

--HG--
extra : rebase_source : 84f9cf3b2074883dc6fe6d5a50ff27ffdb008a4f
2017-08-28 14:00:22 -07:00
Doug Thayer
8aae071723 Bug 1382440 - Watch CPU usage in BHR r=froydnj
We would like to be able to see if a given hang in BHR occurred
under high CPU load, as this is an indication that the hang is
of less use to us, since it's likely that the external CPU use
is more responsible for it.

The way this works is fairly simple. We get the system CPU usage
on a scale from 0 to 1, and we get the current process's CPU
usage, also on a scale from 0 to 1, and we subtract the latter
from the former. We then compare this value to a threshold, which
is 1 - (1 / p), where p is the number of (virtual) cores on the
machine. This threshold might need to be tuned, so that we
require an entire physical core in order to not annotate the hang,
but for now it seemed the most reasonable line in the sand.

I should note that this considers CPU usage in child or parent
processes as external. While we are responsible for that CPU usage,
it still indicates that the stack we receive from BHR is of little
value to us, since the source of the actual hang is external to
that stack.

MozReview-Commit-ID: JkG53zq1MdY

--HG--
extra : rebase_source : 16553a9b5eac0a73cd1619c6ee01fa177ca60e58
2017-07-24 13:46:09 -07:00
Andrew McCreight
f3d6766f0e Bug 1394176 - Use default values for scheduler prefs if the parent process didn't send any. r=billm
In some unknown circumstance, possibly if the parent process has a
different version than the child process, the child does not receive
scheduler prefs, which makes it read out of an uninitialized local
variable. This can probably happen because the scheduler prefs are
checked before we do the ContentChild::Init version check. Bill also
suggested that the pref env var might be getting truncated.

This patch improves on the situation by using null for the prefs array
if none was sent, and falling back on the default values, which leave
the scheduler disabled.

This also checks that the pref string is at least long enough to avoid
a buffer overflow. Note that if the end of the string isn't an integer
we'll end up with an sPrefThreadCount of zero, which can't be good.

MozReview-Commit-ID: ByHLFMEpgyZ

--HG--
extra : rebase_source : 8f6368b88ec3746f4d1c7716a962bb2ac3c2f3b5
2017-08-29 10:30:03 -07:00
Sean V Kelley
b24a6c913e Bug 1376858 - Use SystemGroup to label nsIThread::AsyncShutdown, r=billm
MozReview-Commit-ID: IDPE6zhEnVI

--HG--
extra : rebase_source : c6c47ba59dc983ba0747f4a222a88e9fbac3efb2
2017-08-27 18:58:54 -07:00
Andrew McCreight
c06c75d418 Bug 1394655 - Don't call SetNextIdleDeadlineRef on beta or release. r=froydnj
MozReview-Commit-ID: sIO4thBdpq

--HG--
extra : rebase_source : a66b6372ab2effeb6ecc53b6eb170c117a9ba1df
2017-08-28 20:53:05 -07:00
Bill McCloskey
f90a87caa9 Bug 1350432 - Initial Quantum DOM scheduler implementation, disabled by default (r=froydnj)
MozReview-Commit-ID: JWBxz3bwgwD
2017-08-25 10:28:23 -07:00
Bill McCloskey
2270017046 Bug 1350432 - Add MutexAutoLock::AssertOwns (r=froydnj)
MozReview-Commit-ID: KQGaHRFDxo4
2017-08-25 10:28:23 -07:00
Bill McCloskey
9cd553af84 Bug 1350432 - Remove mEventObservers to SynchronizedEventQueue (r=froydnj)
MozReview-Commit-ID: 8Xt1gdxFDr4
2017-08-25 10:28:23 -07:00
Bill McCloskey
8d0e884b2f Bug 1391850 - Allow IdleDispatch from any thread (r=smaug)
MozReview-Commit-ID: FWb48VV0do8
2017-08-25 10:28:23 -07:00
Bill McCloskey
587e22d043 Bug 1333962 - Add nsILabelableRunnable to label runnables like vsync (r=kanru)
MozReview-Commit-ID: FdvqV0LfFsz
2017-08-25 10:28:23 -07:00
Michael Layzell
eab07b465e Bug 1393581 - Name all IdleTaskRunner runnables, r=smaug 2017-08-25 11:24:27 -04:00
Mike Hommey
615061e5be Bug 1392868 - Completely remove AutoCollectVsyncTelemetry on late beta. r=froydnj
The class, in practice, was already doing nothing in that case, but with
it being half #ifdef'ed on EARLY_BETA_OR_EARLIER, that led to build
failures for unused code on late beta. Just remove the class completely
on late beta.

--HG--
extra : rebase_source : 801b0b9bb9faf41270f72f616e720d5725e8b25c
2017-08-23 11:52:12 +09:00
Sebastian Hengst
99e5cb9c14 merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: GSKVB94r7Kk
2017-08-23 16:29:51 +02:00
Andrew McCreight
2e0a92099c Bug 1392483 - ifdef out mNextIdleDeadline in a few more places. r=froydnj
MozReview-Commit-ID: D9bW4jEHlhl

--HG--
extra : rebase_source : a5a67943b389e5f54b80ee60ab2c60aa4d3f8205
2017-08-22 15:00:45 -07:00
Stone Shih
2c638fc04f Bug 1389314 Part2: Support enabling and disabling the input priority events in runtime. r=smaug.
MozReview-Commit-ID: 3a2TNVqguVb
2017-07-28 15:14:54 +08:00
Stone Shih
60d437ddc2 Bug 1389314 Part1: Rename event prioritization to input event queue. r=smaug.
MozReview-Commit-ID: 7wPWYwIjIet
2017-07-27 16:20:01 +08:00
Tom Ritter
2dbc80baea Bug 1392617 Fix comparison between signed and unsigned integer expressions r=aklotz
The return of these functions is actually (DWORD) –1

MozReview-Commit-ID: 112d6BTBt8O

--HG--
extra : rebase_source : f36ec05d9a1e85d4d2dd844d8024189971aaeb46
2017-08-22 06:35:12 -05:00
Bevis Tseng
88a5ee396a Bug 1392201 - Label nsThreadShutdownAckEvent. r=froydnj 2017-08-21 17:30:22 +08:00
Bill McCloskey
e7ca33ec9e Bug 1391657 - Fix missing member initialization for input prioritization (r=mccr8)
MozReview-Commit-ID: AaleTbntJ7U
2017-08-18 14:18:07 -07:00
Carsten "Tomcat" Book
99aa3f8e70 Merge mozilla-central to mozilla-inbound 2017-08-17 13:13:10 +02:00
Bill McCloskey
12e61085ce Bug 1382922 - Fix build bustage on a CLOSED TREE
MozReview-Commit-ID: 2Ls9zhiXXgS
2017-08-16 21:11:59 -07:00
Bill McCloskey
9edd615af7 Bug 1382922 - Refactor event queue to allow multiple implementations (r=erahm)
This patch refactors the nsThread event queue to clean it up and to make it easier to restructure. The fundamental concepts are as follows:

Each nsThread will have a pointer to a refcounted SynchronizedEventQueue. A SynchronizedEQ takes care of doing the locking and condition variable work when posting and popping events. For the actual storage of events, it delegates to an AbstractEventQueue data structure. It keeps a UniquePtr to the AbstractEventQueue that it uses for storage.

Both SynchronizedEQ and AbstractEventQueue are abstract classes. There is only one concrete implementation of SynchronizedEQ in this patch, which is called ThreadEventQueue. ThreadEventQueue uses locks and condition variables to post and pop events the same way nsThread does. It also encapsulates the functionality that DOM workers need to implement their special event loops (PushEventQueue and PopEventQueue). In later Quantum DOM work, I plan to have another SynchronizedEQ implementation for the main thread, called SchedulerEventQueue. It will have special code for the cooperatively scheduling threads in Quantum DOM.

There are two concrete implementations of AbstractEventQueue in this patch: EventQueue and PrioritizedEventQueue. EventQueue replaces the old nsEventQueue. The other AbstractEventQueue implementation is PrioritizedEventQueue, which uses multiple queues for different event priorities.

The final major piece here is ThreadEventTarget, which splits some of the code for posting events out of nsThread. Eventually, my plan is for multiple cooperatively scheduled nsThreads to be able to share a ThreadEventTarget. In this patch, though, each nsThread has its own ThreadEventTarget. The class's purpose is just to collect some related code together.

One final note: I tried to avoid virtual dispatch overhead as much as possible. Calls to SynchronizedEQ methods do use virtual dispatch, since I plan to use different implementations for different threads with Quantum DOM. But all the calls to EventQueue methods should be non-virtual. Although the methods are declared virtual, all the classes used are final and the concrete classes involved should all be known through templatization.

MozReview-Commit-ID: 9Evtr9oIJvx
2017-08-16 20:55:43 -07:00
Chris Pearce
f2902bdf82 Bug 1390406 - Remove unnecessary includes in dom/media/mediasource. r=jya
MozReview-Commit-ID: 1aTncGfBicu

--HG--
extra : rebase_source : 8ad085eb81d195732c385718c283b4752e5e3c80
2017-08-15 16:13:00 +12:00
Wes Kocher
22fd8d166d Backed out changeset 00e918528ce0 (bug 1388608) for build bustage a=backout CLOSED TREE
MozReview-Commit-ID: H6g0kvzH6tT
2017-08-16 16:22:30 -07:00
Kris Maglione
ff1cab15a3 Bug 1388608: Add profiler labels for dispatching named runnables. r=mstange
MozReview-Commit-ID: 2vmVY38Kdll

--HG--
extra : rebase_source : 59415696d2d59becb541a950d4077ddebeeef3ca
extra : amend_source : 81c9b683e83abe370088e80716ea63d74c783700
2017-08-08 20:19:10 -07:00
Michael Layzell
65ece3dba5 Bug 1380081 - Part 11: Simplify the HangAnnotations abstraction, r=froydnj
HangAnnotations was very complex, required a separate allocation, and used this
unfortunate virtual interface implementation which made it harder to do
interesting things with it (such as serialize it over IPC).

This new implementation is much simpler and more concrete, making
HangAnnotations simply be a nsTArray<Annotation>. This also simplifies some of
the IPC code which was added in part 7.

MozReview-Commit-ID: EzaaxdHpW1t
2017-08-15 16:35:46 -04:00
Michael Layzell
916fbaa397 Bug 1380081 - Part 5: Add some helper methods to HangAnnotations, r=froydnj
These will be used to implement IPC serialization and deserialization of the
HangDetails object to send over IPC. This is a temporary measure as
HangAnnotations is rewritten in part 11.

MozReview-Commit-ID: 1WHNvhDrMF5
2017-08-15 16:35:06 -04:00
Michael Layzell
b7564c8ece Bug 1380081 - Part 4: Move BHR into its own component, r=froydnj
MozReview-Commit-ID: 7TOGofAYM6W


--HG--
rename : xpcom/threads/BackgroundHangMonitor.cpp => toolkit/components/backgroundhangmonitor/BackgroundHangMonitor.cpp
rename : xpcom/threads/BackgroundHangMonitor.h => toolkit/components/backgroundhangmonitor/BackgroundHangMonitor.h
rename : toolkit/components/telemetry/ThreadHangStats.h => toolkit/components/backgroundhangmonitor/ThreadHangStats.h
rename : xpcom/threads/ThreadStackHelper.cpp => toolkit/components/backgroundhangmonitor/ThreadStackHelper.cpp
rename : xpcom/threads/ThreadStackHelper.h => toolkit/components/backgroundhangmonitor/ThreadStackHelper.h
rename : xpcom/threads/nsIHangDetails.idl => toolkit/components/backgroundhangmonitor/nsIHangDetails.idl
2017-08-15 16:35:00 -04:00
Michael Layzell
cd973809f7 Bug 1380081 - Part 3: Remove the ThreadHangStats object and related code, r=froydnj
MozReview-Commit-ID: EtrktVmc3vP
2017-08-15 16:34:21 -04:00
Bill McCloskey
268004b056 Bug 1382172 - Compute names for all JS-implemented XPCOM objects (r=mrbkap)
MozReview-Commit-ID: 4kPbqOpGYnq
2017-08-14 22:42:42 -07:00
Phil Ringnalda
6bfeb0577d Backed out changeset c0c52209c8f2 (bug 1382172) for static build bustage
CLOSED TREE

MozReview-Commit-ID: 9GzjXjoIrp5
2017-08-14 22:23:57 -07:00
Bill McCloskey
96944ff355 Bug 1382172 - Compute names for all JS-implemented XPCOM objects (r=mrbkap)
MozReview-Commit-ID: 4kPbqOpGYnq
2017-08-14 21:10:14 -07:00
Michael Layzell
ba3aeb0481 Bug 1365309 - Part 2: re-enable BHR on linux, r=froydnj
MozReview-Commit-ID: BtRZecG4IYA
2017-08-14 10:05:24 -04:00
Stone Shih
4e8f0045a9 Bug 1351148 Part10: nsChainedEventQueue::PutEvent should always put high priority event in mHighQueue. r=smaug.
MozReview-Commit-ID: H6TV9bdm6QM
2017-07-26 10:52:06 +08:00
Stone Shih
393c62eba7 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
de7f705042 Bug 1351148 Part2: Add a priority queue for input events. r=smaug.
MozReview-Commit-ID: 5ud1Ex9UNVo
2017-03-21 15:44:12 +08:00
Stone Shih
1467938d67 Bug 1351148 Part1: Add include header to TimerThread.h to fix compile errors. r=smaug.
MozReview-Commit-ID: 65UfFMwmSrm
2017-05-29 17:19:17 +08:00
Michael Layzell
8d41010aea Bug 1389252 - Disable BHR in beta, r=froydnj
MozReview-Commit-ID: K98DceJ2uHz
2017-08-11 17:50:13 -04:00
Wes Kocher
cff9e9b197 Merge m-c to autoland, a=merge
MozReview-Commit-ID: 2YvHbITn9w3
2017-08-10 18:25:34 -07:00
Sylvestre Ledru
8c03b39a29 Bug 1387002 - Replace .size() by .empty() when applicable in xpcom/ r=froydnj
MozReview-Commit-ID: LWzpVGVV7Py

--HG--
extra : rebase_source : 1e3aa342a096afcdd194b1272ac693b225081599
2017-08-03 12:08:32 +02:00
Nathan Froyd
438b1b37eb Bug 1380619 - avoid unnecessary content process leaks in SchedulerGroup dispatch during shutdown; r=mystor
SchedulerGroup dispatch needs to replicate all the quirks of dispatching
directly to threads, which means we need to handle cases where dispatch
might have failed and we have resources that we don't want to leak.
2017-08-09 14:12:44 -04:00
Henry Chang
55356f4f83 Bug 1355746 - Part 2. Polish IdleTaskRunner and reuse it for background parsing. r=smaug
This patch is mainly to make IdleTaskRunner reusable by nsHtml5TreeOpExecutor.
The only necessary work to that purpose is to remove the dependency of
sShuttingDown, which was a static variable in nsJSEnvironment.cpp.
The idea is to have a "MayStopProcessing" as a callback for the consumer to
return sShuttingDown.

In addition to sShuttingDown, we use std::function<bool()> as the runner
main callback type.

MozReview-Commit-ID: FT2X1unSvPS

--HG--
extra : rebase_source : 3fe2d4f597f53e9a90f3dc8d5009df04240534ba
extra : intermediate-source : 41f6715c344ce26f7820cecb2544db8c50dca796
extra : source : 042f10937305e34245bdaf75dcb816db7738254e
2017-07-12 09:23:15 +08:00
Henry Chang
fab3d4644c Bug 1355746 - Part 1. Rename CollectRunner to IdleTaskRunner and move to xpcom/threads/IdleTaskRunner.h/cpp r=smaug
Nothing is changed in this patch except for renaming and code move around.
The strategy is to have the final file setup in this patch without any
detail change. The actual code change will be in the next patch so that
we can focus on reviewing the diff in the next patch regarding IdleTaskRunner.

MozReview-Commit-ID: 4Bul9mZ7z1n

--HG--
extra : rebase_source : b978da3a3c68da58f9fd93502bcc4295acd699ce
extra : source : 833d4b69accbf7d1d60f9f11d807ee37d608b6fe
2017-08-07 13:50:47 +08:00