Граф коммитов

2169 Коммитов

Автор SHA1 Сообщение Дата
Jean-Yves Avenard 4a24fe3c8e Bug 1647958 - P3. Have GetCurrentSerialEventTarget returns the currently running MessageLoop. r=nika
We want it to returning the actual nsThread if that's where the MessageLoop would dispatch its tasks; otherwise return the MessageLoop's EventTarget

Depends on D80357

Differential Revision: https://phabricator.services.mozilla.com/D80811
2020-06-30 08:04:10 +00:00
Honza Bambas e3c8fc6ab0 Bug 1648781 - MOZ_LOG of timer events dispatch and run, MOZ_LOG of idle-dispatch timeout, r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D81467
2020-06-30 10:57:28 +00:00
Brindusan Cristian 6f757f82da Backed out 2 changesets (bug 1647958) for conflicting with the backout of Bug 1648898. CLOSED TREE
Backed out changeset 55ecb48a0504 (bug 1647958)
Backed out changeset af210e0df79f (bug 1647958)
2020-06-30 10:59:29 +03:00
Jean-Yves Avenard 35e8e946e1 Bug 1647958 - P3. Have GetCurrentSerialEventTarget returns the currently running MessageLoop. r=nika
We want it to returning the actual nsThread if that's where the MessageLoop would dispatch its tasks; otherwise return the MessageLoop's EventTarget

Depends on D80357

Differential Revision: https://phabricator.services.mozilla.com/D80811
2020-06-30 02:49:05 +00:00
Nihanth Subramanya 359cdd5536 Bug 1555557 - Do cert override file writes off the main thread. r=keeler
Differential Revision: https://phabricator.services.mozilla.com/D35375
2020-06-29 17:00:58 +00:00
Nathan Froyd d862df6fa7 Bug 1648787 - remove MOZ_GUARD_OBJECT bits from RecursiveMutex; r=dmajor,xpcom-reviewers,nika
Apparently I added these in the initial commit for RecursiveMutex.  I'm
not quite sure what I was thinking, but we don't need them for the
RecursiveMutex itself.  (We have them on the corresponding `*Auto*Lock`
classes, which are also `MOZ_RAII`.)

Differential Revision: https://phabricator.services.mozilla.com/D81345
2020-06-29 15:37:21 +00:00
Honza Bambas 2b6b893f89 Bug 1638925 - Ensure that the event gets destroyed within the guards r=jya
Differential Revision: https://phabricator.services.mozilla.com/D80171
2020-06-24 13:51:25 +00:00
Honza Bambas 2946f7e5b9 Bug 1638925 - Do not keep a raw pointer to an event in `LogTaskBase::Run` RAII class to avoid possible work with a released pointer, r=jya
Differential Revision: https://phabricator.services.mozilla.com/D80640
2020-06-24 13:51:23 +00:00
Honza Bambas 5c088661ed Bug 1638925 - Log IPC messages, r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D79621
2020-06-25 12:27:51 +00:00
Honza Bambas a81bb249b1 Bug 1638925 - Log names of nsINamed runnables, r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D79620
2020-06-24 13:49:44 +00:00
Honza Bambas 8ef571ccca Bug 1638925 - Log promise microtasks dispatch-and-run, r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D79618
2020-06-24 13:49:09 +00:00
Brindusan Cristian d41e442d47 Backed out 2 changesets (bug 1606706) for wpt leaks. CLOSED TREE
Backed out changeset 42b8f6456d16 (bug 1606706)
Backed out changeset 3fe0b4051541 (bug 1606706)
2020-06-25 14:53:30 +03:00
Bas Schouten f9399d1df7 Bug 1606706 - Part 3: Enable new TaskController code by default. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D74673
2020-06-25 08:04:01 +00:00
Jean-Yves Avenard 05a0f10af0 Bug 1637500 - P3. Have GetCurrentSerialEventTarget return running XPCOMThreadWrapper. r=froydnj
This will allow to remove AbstractThread::Current() as GetCurrentSerialEventTarget TLS value will be set whenever a task dispatched on the XPCOMThreadWrapper is run.

Differential Revision: https://phabricator.services.mozilla.com/D80355
2020-06-23 05:05:38 +00:00
Jean-Yves Avenard 87438519f0 Bug 1637500 - P2. Rename methods as they are not always dealing with "threads". r=froydnj
Before P1, GetCurrentThreadSerialEventTarget would have always returned the same data as NS_GetCurrentThread, making the comment incorrect Now it will properly return the running TaskQueue if any.

This change of name more clearly exposes what they are doing, as we aren't always dealing with threads directly; but a nsISerialEventTarget

Differential Revision: https://phabricator.services.mozilla.com/D80354
2020-06-23 05:05:36 +00:00
Jean-Yves Avenard 28c38fcc2b Bug 1637500 - P1. Have GetCurrentThreadSerialEventTarget returns the currently running TaskQueue if any. r=froydnj
In the future, we may want to extend GetCurrentThreadSerialEventTarget to return the actual nsISerialEventTarget used to dispatch the task.

Differential Revision: https://phabricator.services.mozilla.com/D80353
2020-06-23 05:02:39 +00:00
Jean-Yves Avenard 4e20dd6e65 Bug 1646054 - P2. Always retain dispatch flags r=froydnj
When TaskQueue was first conceived; it was only used with AbstractThreads and with tail dispatch.
By default, AbstractThread::Dispatch dropped the flags , as it was dispatching all tasks via the tail dispatcher.

It was an oversight, there's no use-case where we wouldn't want the dispatch flags to be carried forward.

It also simplifies the code and TaskQueue's use.

Depends on D80351

Differential Revision: https://phabricator.services.mozilla.com/D80352
2020-06-22 13:55:23 +00:00
Jean-Yves Avenard ea34205395 Bug 1646054 - P1. Remove EventTargetWrapper class. r=froydnj
We also establish the intent of bug 1602167 on the TaskQueue object

Differential Revision: https://phabricator.services.mozilla.com/D80351
2020-06-22 13:55:21 +00:00
David Major 2a6bf134e0 Bug 1646407 - Fix a snprintf complaint in nsTimerImpl.cpp r=njn
We have a clang-plugin check that wants to prefer `SprintfLiteral` over `snprintf`, but for some reason this wasn't caught before clang-11. I _think_ it has to do with previous versions not being able to see that `buflen` was constant, but I'm not really sure.

Differential Revision: https://phabricator.services.mozilla.com/D80021
2020-06-21 13:12:30 +00:00
Eric Rahm ba9b93f039 Bug 1646543 - Replace blacklist with more appropriate names. r=xpcom-reviewers,nika
This removes variants of "blacklist" from the xpcom directory. The preference name "network.file.path_blacklist" is left in place and will need a more thorough plan for removal. Instances of `MOZ_ASAN_BLACKLIST` remain as well and should be replaced in a larger modifcation of the `#define` in the mfbt component.

