gecko-dev/xpcom/threads
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
..
AbstractEventQueue.h Bug 1350432 - Initial Quantum DOM scheduler implementation, disabled by default (r=froydnj) 2017-08-25 10:28:23 -07:00
AbstractThread.cpp Bug 1386893 - Update AbstractThread thread safety assertions to work with cooperative threading (r=jwwang) 2017-08-03 14:19:04 -07:00
AbstractThread.h Bug 1364821 - Fix bustage 2017-08-03 15:17:11 -07:00
BlockingResourceBase.cpp Bug 1384819 (part 1) - Split MozStackWalk(). r=glandium. 2017-07-27 12:46:47 +10:00
BlockingResourceBase.h Bug 1347963 - part 1 - introduce mozilla::RecursiveMutex; r=erahm 2017-03-14 14:05:51 -04:00
CondVar.h Bug 1378712 - Remove all trailing whitespaces r=Ehsan 2017-07-06 14:00:35 +02:00
CooperativeThreadPool.cpp Bug 1350432 - Initial Quantum DOM scheduler implementation, disabled by default (r=froydnj) 2017-08-25 10:28:23 -07:00
CooperativeThreadPool.h Bug 1350432 - Initial Quantum DOM scheduler implementation, disabled by default (r=froydnj) 2017-08-25 10:28:23 -07:00
DeadlockDetector.h
EventQueue.cpp Bug 1350432 - Initial Quantum DOM scheduler implementation, disabled by default (r=froydnj) 2017-08-25 10:28:23 -07:00
EventQueue.h Bug 1350432 - Initial Quantum DOM scheduler implementation, disabled by default (r=froydnj) 2017-08-25 10:28:23 -07:00
HangAnnotations.cpp Bug 1380081 - Part 11: Simplify the HangAnnotations abstraction, r=froydnj 2017-08-15 16:35:46 -04:00
HangAnnotations.h Bug 1380081 - Part 11: Simplify the HangAnnotations abstraction, r=froydnj 2017-08-15 16:35:46 -04:00
HangMonitor.cpp Bug 1392617 Fix comparison between signed and unsigned integer expressions r=aklotz 2017-08-22 06:35:12 -05:00
HangMonitor.h
IdleTaskRunner.cpp Bug 1393581 - Name all IdleTaskRunner runnables, r=smaug 2017-08-25 11:24:27 -04:00
IdleTaskRunner.h Bug 1393581 - Name all IdleTaskRunner runnables, r=smaug 2017-08-25 11:24:27 -04:00
InputEventStatistics.cpp Bug 1389314 Part1: Rename event prioritization to input event queue. r=smaug. 2017-07-27 16:20:01 +08:00
InputEventStatistics.h Backed out changeset 284af26c1b53 (bug 1351148) 2017-07-28 09:20:27 +02:00
LabeledEventQueue.cpp Bug 1350432 - Initial Quantum DOM scheduler implementation, disabled by default (r=froydnj) 2017-08-25 10:28:23 -07:00
LabeledEventQueue.h Bug 1350432 - Initial Quantum DOM scheduler implementation, disabled by default (r=froydnj) 2017-08-25 10:28:23 -07:00
LazyIdleThread.cpp Bug 1382922 - Refactor event queue to allow multiple implementations (r=erahm) 2017-08-16 20:55:43 -07:00
LazyIdleThread.h Bug 1382172 - Name nsITimerCallback instances in native implementation. r=billm 2017-07-27 02:18:20 +08:00
LeakRefPtr.h
MainThreadIdlePeriod.cpp Bug 1311425 - Add pref for how far into the timer queue, r=smaug,f=froydnj 2017-05-24 21:14:29 -04:00
MainThreadIdlePeriod.h Bug 1311425 - Add pref for how far into the timer queue, r=smaug,f=froydnj 2017-05-24 21:14:29 -04:00
MainThreadUtils.h Bug 1372670 - part 1 - remove non-MOZILLA_INTERNAL_API NS_IsMainThread(); r=erahm 2017-06-21 12:59:28 -04:00
Monitor.h Bug 1374594 - Allow mutex/monitor scoped unlockers to be constructed from their locking counterparts - r=froydnj 2017-06-20 22:20:49 +12:00
moz.build Bug 1350432 - Initial Quantum DOM scheduler implementation, disabled by default (r=froydnj) 2017-08-25 10:28:23 -07:00
MozPromise.h Bug 1390406 - Remove unnecessary includes in dom/media/mediasource. r=jya 2017-08-15 16:13:00 +12:00
Mutex.h Bug 1350432 - Add MutexAutoLock::AssertOwns (r=froydnj) 2017-08-25 10:28:23 -07:00
nsEnvironment.cpp Bug 1381727 (part 2) - Remove SmprintfFree(). r=glandium. 2017-07-25 09:09:25 +10:00
nsEnvironment.h
nsICancelableRunnable.h
nsIEnvironment.idl
nsIEventTarget.idl Bug 1361164 - Add infallible IsOnCurrentThread to nsIEventTarget (r=froydnj) 2017-06-12 20:20:08 -07:00
nsIIdlePeriod.idl
nsIIdleRunnable.h Bug 1358476, add support for timeout when doing idle dispatch, p=farre,smaug, r=nfroyd 2017-05-24 17:34:50 -04:00
nsILabelableRunnable.h Bug 1333962 - Add nsILabelableRunnable to label runnables like vsync (r=kanru) 2017-08-25 10:28:23 -07:00
nsINamed.idl Bug 1382172 - Compute names for all JS-implemented XPCOM objects (r=mrbkap) 2017-08-14 22:42:42 -07:00
nsIProcess.idl Bug 1366711 - Make it possible to hide applications launched with nsIProcess; r=bsmedberg 2017-05-22 10:23:00 +02:00
nsIRunnable.idl Bug 1351148 Part3: Synthesize native input events with priority. f=kats,smaug. r=smaug. 2017-05-19 15:41:24 +08:00
nsISerialEventTarget.idl Bug 1372733 - EventTargetFor should return an nsISerialEventTarget (r=bkelly) 2017-06-15 20:16:25 -07:00
nsISupportsPriority.idl
nsIThread.idl Bug 1382922 - Refactor event queue to allow multiple implementations (r=erahm) 2017-08-16 20:55:43 -07:00
nsIThreadInternal.idl Bug 1382922 - Refactor event queue to allow multiple implementations (r=erahm) 2017-08-16 20:55:43 -07:00
nsIThreadManager.idl Bug 1351148 Part3: Synthesize native input events with priority. f=kats,smaug. r=smaug. 2017-05-19 15:41:24 +08:00
nsIThreadPool.idl Bug 1361164 - Add infallible IsOnCurrentThread to nsIEventTarget (r=froydnj) 2017-06-12 20:20:08 -07:00
nsITimer.idl Bug 1377222 - Eliminate nsITimer::InitWithFuncCallback in favor of InitWithNamedFuncCallback (r=froydnj) 2017-07-03 16:19:56 -07:00
nsMemoryPressure.cpp Bug 1372405 - Provide names for all runnables in the tree (r=froydnj) 2017-06-26 14:19:58 -07:00
nsMemoryPressure.h
nsProcess.h Bug 1366711 - Make it possible to hide applications launched with nsIProcess; r=bsmedberg 2017-05-22 10:23:00 +02:00
nsProcessCommon.cpp Bug 1376638 - Minimize uses of prmem.h. r=glandium. 2017-06-30 19:05:41 -07:00
nsProxyRelease.cpp Bug 1372453 - Part 1: Support to name the callers of ProxyReleaseEvent. r=froydnj 2017-06-13 18:10:13 +08:00
nsProxyRelease.h Bug 1350958 - Finish labeling ProxyReleaseEvent, r=billm 2017-07-14 08:49:22 +02:00
nsThread.cpp Bug 1350432 - Initial Quantum DOM scheduler implementation, disabled by default (r=froydnj) 2017-08-25 10:28:23 -07:00
nsThread.h merge mozilla-inbound to mozilla-central. r=merge a=merge 2017-08-23 16:29:51 +02:00
nsThreadManager.cpp Bug 1350432 - Initial Quantum DOM scheduler implementation, disabled by default (r=froydnj) 2017-08-25 10:28:23 -07:00
nsThreadManager.h Bug 1350432 - Initial Quantum DOM scheduler implementation, disabled by default (r=froydnj) 2017-08-25 10:28:23 -07:00
nsThreadPool.cpp Bug 1376858 - Use SystemGroup to label nsIThread::AsyncShutdown, r=billm 2017-08-27 18:58:54 -07:00
nsThreadPool.h Bug 1382922 - Refactor event queue to allow multiple implementations (r=erahm) 2017-08-16 20:55:43 -07:00
nsThreadSyncDispatch.h Bug 1382922 - Refactor event queue to allow multiple implementations (r=erahm) 2017-08-16 20:55:43 -07:00
nsThreadUtils.cpp Bug 1350432 - Initial Quantum DOM scheduler implementation, disabled by default (r=froydnj) 2017-08-25 10:28:23 -07:00
nsThreadUtils.h Bug 1350432 - Initial Quantum DOM scheduler implementation, disabled by default (r=froydnj) 2017-08-25 10:28:23 -07:00
nsTimerImpl.cpp Bug 1382922 - Refactor event queue to allow multiple implementations (r=erahm) 2017-08-16 20:55:43 -07:00
nsTimerImpl.h Bug 1351148 Part1: Add include header to TimerThread.h to fix compile errors. r=smaug. 2017-05-29 17:19:17 +08:00
PrioritizedEventQueue.cpp Bug 1350432 - Initial Quantum DOM scheduler implementation, disabled by default (r=froydnj) 2017-08-25 10:28:23 -07:00
PrioritizedEventQueue.h Bug 1350432 - Initial Quantum DOM scheduler implementation, disabled by default (r=froydnj) 2017-08-25 10:28:23 -07:00
Queue.h Bug 1382922 - Refactor event queue to allow multiple implementations (r=erahm) 2017-08-16 20:55:43 -07:00
RecursiveMutex.cpp Bug 1347963 - part 1 - introduce mozilla::RecursiveMutex; r=erahm 2017-03-14 14:05:51 -04:00
RecursiveMutex.h Bug 1347963 - part 1 - introduce mozilla::RecursiveMutex; r=erahm 2017-03-14 14:05:51 -04:00
ReentrantMonitor.h Bug 1374594 - Allow mutex/monitor scoped unlockers to be constructed from their locking counterparts - r=froydnj 2017-06-20 22:20:49 +12:00
RWLock.cpp Bug 1367619 - Use RWLock when accessing font prefs service off main thread; r=heycam 2017-05-25 15:04:13 -07:00
RWLock.h Bug 1367619 - Use RWLock when accessing font prefs service off main thread; r=heycam 2017-05-25 15:04:13 -07:00
Scheduler.cpp Bug 1394176 - Use default values for scheduler prefs if the parent process didn't send any. r=billm 2017-08-29 10:30:03 -07:00
Scheduler.h Bug 1350432 - Initial Quantum DOM scheduler implementation, disabled by default (r=froydnj) 2017-08-25 10:28:23 -07:00
SchedulerGroup.cpp Bug 1350432 - Initial Quantum DOM scheduler implementation, disabled by default (r=froydnj) 2017-08-25 10:28:23 -07:00
SchedulerGroup.h Bug 1350432 - Initial Quantum DOM scheduler implementation, disabled by default (r=froydnj) 2017-08-25 10:28:23 -07:00
SharedThreadPool.cpp Bug 1376487 - Use LookupForAdd instead of Get+Put to avoid unnecessary hashtable lookups. r=froydnj 2017-06-28 01:03:17 +02:00
SharedThreadPool.h Bug 1361164 - Add infallible IsOnCurrentThread to nsIEventTarget (r=froydnj) 2017-06-12 20:20:08 -07:00
StateMirroring.h Bug 1372405 - Provide names for all runnables in the tree (r=froydnj) 2017-06-26 14:19:58 -07:00
StateWatching.h Bug 1372405 - Provide names for all runnables in the tree (r=froydnj) 2017-06-26 14:19:58 -07:00
SynchronizedEventQueue.cpp Bug 1350432 - Remove mEventObservers to SynchronizedEventQueue (r=froydnj) 2017-08-25 10:28:23 -07:00
SynchronizedEventQueue.h Bug 1350432 - Remove mEventObservers to SynchronizedEventQueue (r=froydnj) 2017-08-25 10:28:23 -07:00
SyncRunnable.h Bug 1372405 - Provide names for all runnables in the tree (r=froydnj) 2017-06-26 14:19:58 -07:00
SystemGroup.cpp Bug 1384631 - Make SystemGroup::Dispatch work early during startup, when it hasn't been initialized yet. r=billm 2017-07-27 14:18:54 -04:00
SystemGroup.h Bug 1378930 - Part 2: Remove the aName parameter from SchedulerGroup/DocGroup/DispatcherTrait. r=billm 2017-07-26 16:13:35 +08:00
TaskCategory.h
TaskDispatcher.h Bug 1372405 - Provide names for all runnables in the tree (r=froydnj) 2017-06-26 14:19:58 -07:00
TaskQueue.cpp Bug 1387002 - Replace .size() by .empty() when applicable in xpcom/ r=froydnj 2017-08-03 12:08:32 +02:00
TaskQueue.h Bug 1372405 - Provide names for all runnables in the tree (r=froydnj) 2017-06-26 14:19:58 -07:00
ThreadEventQueue.cpp Bug 1350432 - Initial Quantum DOM scheduler implementation, disabled by default (r=froydnj) 2017-08-25 10:28:23 -07:00
ThreadEventQueue.h Bug 1382922 - Refactor event queue to allow multiple implementations (r=erahm) 2017-08-16 20:55:43 -07:00
ThreadEventTarget.cpp Bug 1382922 - Refactor event queue to allow multiple implementations (r=erahm) 2017-08-16 20:55:43 -07:00
ThreadEventTarget.h Bug 1382922 - Refactor event queue to allow multiple implementations (r=erahm) 2017-08-16 20:55:43 -07:00
ThrottledEventQueue.cpp Bug 1350432 - Initial Quantum DOM scheduler implementation, disabled by default (r=froydnj) 2017-08-25 10:28:23 -07:00
ThrottledEventQueue.h Bug 1372733 - EventTargetFor should return an nsISerialEventTarget (r=bkelly) 2017-06-15 20:16:25 -07:00
TimerThread.cpp Bug 1372405 - Provide names for all runnables in the tree (r=froydnj) 2017-06-26 14:19:58 -07:00
TimerThread.h Bug 1351148 Part1: Add include header to TimerThread.h to fix compile errors. r=smaug. 2017-05-29 17:19:17 +08:00