Differential Revision: https://phabricator.services.mozilla.com/D80098
2020-06-17 23:55:46 +00:00
Brindusan Cristian 35fe5d64b2 Backed out 4 changesets (bug 1638925) for build bustages at ipc_channel_posix.cc. CLOSED TREE
Backed out changeset e0fe5351fdf7 (bug 1638925)
Backed out changeset 2c8b67413cd6 (bug 1638925)
Backed out changeset 4ea2c9ceb540 (bug 1638925)
Backed out changeset 84236f1b9064 (bug 1638925)
2020-06-17 20:28:41 +03:00
Honza Bambas f2278bf3e2 Bug 1638925 - Log IPC messages, r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D79621
2020-06-17 16:15:06 +00:00
Honza Bambas 91ff5e401f Bug 1638925 - Log names of nsINamed runnables, r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D79620
2020-06-17 16:14:27 +00:00
Honza Bambas 828868b839 Bug 1638925 - Log promise microtasks dispatch-and-run, r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D79618
2020-06-17 16:13:51 +00:00
Simon Giesecke 298981065e Bug 1645339 - Use range-based for with nsTObserverArray in xpcom. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D79484
2020-06-15 08:55:27 +00:00
Jean-Yves Avenard d5528b6394 Bug 1641737 - P4. Add UseDirectTaskDispatch/UseSynchronousDispatch to MozPromiseHolder. r=bholley
The allows to not have to deal with MozPromise::Private directly.

Differential Revision: https://phabricator.services.mozilla.com/D78208
2020-06-12 05:56:39 +00:00
Jean-Yves Avenard 7b7d64db67 Bug 1641737 - P1. Set dispatch type to chained promises. r=bholley
When chaining a MozPromise set to be dispatched via the direct task queue (or synchronous), it makes sense for the chained promise to be dispatched in the same fashion.

All MozPromises generated by the IPC bindings are set to use the direct task queue in order to prevent the then runnable to run out of order with other IPC tasks.
We want to preserve that task ordering by default.

Differential Revision: https://phabricator.services.mozilla.com/D78178
2020-06-12 05:56:26 +00:00
Jean-Yves Avenard 4e41c1b386 Bug 1644009 - P14. Fallback to normal dispatch on release. r=bholley
We shouldn't ever get there, but just in case, better than a null deref.

Differential Revision: https://phabricator.services.mozilla.com/D79097
2020-06-12 05:10:57 +00:00
Jean-Yves Avenard a56b255f0f Bug 1644009 - P13. Don't have AutoTaskGuard inherit from AutoTaskDispatcher. r=bholley.
This prevent being able to assert in the AutoTaskDispatcher that we are using it from the right thread/taskqueue as the SimpleTaskQueue object isn't thread-safe.

We want to assert that all nsIDirectTaskDispatcher methods are only ever accessed on the underlying thread. To do so require that the scope of AutoTaskDispatcher to terminate prior the AutoTaskGuard one.

Differential Revision: https://phabricator.services.mozilla.com/D79096
2020-06-12 05:10:55 +00:00
Jean-Yves Avenard d846483194 Bug 1644009 - P10. Make MozPromise access direct task dispatcher using QI(nsIDirectTaskDispatcher). r=bholley
Differential Revision: https://phabricator.services.mozilla.com/D79094
2020-06-12 05:10:32 +00:00
Jean-Yves Avenard 1e2af615c7 Bug 1644009 - P9. Add nsIDirectTaskDispatcher interface. r=froydnj
We extract the dealing of direct tasks from the TailDispatcher object and move into to the existing nsThread and TaskQueue classes.
TaskQueue is made to work with do_QueryInterface.

We continue accessing the direct tasks dispatcher via the TailDispatcher for now, which itself will forward the dealing of such tasks to the underlying thread.

Differential Revision: https://phabricator.services.mozilla.com/D79093
2020-06-12 05:10:25 +00:00
Jean-Yves Avenard 974a9641a4 Bug 1644009 - P8. Add SimpleTaskQueue object. r=froydnj
We will use it later for implementing direct task dispatching where required.

Differential Revision: https://phabricator.services.mozilla.com/D79092
2020-06-12 05:10:12 +00:00
Bas Schouten 45104a7a29 Bug 1644292: Duplicate code for runnable telemetry for runnables executed inside TaskController. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D78888
2020-06-09 13:02:37 +00:00
Bas Schouten c2dc5d2a40 Bug 1644288: Explicitly do not use timeDurationHelper when TaskController is enabled. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D78825
2020-06-09 12:42:24 +00:00
Razvan Maries caec984d54 Backed out 7 changesets (bug 1641737) assertion failures. CLOSED TREE
Backed out changeset 7f7b98339065 (bug 1641737)
Backed out changeset 32fba417ebd0 (bug 1641737)
Backed out changeset abd9cd77f3cb (bug 1641737)
Backed out changeset e3bf9a45db6a (bug 1641737)
Backed out changeset 94d47578009c (bug 1641737)
Backed out changeset 28bca5c5b8b4 (bug 1641737)
Backed out changeset 0296d0f6c1d1 (bug 1641737)
2020-06-09 18:55:08 +03:00
Jean-Yves Avenard bb29b401bc Bug 1641737 - P4. Add UseDirectTaskDispatch/UseSynchronousDispatch to MozPromiseHolder. r=bholley
The allows to not have to deal with MozPromise::Private directly.

Differential Revision: https://phabricator.services.mozilla.com/D78208
2020-06-09 07:23:57 +00:00
Jean-Yves Avenard 0e3faed81f Bug 1641737 - P1. Set dispatch type to chained promises. r=bholley
When chaining a MozPromise set to be dispatched via the direct task queue (or synchronous), it makes sense for the chained promise to be dispatched in the same fashion.

All MozPromises generated by the IPC bindings are set to use the direct task queue in order to prevent the then runnable to run out of order with other IPC tasks.
We want to preserve that task ordering by default.

Differential Revision: https://phabricator.services.mozilla.com/D78178
2020-06-09 07:23:29 +00:00
Dana Keeler ac4d01ea49 Bug 1644224 - make nsTimerEvent::sCanDeleteAllocator atomic/sequentially consistent r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D78771
2020-06-08 19:59:40 +00:00
Simon Giesecke ebbc7ae838 Bug 1642989 - Use RemoveLastElements instead of RemoveElementsAt where possible. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D78049
2020-06-08 08:50:15 +00:00
Simon Giesecke 13502cf27c Bug 1642991 - Use RemoveElementsBy where easily possible. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D78055
2020-06-08 09:01:48 +00:00
Bas Schouten 8032d4373e Bug 1606706 - Part 2: Integrate new TaskController code into tree and allow usage by pref. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D74672
2020-06-04 00:02:18 +00:00
Bas Schouten c01e9666a7 Bug 1606706 - Part 1: Add new TaskController code to the tree. r=smaug,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D74671
2020-06-03 23:39:58 +00:00
Bogdan Tara 2719f07eb0 Backed out 2 changesets (bug 1606706) for talos tests timeouts CLOSED TREE
Backed out changeset ab3e1a067a71 (bug 1606706)
Backed out changeset c47cf57dab71 (bug 1606706)
2020-06-03 11:51:04 +03:00
Bas Schouten 3a3972c388 Bug 1606706 - Part 2: Integrate new TaskController code into tree and allow usage by pref. r=smaug,?
Differential Revision: https://phabricator.services.mozilla.com/D74672
2020-06-02 11:36:38 +00:00
Bas Schouten e79c5d94a5 Bug 1606706 - Part 1: Add new TaskController code to the tree. r=smaug,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D74671
2020-06-02 21:28:24 +00:00
Sylvestre Ledru 615c83d723 Bug 1519636 - Reformat recent changes to the Google coding style r=andi
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D76451
2020-05-25 07:42:38 +00:00
Nathan Froyd 1a536ec126 Bug 1639632 - convert xpcom/ to inherit from mozilla::Runnable where possible; r=KrisWright
A little less boilerplate is nice.

Differential Revision: https://phabricator.services.mozilla.com/D76178
2020-05-20 20:37:58 +00:00
Lina Cambridge 28cc6477f4 Bug 1638929 - Expose `NS_DispatchBackgroundTask` to `moz_task`. r=KrisWright
Differential Revision: https://phabricator.services.mozilla.com/D75838
2020-05-20 20:54:11 +00:00
Jean-Yves Avenard 906437cc5d Bug 1637890 - P3. Ensure an AbstractThread exists when dispatching a task. r=froydnj
When performing the last GC, remaining state watchers would dispatch direct tasks ; this was exposed with P3. Ensure this never happens.

Differential Revision: https://phabricator.services.mozilla.com/D75499
2020-05-18 02:30:27 +00:00
Jean-Yves Avenard de5872ee7a Bug 1637890 - P2. Don't use ClearOnShutdown to destroy AbstractThread::MainThread(). r=froydnj
During the last cycle collection, state watchers may attempt to dispatch tasks to the current AbstractThread, so we can't clear the TLS entry until that step has completed.

We want the object to be deleted last; ordering in call to ClearOnShutdown() can't guarantee it.

Differential Revision: https://phabricator.services.mozilla.com/D75498
2020-05-18 16:12:28 +00:00
Jean-Yves Avenard dfb2061bb1 Bug 1634264 - Reject MozPromise when DomPromiseListener is deleted. r=mattwoodrow
We remove the assertion that the error code was NS_OK, as users of FromDomPromise assert it must be a failure.

Differential Revision: https://phabricator.services.mozilla.com/D75737
2020-05-18 22:16:38 +00:00
Imanol Fernandez cee36f038b Bug 1636456 - Implement WebXR idle deadline detection r=kip,daoshengmu,smaug,rbarker
Gecko Idle detection relies heavily on RefreshDriver. GC/CC scheduling, including when to run GC or CC slices, and the length of the slices, is mostly based on idle time. As WebXR isn't using normal RefreshDriver, the content process thinks it's idle and GC and CC get basically up to 50 ms slices.

Not having WebXR idle detection is causing stutter frames during immersive presentation. This patch implements idle deadline hint and sets the correct GC slices budgets during WebXR presentation.

Differential Revision: https://phabricator.services.mozilla.com/D74426
2020-05-13 22:10:27 +00:00
Jean-Yves Avenard e574b42ad5 Bug 1592488 - P13. Add TailDispatchingTarget class. r=bholley
This wraps the current thread such that a call to Dispatch will be done as direct task dispatch instead so that the task will be run in the current event loop.
This allows for have similar (but not identical to) the microtask semantics of JS promises

Differential Revision: https://phabricator.services.mozilla.com/D69995
2020-05-12 10:45:23 +00:00
Jean-Yves Avenard ecf59bcb19 Bug 1592488 - P3. Update AbstractThread comment to reflect current mode of operation. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D74591
2020-05-12 10:42:52 +00:00
Jean-Yves Avenard ab7618f0d9 Bug 1592488 - P2. Add MozPromise::Private::UseDirectTaskDispatch. r=bholley
If set, the callback will be dispatched via a direct task.
Direct tasks are run via the current thread's tail dispatcher.
This mechanism is only available if both the caller and the target are on the same thread and an AbstractThread is available

Differential Revision: https://phabricator.services.mozilla.com/D71592
2020-05-12 10:42:44 +00:00
Jean-Yves Avenard 68431ed26f Bug 1592488 - P1. Add MozPromise::Private::UseSynchronousTaskDispatch. r=bholley
If set, the callback will be run synchronously when the promise is resolved or rejected.

Differential Revision: https://phabricator.services.mozilla.com/D71591
2020-05-12 10:53:48 +00:00
Honza Bambas 281f7b311b Bug 1634950 - Add event dispatch-and-run MOZ_LOG to our xpcom threads, r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D73622
2020-05-12 12:48:49 +00:00
Jean-Yves Avenard 4f02149e61 Bug 1634253 - P4. Have NS_NewNamedThread take a already_Refed<nsIRunnable. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D73823
2020-05-08 20:20:28 +00:00
Jean-Yves Avenard ee2897c234 Bug 1634253 - P3. Don't cause assertion when delay is 0. r=froydnj
already_AddRefed destructor assert that it's nullptr.
DelayedDispatch check that the value passed isn't 0 and return an error code, leaving the already_AddRefed untouched.

Differential Revision: https://phabricator.services.mozilla.com/D73821
2020-05-08 20:20:30 +00:00
Jean-Yves Avenard 0afd0b06c9 Bug 1634253 - P2. Dissociate running a BackgroundHangMonitor from main thread. r=froydnj
This will allow to have other threads to use one such as the compositor thread.

Differential Revision: https://phabricator.services.mozilla.com/D73820
2020-05-08 20:20:32 +00:00
Jean-Yves Avenard dd75a6a8ab Bug 1634253 - P1. Fix constness. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D73819
2020-05-08 20:20:35 +00:00
Narcis Beleuzu 58a833221c Backed out 9 changesets (bug 1634253) for bc failures on browser_bug295977_autoscroll_overflow.js . CLOSED TREE
Backed out changeset d41b75c1f7ec (bug 1634253)
Backed out changeset 5f8a1ee17b81 (bug 1634253)
Backed out changeset 43eda078b405 (bug 1634253)
Backed out changeset e98212a74709 (bug 1634253)
Backed out changeset 855e222ceb14 (bug 1634253)
Backed out changeset 9f01acdf4367 (bug 1634253)
Backed out changeset ea62cb1ec472 (bug 1634253)
Backed out changeset fa3e7588e7d6 (bug 1634253)
Backed out changeset 139e7035e736 (bug 1634253)
2020-05-08 23:09:31 +03:00
Jean-Yves Avenard f597eaee8b Bug 1634253 - P4. Have NS_NewNamedThread take a already_Refed<nsIRunnable. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D73823
2020-05-07 08:04:34 +00:00
Jean-Yves Avenard efec5e2e85 Bug 1634253 - P3. Don't cause assertion when delay is 0. r=froydnj
already_AddRefed destructor assert that it's nullptr.
DelayedDispatch check that the value passed isn't 0 and return an error code, leaving the already_AddRefed untouched.

Differential Revision: https://phabricator.services.mozilla.com/D73821
2020-05-07 08:04:37 +00:00
Jean-Yves Avenard 3e533d2327 Bug 1634253 - P2. Dissociate running a BackgroundHangMonitor from main thread. r=froydnj
This will allow to have other threads to use one such as the compositor thread.

Differential Revision: https://phabricator.services.mozilla.com/D73820
2020-05-07 08:04:39 +00:00
Jean-Yves Avenard 2494dc377e Bug 1634253 - P1. Fix constness. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D73819
2020-05-07 08:04:41 +00:00
Mirko Brodesser 99d8db5e8a Bug 1635709: part 2) Add unit to `nsITimer`'s `init` methods. r=froydnj
`Selection`'s `nsAutoScrollTimer` uses it and it's clearer when the unit
is known.

Depends on D74051

Differential Revision: https://phabricator.services.mozilla.com/D74052
2020-05-06 15:23:22 +00:00
Dorel Luca 9340fa2b2d Backed out 11 changesets (bug 1635001, bug 1634253) for Browser-chrome failures in browser_bug295977_autoscroll_overflow.js
Backed out changeset c3c27cb46db6 (bug 1635001)
Backed out changeset 6cea251e5910 (bug 1635001)
Backed out changeset 3cb0a05be7fc (bug 1635001)
Backed out changeset 1cbb2866a3ad (bug 1634253)
Backed out changeset 53fd00dcf95c (bug 1634253)
Backed out changeset e3acd9db7065 (bug 1634253)
Backed out changeset 5c0b7aa99406 (bug 1634253)
Backed out changeset dc7e17f772be (bug 1634253)
Backed out changeset 6e47af64396a (bug 1634253)
Backed out changeset 8865de9ae0ef (bug 1634253)
Backed out changeset 6fac93b596c2 (bug 1634253)
2020-05-07 11:00:04 +03:00
Jean-Yves Avenard 19c4486bed Bug 1634253 - P4. Have NS_NewNamedThread take a already_Refed<nsIRunnable. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D73823
2020-05-07 05:02:46 +00:00
Jean-Yves Avenard 50d25d73f4 Bug 1634253 - P3. Don't cause assertion when delay is 0. r=froydnj
already_AddRefed destructor assert that it's nullptr.
DelayedDispatch check that the value passed isn't 0 and return an error code, leaving the already_AddRefed untouched.

Differential Revision: https://phabricator.services.mozilla.com/D73821
2020-05-07 05:02:39 +00:00
Jean-Yves Avenard d792bf2e0c Bug 1634253 - P2. Dissociate running a BackgroundHangMonitor from main thread. r=froydnj
This will allow to have other threads to use one such as the compositor thread.

Differential Revision: https://phabricator.services.mozilla.com/D73820
2020-05-07 05:02:31 +00:00
Jean-Yves Avenard 151a0ccd4e Bug 1634253 - P1. Fix constness. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D73819
2020-05-07 05:02:21 +00:00
Simon Giesecke 97d4011b9b Bug 1626570 - Improve handling of copying arrays in MozPromise. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D73641
2020-05-05 13:01:43 +00:00
Gerald Squelart 02d4f51396 Bug 1609907 - Add AUTO_PROFILER_THREAD_SLEEP around wait_for in DEBUG OffTheBooksCondVar::Wait - r=mstange
In non-DEBUG builds, `OffTheBooksCondVar::Wait` has `AUTO_PROFILER_THREAD_SLEEP`, but it's not in DEBUG builds.
`profiler_thread_sleep` does a `MOZ_ASSERT(mSleep == AWAKE)` in DEBUG builds, so the double call that happens in non-DEBUG wouldn't trigger the assertion!

This patch adds `AUTO_PROFILER_THREAD_SLEEP` in DEBUG `OffTheBooksCondVar::Wait`, to catch more misuses during development.

Depends on D72851

Differential Revision: https://phabricator.services.mozilla.com/D72852
2020-05-01 22:12:56 +00:00
Gerald Squelart 6f36a3fdb8 Bug 1609907 - Remove AUTO_PROFILER_THREAD_SLEEP before mozilla::CondVar waits - r=mstange
CondVar already calls `AUTO_PROFILER_THREAD_SLEEP`, which shouldn't be called recursively.

mozilla::Monitor also uses CondVar, so it shouldn't be surrounded by `AUTO_PROFILER_THREAD_SLEEP` either.

Depends on D72850

Differential Revision: https://phabricator.services.mozilla.com/D72851
2020-05-01 22:12:22 +00:00
Bobby Holley 6e85e332ad Bug 1631304 - Use thread observers for the tail dispatcher. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D71710
2020-04-28 21:18:24 +00:00
Bobby Holley 216d17b976 Bug 1631304 - Mark the tail dispatcher as unavailable outside of event dispatch. r=jya
This is in preparation for running the tail dispatcher off
nsIThreadObserver callbacks, which only work during regular
event processing.

Differential Revision: https://phabricator.services.mozilla.com/D72264
2020-04-28 21:18:21 +00:00
Bobby Holley d90069e220 Bug 1631304 - Reject AbstractThread dispatches after the main thread has ceased event proccessing. r=erahm
Differential Revision: https://phabricator.services.mozilla.com/D72263
2020-04-28 21:18:19 +00:00
Bobby Holley a50600019a Bug 1631304 - Replace EventTargetWrapper with XPCOMThreadWrapper. r=jya
This is how it used to be, before the Quantum DOM stuff. We use
nsIThreadInternal because that supports thread observers, which we
leverage in the next patch.

Differential Revision: https://phabricator.services.mozilla.com/D71709
2020-04-28 21:18:17 +00:00
Bobby Holley b5422991d2 Bug 1631304 - Don't lazily create a TailDispatcher from MaybeDrainDirectTasks. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D72262
2020-04-28 21:18:15 +00:00
Bobby Holley b90c44273e Bug 1631304 - Drill a fast path to accessing the main thread. r=erahm
I'm surprised we don't have this already.

Differential Revision: https://phabricator.services.mozilla.com/D71486
2020-04-28 21:18:10 +00:00
Sylvestre Ledru 34acbb653a Bug 1619165 - Reformat recent changes to the Google coding style r=andi
First reformat with clang-format 10

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D68802
2020-04-25 09:40:08 +00:00
Jean-Yves Avenard 6fa1bb5971 Bug 1630802 - P9. EventTargetWrapper runners don't need to be cancellable. r=bholley
It was required once upon a time to be able to use MozPromise on Workers.
Today a MozPromise work with nsISerialEventTarget and no longer rely on this. It can go.

Differential Revision: https://phabricator.services.mozilla.com/D71442
2020-04-20 02:08:23 +00:00
Jean-Yves Avenard d882415a98 Bug 1630802 - P8. Remove unnecessary AutoEnter. r=bholley
AutoEnter was an attempt around a race between AbstractThread and MessageLoopAbstractThreadWrap that would cause AbstractThread::GetCurrent() to return an incorrect value. MessageLoopAbstractThreadWrapper is no more and as such AutoEnter is no longer required.

Differential Revision: https://phabricator.services.mozilla.com/D71279
2020-04-20 02:13:31 +00:00
Jean-Yves Avenard f739ba2873 Bug 1630802 - P7. Remove CreateEventTargetWrapper and ensure that only a single AbstractThread exists par nsIThread. r=bholley
Differential Revision: https://phabricator.services.mozilla.com/D71492
2020-04-21 03:02:39 +00:00
Jean-Yves Avenard 61ac17fa16 Bug 1630802 - P3. Make AbstractThread::GetCurrent() return MainThread on the main thread. r=bholley
prior bug 1364821, AbstractThread::GetCurrent() would always return AbstractThread::MainThread() when called from the main thread.
After this change, we had to run within an AutoEnter scope.

A hidden side effect of this change was that under most cases AbstractThread::MainThread::Dispatch() would no longer use the tail dispatcher to dispatch a task.

It can be safely assume that whenever you're on the main thread, the equivalent AbstractThread is usable.

In the next commit, we will be removing AutoEnter entirely.

Differential Revision: https://phabricator.services.mozilla.com/D71148
2020-04-20 02:07:10 +00:00
Jean-Yves Avenard 08cdd889a1 Bug 1630802 - P1. Cleanup AbstractThread TLS lookup. r=gerald
Differential Revision: https://phabricator.services.mozilla.com/D69994
2020-04-20 02:06:51 +00:00
Ciure Andrei 82b75f7098 Backed out 3 changesets (bug 1631304) for causing MediaStream-MediaElement-srcObject.https.html wpt failures CLOSED TREE
Backed out changeset 54e27b897b3a (bug 1631304)
Backed out changeset 9ffa1843a04b (bug 1631304)
Backed out changeset 700adf5d3779 (bug 1631304)
2020-04-21 04:25:48 +03:00
Bobby Holley db090baf2a Bug 1631304 - Run the TailDispatcher off the Microtask queue. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D71488
2020-04-20 19:12:43 +00:00
Bobby Holley a15d363d2d Bug 1631304 - Add a mechanism to dispatch runnables as microtasks. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D71487
2020-04-20 20:39:46 +00:00
Bobby Holley 67208f946c Bug 1631304 - Drill a fast path to accessing the main thread. r=erahm
I'm surprised we don't have this already.

Differential Revision: https://phabricator.services.mozilla.com/D71486
2020-04-20 22:49:39 +00:00
Olli Pettay ebe2702267 Bug 1627935 - PrioritizedEventQueue::GetEvent doesn't return the correct priority value, r=bas
One could possibly make larger changes to make the setup less error prone, but hopefully we'll
replace this code with the new scheduler relatively soon.
And the assertion there should still enforce correct behavior.

Differential Revision: https://phabricator.services.mozilla.com/D69988

--HG--
extra : moz-landing-system : lando
2020-04-13 22:22:57 +00:00
Nicholas Nethercote 8139b4051e Bug 1619840 - Remove `fix_{linux,macosx}_stack.py` and `fix_stack_using_bpsyms.py`. r=erahm
This commit removes `test_fix_stack_using_bpsyms.py`. That test can't easily be
modified to work with `fix_stacks.py` because it relies on internal
implementation details of `fix_stack_using_bpsym.py`. The unit testing done in
the `fix-stacks` repo provides test coverage that is as good or better.

Differential Revision: https://phabricator.services.mozilla.com/D66924

--HG--
extra : moz-landing-system : lando
2020-04-08 06:55:54 +00:00
Eric Rahm 73c5285b22 Bug 1627391 - Add missing includes and namespaces to xpcom/threads. r=xpcom-reviewers,sg
Also moves `nsThreadShutdownContext` to `nsThread.h` so it can be used by `nsThreadPool`.

Differential Revision: https://phabricator.services.mozilla.com/D69657

--HG--
extra : moz-landing-system : lando
2020-04-07 22:10:29 +00:00
Andreas Farre 25ca8d7890 Bug 1620594 - Part 7: Remove TabGroup and SystemGroup. r=nika,bas
TabGroup never really made any difference in which thread something go
dispatched to. This was the intended use, but development of TabGroups
with abstract main threads never made it that far. The good thing is
that thish makes it safe to also remove to the SystemGroup and instead
switch all SystemGroup dispatches to dispatches to main thread.

Timers for setTimeout and workers were the sole users of wrapped and
throttled event targets, that those throttled queues have been moved
to the BrowsingContextGroup and are now accessed explicitly.

The SchedulerEventTarget has been removed, since there are no longer a
separate event target for every TaskCategory. Instead a
LabellingEventTarget has been added to DocGroup to handle the case
where an event is dispatched do DocGroup or when an AbstractThread is
created using a DocGroup. This means that we'll actually label more
events correctly with the DocGroup that they belong to.

DocGroups have also been moved to BrowsingContextGroup.

Depends on D67636

Differential Revision: https://phabricator.services.mozilla.com/D65936

--HG--
extra : moz-landing-system : lando
2020-04-07 15:17:47 +00:00
Andreas Farre 9e36af2ab6 Bug 1620594 - Part 3: Use default target for timers using SystemGroup. r=nika
Depends on D67632

Differential Revision: https://phabricator.services.mozilla.com/D67633

--HG--
extra : moz-landing-system : lando
2020-04-07 15:16:46 +00:00
Andreas Farre 36eaf82163 Bug 1620594 - Part 2: Use SchedulerGroup::Dispatch instead of SystemGroup::Dispatch. r=nika
Depends on D67631

Differential Revision: https://phabricator.services.mozilla.com/D67632

--HG--
extra : moz-landing-system : lando
2020-04-07 15:16:33 +00:00
Andreas Farre 63e21eec70 Bug 1620594 - Part 1: Rework NS_ReleaseOnMainThreadSystemGroup. r=nika
To be able to remove SystemGroup, NS_ReleaseOnMainThreadSystemGroup
needs to have its dependency on SystemGroup removed. Since all
releases using SystemGroup would've released on the main thread anyway
we can safely replace NS_ReleaseOnMainThreadSystemGroup with
NS_ReleaseOnMainThread.

Depends on D64390

Differential Revision: https://phabricator.services.mozilla.com/D67631

--HG--
extra : moz-landing-system : lando
2020-04-07 15:16:23 +00:00
Bas Schouten 3c7916f406 Bug 1627741: Expect an idle token only if we're actually using cross-process idle scheduling. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D69846

--HG--
extra : moz-landing-system : lando
2020-04-06 17:25:06 +00:00
André Bargull 14ca007916 Bug 1625138 - Part 41: Remove no longer needed includes for mozilla/TypeTraits. r=froydnj
Also adds missing includes in some files, these were previously only transivitely
included through mozilla/TypeTraits.h.

Differential Revision: https://phabricator.services.mozilla.com/D68561

--HG--
extra : moz-landing-system : lando
2020-03-28 16:00:09 +00:00
André Bargull f70fd1c1bd Bug 1625138 - Part 37: Replace mozilla::IsSame with std::is_same in xpcom/. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68556

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:21 +00:00
André Bargull 2712714d84 Bug 1625138 - Part 35: Replace mozilla::TrueType with std::true_type. r=froydnj,jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D68554

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:20 +00:00
André Bargull f8eb4c162e Bug 1625138 - Part 34: Replace mozilla::FalseType with std::false_type. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68553

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:20 +00:00
André Bargull 9de017ffb8 Bug 1625138 - Part 33: Replace mozilla::IntegralConstant with std::integral_constant. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68552

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:19 +00:00
André Bargull 32cb16fc45 Bug 1625138 - Part 32: Replace mozilla::RemoveConst with std::remove_const. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68551

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:19 +00:00
André Bargull 8d7aa62e32 Bug 1625138 - Part 29: Replace mozilla::IsVoid with std::is_void. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68548

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:19 +00:00
André Bargull cf0b1e89e9 Bug 1625138 - Part 30: Replace mozilla::RemoveCV with std::remove_cv. r=froydnj,jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D68547

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:18 +00:00
André Bargull 42d4ebbda9 Bug 1625138 - Part 27: Replace mozilla::DeclVal with std::declval. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68545

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:18 +00:00
André Bargull cae4e1fdbc Bug 1606962: Replace mozilla::EnableIf with std::enable_if. r=froydnj,jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D68401

--HG--
extra : moz-landing-system : lando
2020-03-28 13:35:31 +00:00
André Bargull 1be056677a Bug 1625138 - Part 26: Replace mozilla::Conditional with std::conditional. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68381

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:18 +00:00
André Bargull 3ee851a1a5 Bug 1625138 - Part 25: Replace mozilla::RemoveReference with std::remove_reference. r=froydnj,jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D68380

--HG--
extra : moz-landing-system : lando
2020-03-28 14:16:19 +00:00
André Bargull 08a8c3fc78 Bug 1625138 - Part 24: Replace mozilla::IsConvertible with std::is_convertible. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68379

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:17 +00:00
André Bargull d53798e749 Bug 1625138 - Part 23: Replace mozilla::RemovePointer with std::remove_pointer. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68378

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:17 +00:00
André Bargull a08be4177e Bug 1625138 - Part 17: Replace mozilla::Decay with std::decay. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68372

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:15 +00:00
André Bargull b0c9db06e3 Bug 1625138 - Part 12: Replace mozilla::IsPointer with std::is_pointer. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68366

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:14 +00:00
André Bargull 907be0b57b Bug 1625138 - Part 11: Replace mozilla::IsConst with std::is_const. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D68365

--HG--
extra : moz-landing-system : lando
2020-03-28 13:57:14 +00:00
Chris Peterson b1f54173e8 Bug 1624776 - Replace MOZ_MUST_USE with [[nodiscard]] in xpcom. r=xpcom-reviewers,KrisWright
Also move MOZ_MUST_USE before function declarations' specifiers and return type. While clang and gcc's __attribute__((warn_unused_result)) can appear before, between, or after function specifiers and return types, the [[nodiscard]] attribute must precede the function specifiers.

Also remove MOZ_MUST_USE from nsIMemoryReporter's function pointer typedefs. [[nodiscard]] is an attribute of a function's declaration, not the function's type, and thus can't be applied to function pointers or lambdas.

Differential Revision: https://phabricator.services.mozilla.com/D68138

--HG--
extra : moz-landing-system : lando
2020-03-27 17:21:48 +00:00
Bas Schouten 1bc21ff19c Bug 1563335 - Part 1: Implement mechanism to throttle JS execution. r=smaug,asuth
Differential Revision: https://phabricator.services.mozilla.com/D59321

--HG--
extra : moz-landing-system : lando
2020-03-26 00:36:24 +00:00
Lina Cambridge 9697819fb5 Bug 1622082 - Expose `NS_CreateBackgroundTaskQueue` to `moz_task`. r=KrisWright
This commit moves `NS_CreateBackgroundTaskQueue` into an `extern "C"`
block, adds a `create_background_task_queue` function to `moz_task`,
and makes it possible to dispatch Rust `TaskRunnable`s to any event
target, instead of just an `nsIThread`.

Differential Revision: https://phabricator.services.mozilla.com/D66700

--HG--
extra : moz-landing-system : lando
2020-03-13 21:15:51 +00:00
Boris Zbarsky 61e0515f43 Bug 1618011 part 6. Pass a BindingCallContext (if neded) and source description to primitive conversions. r=peterv
The BindingCallContext tracks what method the conversion is for, and the source
description is how the primitive is involved in that method (e.g. "argument 5").

Differential Revision: https://phabricator.services.mozilla.com/D64887

--HG--
extra : moz-landing-system : lando
2020-03-06 23:05:16 +00:00
Arthur Iakab 14247fb057 Backed out 11 changesets (bug 1618011)for Linting failure.
CLOSED TREE

Backed out changeset 8b11ddd8999f (bug 1618011)
Backed out changeset 11df2f359473 (bug 1618011)
Backed out changeset c50121035d50 (bug 1618011)
Backed out changeset 8b8c4c60c34b (bug 1618011)
Backed out changeset b01f8c66110b (bug 1618011)
Backed out changeset 433fdf04058c (bug 1618011)
Backed out changeset 29a9227d08ac (bug 1618011)
Backed out changeset b2dfa2e66d24 (bug 1618011)
Backed out changeset 85650ee945c4 (bug 1618011)
Backed out changeset 278a213e5304 (bug 1618011)
Backed out changeset 9119aeb72ea4 (bug 1618011)
2020-03-07 00:15:57 +02:00
Boris Zbarsky 0a681b4df5 Bug 1618011 part 6. Pass a BindingCallContext (if neded) and source description to primitive conversions. r=peterv
The BindingCallContext tracks what method the conversion is for, and the source
description is how the primitive is involved in that method (e.g. "argument 5").

Differential Revision: https://phabricator.services.mozilla.com/D64887

--HG--
extra : moz-landing-system : lando
2020-03-06 20:38:55 +00:00
Boris Zbarsky 4a89a400e1 Bug 1600331. When an idle runnable is queued from a background thread, lazily queue it from a non-idle runnable. r=smaug
Idle runnables do weird things involving unlocking the event queue mutex while
looking for runnables, such that queueing one from off the main thread might
cause it to basically never run if it gets queued during one of those
temporary-unlock periods.

Differential Revision: https://phabricator.services.mozilla.com/D65019

--HG--
extra : moz-landing-system : lando
2020-03-03 01:47:24 +00:00
Simon Giesecke 69b996524d Bug 1618165 - Provide BaseAutoLock and BaseAutoUnlock deduction guides for Mutex references. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D64359

--HG--
extra : moz-landing-system : lando
2020-02-28 07:59:30 +00:00
Razvan Maries 166e40b3c8 Backed out changeset b6ce0a07d782 (bug 1618165) for build bustages on WeakRef.cpp. CLOSED TREE 2020-02-27 23:13:40 +02:00
Simon Giesecke 81fcf51f06 Bug 1618165 - Provide BaseAutoLock and BaseAutoUnlock deduction guides for Mutex references. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D64359

--HG--
extra : moz-landing-system : lando
2020-02-27 15:37:41 +00:00
Andrew McCreight 4babb2b5ab Bug 1609815 - Remove Web Replay C++ implementation. r=jgilbert,jandem,gbrown
Patch by bhackett and jlaster. Also reviewed by mccr8.

Differential Revision: https://phabricator.services.mozilla.com/D60197

--HG--
extra : moz-landing-system : lando
2020-02-27 17:39:15 +00:00
Ciure Andrei 00dd87f6f4 Backed out changeset d407a28318e6 (bug 1609815) for causing windows ming bustages CLOSED TREE
--HG--
extra : histedit_source : b2c748e31e0f6ba8fcf9960a336e0bbd361b07e6
2020-02-27 07:05:19 +02:00
Andrew McCreight b197e1f783 Bug 1609815 - Remove Web Replay C++ implementation. r=jgilbert,jandem,gbrown
Patch by bhackett and jlaster. Also reviewed by mccr8.

Differential Revision: https://phabricator.services.mozilla.com/D60197

--HG--
extra : moz-landing-system : lando
2020-02-27 04:43:48 +00:00
Bob Owen 481aab9295 Bug 1598585 Part 1: Make CanvasTranslator the PCanvas parent actor. r=mattwoodrow
We want to be able to send IPC messages from the translation in the parent. So
the simplest thing it move the top level actor parts of CanvasParent into
CanvasTranslator.
This patch also moves the canvas thread management parts out into a new
CanvasThreadHolder class and hopefully makes the lifecycle management of these
much more robust. This includes the use of a TaskQueue per CanvasTranslator to
manage serial processing on the canvas workers, instead of a boolean.

Differential Revision: https://phabricator.services.mozilla.com/D60887

--HG--
rename : gfx/layers/ipc/CanvasParent.cpp => gfx/layers/ipc/CanvasThread.cpp
rename : gfx/layers/ipc/CanvasParent.h => gfx/layers/ipc/CanvasThread.h
rename : gfx/layers/CanvasTranslator.cpp => gfx/layers/ipc/CanvasTranslator.cpp
rename : gfx/layers/CanvasTranslator.h => gfx/layers/ipc/CanvasTranslator.h
extra : moz-landing-system : lando
2020-02-24 11:15:41 +00:00
Sylvestre Ledru bdcdfeff72 Bug 1617437 - TaskQueue.h: Fix a -Wnon-c-typedef-for-linkage warning r=froydnj
Depends on D63781

Differential Revision: https://phabricator.services.mozilla.com/D63783

--HG--
extra : moz-landing-system : lando
2020-02-23 12:59:35 +00:00
Simon Giesecke b06d1c3205 Bug 1616848 - Remove monitor from MozPromiseHolder and provide separate MozMonitoredPromiseHolder class. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D63478

--HG--
extra : moz-landing-system : lando
2020-02-20 14:53:20 +00:00
Simon Giesecke 9350e6b741 Bug 1613985 - Use MOZ_COUNTED_DEFAULT_CTOR_*/MOZ_COUNTED_DTOR_* macros. r=froydnj
This removes the need for explicit #ifdef NS_BUILD_REFCNT_LOGGING without
introducing user-defined destructors when it is not defined.

Also, some uses of virtual for declaring destructors are replaced by the
appropriate override declaration through these changes.

Differential Revision: https://phabricator.services.mozilla.com/D62604

--HG--
extra : moz-landing-system : lando
2020-02-20 11:40:14 +00:00
Dorel Luca d5f9df8ee1 Backed out 2 changesets (bug 1613985) for Build bustage on Windows2012. CLOSED TREE
Backed out changeset fd177b40b561 (bug 1613985)
Backed out changeset fb6d62b7f28d (bug 1613985)
2020-02-19 22:22:41 +02:00
Simon Giesecke 59b23375c0 Bug 1613985 - Use MOZ_COUNTED_DEFAULT_CTOR_*/MOZ_COUNTED_DTOR_* macros. r=froydnj
This removes the need for explicit #ifdef NS_BUILD_REFCNT_LOGGING without
introducing user-defined destructors when it is not defined.

Also, some uses of virtual for declaring destructors are replaced by the
appropriate override declaration through these changes.

Differential Revision: https://phabricator.services.mozilla.com/D62604

--HG--
extra : moz-landing-system : lando
2020-02-19 18:05:38 +00:00
Olli Pettay 62617da1ea Bug 1615607 - Consider to always treat high priority runnables as the highest priority runnables, r=farre
The patch removes the tad odd interleave behavior from the main thread and makes RefreshDriver to give
at least a tiny bit time for non-high priority tasks.
Given the recent change to have similar block-until behavior in child and parent process, this should work
consistently in all the processes.

Differential Revision: https://phabricator.services.mozilla.com/D63098

--HG--
extra : moz-landing-system : lando
2020-02-18 16:03:37 +00:00
Nathan Froyd e2ce985f34 Bug 1615072 - don't trigger the deadlock detector from static initializers for RWLock; r=mccr8
This change is a little gross, because we don't totally control where
the statically initialized instances of `RWLock` live, due to its uses
in third-party libraries.

Differential Revision: https://phabricator.services.mozilla.com/D62936

--HG--
extra : moz-landing-system : lando
2020-02-14 21:44:05 +00:00
Simon Giesecke b50347f917 Bug 1611415 - Prefer using std::move over forget. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D60980

--HG--
extra : moz-landing-system : lando
2020-02-13 14:38:48 +00:00
shindli 91aa0518dd Backed out changeset 0c982bc69cb3 (bug 1611415) for causing build bustages in /builds/worker/workspace/build/src/obj-firefox/dist/include/nsCOMPtr CLOSED TREE 2020-02-12 20:13:29 +02:00
Simon Giesecke f604a47fa5 Bug 1611415 - Applied FixItHints from mozilla-non-std-move. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D60980

--HG--
extra : moz-landing-system : lando
2020-02-12 17:24:41 +00:00
Jeff Muizelaar 34db7ac1fa Bug 1613091. Use the platform default stack size for unoptimized builds. r=glandium
Without this we can run into stack overflows caused by unoptimized Rust
code.

Differential Revision: https://phabricator.services.mozilla.com/D62476

--HG--
extra : moz-landing-system : lando
2020-02-12 00:48:01 +00:00
Simon Giesecke 30984f7bab Bug 1613985 - Use default for equivalent-to-default constructors/destructors in xpcom. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D62543

--HG--
extra : moz-landing-system : lando
2020-02-12 11:13:33 +00:00
Kristen Wright cc862d2d30 Bug 1539944 - Get rid of NS_NewThread r=froydnj
Gets rid of `NS_NewThread`. Where it was used in testing, I gave the new named threads names relevant to their tests.

Differential Revision: https://phabricator.services.mozilla.com/D62475

--HG--
extra : source : 541b98270c9985c5bd3569ff3ff8bc6c3d3c650a
2020-02-11 21:01:56 +00:00
Ciure Andrei 0ddf5384e0 Backed out changeset 541b98270c99 (bug 1539944) for causing bc leaks CLOSED TREE 2020-02-12 03:23:15 +02:00
Kristen Wright e40c296db4 Bug 1539944 - Get rid of NS_NewThread r=froydnj
Gets rid of `NS_NewThread`. Where it was used in testing, I gave the new named threads names relevant to their tests.

Differential Revision: https://phabricator.services.mozilla.com/D62475

--HG--
extra : moz-landing-system : lando
2020-02-11 21:01:56 +00:00
Simon Giesecke 884563052a Bug 1614395 - MozPromiseHolder::operator=(MozPromiseHolder&&) shouldn't copy its mPromise member. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D62299

--HG--
extra : moz-landing-system : lando
2020-02-10 17:20:23 +00:00
Emilio Cobos Álvarez 256c124f94 Bug 1609996 - Reorder some includes affected by the previous patches. r=froydnj
This was done by:

This was done by applying:

```
diff --git a/python/mozbuild/mozbuild/code-analysis/mach_commands.py b/python/mozbuild/mozbuild/code-analysis/mach_commands.py
index 789affde7bbf..fe33c4c7d4d1 100644
--- a/python/mozbuild/mozbuild/code-analysis/mach_commands.py
+++ b/python/mozbuild/mozbuild/code-analysis/mach_commands.py
@@ -2007,7 +2007,7 @@ class StaticAnalysis(MachCommandBase):
         from subprocess import Popen, PIPE, check_output, CalledProcessError

         diff_process = Popen(self._get_clang_format_diff_command(commit), stdout=PIPE)
-        args = [sys.executable, clang_format_diff, "-p1", "-binary=%s" % clang_format]
+        args = [sys.executable, clang_format_diff, "-p1", "-binary=%s" % clang_format, '-sort-includes']

         if not output_file:
             args.append("-i")
```

Then running `./mach clang-format -c <commit-hash>`

Then undoing that patch.

Then running check_spidermonkey_style.py --fixup

Then running `./mach clang-format`

I had to fix four things:

 * I needed to move <utility> back down in GuardObjects.h because I was hitting
   obscure problems with our system include wrappers like this:

0:03.94 /usr/include/stdlib.h:550:14: error: exception specification in declaration does not match previous declaration
0:03.94 extern void *realloc (void *__ptr, size_t __size)
0:03.94              ^
0:03.94 /home/emilio/src/moz/gecko-2/obj-debug/dist/include/malloc_decls.h:53:1: note: previous declaration is here
0:03.94 MALLOC_DECL(realloc, void*, void*, size_t)
0:03.94 ^
0:03.94 /home/emilio/src/moz/gecko-2/obj-debug/dist/include/mozilla/mozalloc.h:22:32: note: expanded from macro 'MALLOC_DECL'
0:03.94     MOZ_MEMORY_API return_type name##_impl(__VA_ARGS__);
0:03.94                                ^
0:03.94 <scratch space>:178:1: note: expanded from here
0:03.94 realloc_impl
0:03.94 ^
0:03.94 /home/emilio/src/moz/gecko-2/obj-debug/dist/include/mozmemory_wrap.h:142:41: note: expanded from macro 'realloc_impl'
0:03.94 #define realloc_impl mozmem_malloc_impl(realloc)

   Which I really didn't feel like digging into.

 * I had to restore the order of TrustOverrideUtils.h and related files in nss
   because the .inc files depend on TrustOverrideUtils.h being included earlier.

 * I had to add a missing include to RollingNumber.h

 * Also had to partially restore include order in JsepSessionImpl.cpp to avoid
   some -WError issues due to some static inline functions being defined in a
   header but not used in the rest of the compilation unit.

Differential Revision: https://phabricator.services.mozilla.com/D60327

--HG--
extra : moz-landing-system : lando
2020-01-20 16:19:48 +00:00
Emilio Cobos Álvarez aa3a695712 Bug 1609996 - Remove mozilla/Move.h. r=froydnj
rg -l 'mozilla/Move.h' | xargs sed -i 's/#include "mozilla\/Move.h"/#include <utility>/g'

Further manual fixups and cleanups to the include order incoming.

Differential Revision: https://phabricator.services.mozilla.com/D60323

--HG--
extra : moz-landing-system : lando
2020-01-20 16:18:20 +00:00
Boris Zbarsky e42c854c27 Bug 1607953. Refactor our runnable metrics and long task code to make it more robust and correct. r=jesup,tarek,froydnj
The idea is to use the slice-accounting setup from the performance counters for
idle tasks as well, and fix the various bugs we have when nested event loops
are involved.

The bit in nsThread::SizeOfEventQueues that counted memory for
mCurrentPerformanceCounter was wrong all along, I think: the docgroup that owns
the performance counter should account for it.

Differential Revision: https://phabricator.services.mozilla.com/D59596

--HG--
extra : moz-landing-system : lando
2020-01-13 22:31:05 +00:00
Emilio Cobos Álvarez cde7beaaa4 Bug 1608064 - Replace Is{Rvalue,Lvalue,}Reference with <type_traits> equivalents. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D59309

--HG--
extra : moz-landing-system : lando
2020-01-10 10:40:34 +00:00