Commit Graph
150 Commits
Author SHA1 Message Date
Peter Van der Beken d0c2f0f364 Bug 1911817 - PromiseRejectionEvent should store promise as object. r=webidl,smaug
Differential Revision: https://phabricator.services.mozilla.com/D218754
2024-08-07 16:57:27 +00:00
Emilio Cobos Álvarez 2808374848 Bug 1892257 - Move nsStringBuffer to mfbt. r=nika,xpcom-reviewers,glandium
Inline Create() and Realloc() so that we don't get negative leaks, since
were that code end up in mozglue, it wouldn't have access to the logging
machinery.

Differential Revision: https://phabricator.services.mozilla.com/D209663
2024-05-14 14:24:26 +00:00
Matthew Gaudet a24e908bb6 Bug 1866385 - Re-enqeue suppressed microtasks when destroying SavedMicroTaskQueue r=arai
I have yet to be able to produce an automated test for things under the control of
nsAutoSyncOperation; this patch has been verified locally using the following STR,
modified from [1].

STR for Mac

 1. Go to https://debugger-crash-before-print.glitch.me/
 2. Open debugger
 3. Press Command + P to trigger print for the page (This should cause the debugger to pause on line 2)
 4. Go to the console, and enter Promise.resolve(10).then(() => {}).
 5. Resume execution and cancel the print preview.
 5. Tab Crashes

[1]: https://bugzilla.mozilla.org/show_bug.cgi?id=1849675#c3

Differential Revision: https://phabricator.services.mozilla.com/D195900
2023-12-08 21:56:02 +00:00
Adam Brouwers-Harries 4a2ba69cbc Bug 1421651 - Remove obseleted timeline and TimelineMarker code r=canaltinova,webidl,devtools-reviewers,saschanaz,smaug,ochameau
This patch removes the old docshell timeline and timeline markers codebase and replaces them with equivalent Gecko profiler marker. This patch also fixes Bug 1834143, which is a subset of 1421651.

Differential Revision: https://phabricator.services.mozilla.com/D184217
2023-10-24 15:18:12 +00:00
Narcis Beleuzu 67b61b8b2c Backed out changeset 714aaf6484fb (bug 1421651) for causing Bug 1860719. CLOSED TREE 2023-10-24 17:31:02 +03:00
Adam Brouwers-Harries 720e582a3a Bug 1421651 - Remove obseleted timeline and TimelineMarker code r=canaltinova,webidl,devtools-reviewers,saschanaz,smaug,ochameau
This patch removes the old docshell timeline and timeline markers codebase and replaces them with equivalent Gecko profiler marker. This patch also fixes Bug 1834143, which is a subset of 1421651.

Differential Revision: https://phabricator.services.mozilla.com/D184217
2023-10-23 13:55:50 +00:00
Emilio Cobos Álvarez 3bbfb2e943 Bug 1817122 - Make AsyncEventDispatcher(Event) take ownership of the event. r=smaug,media-playback-reviewers,padenot
Differential Revision: https://phabricator.services.mozilla.com/D190059
2023-10-04 19:37:39 +00:00
Jon Coppeard 4963442a6c Bug 1813556 - Expose finalization registry callback objects to active JS r=sfink
Differential Revision: https://phabricator.services.mozilla.com/D168423
2023-02-01 09:07:23 +00:00
Olli Pettay 3230b4436d Bug 1802395, remove an unneeded member variable, r=edgar
Differential Revision: https://phabricator.services.mozilla.com/D163209
2022-11-29 20:00:13 +00:00
Butkovits Atila a114c79891 Backed out changeset 71f3b5ae4779 (bug 1802395) for causing bustages at CycleCollectedJSContext.h. CLOSED TREE 2022-11-28 23:58:15 +02:00
Olli Pettay 593ceec2c2 Bug 1802395, remove an unneeded member variable, r=edgar
Differential Revision: https://phabricator.services.mozilla.com/D163209
2022-11-28 21:00:34 +00:00
Steve Fink c6b081c4d7 Bug 1661293 - Move idle-time nursery GCs to a new nsJSContext::MaybePokeGC r=jonco,smaug
Differential Revision: https://phabricator.services.mozilla.com/D100367
2022-06-06 22:53:11 +00:00
Norisz Fay edbfe1d4f4 Backed out 6 changesets (bug 1661293) for causing Bug 1758370 CLOSED TREE
Backed out changeset 8f4d646a4bf6 (bug 1661293)
Backed out changeset ec817d9e8a17 (bug 1661293)
Backed out changeset efd35f1d9bd5 (bug 1661293)
Backed out changeset 00d93cc6125f (bug 1661293)
Backed out changeset 77b0b0003ca0 (bug 1661293)
Backed out changeset 04443fa474ac (bug 1661293)
2022-03-23 17:04:22 +02:00
Steve Fink 3b8f3004c2 Bug 1661293 - Move idle-time nursery GCs to a new nsJSContext::MaybePokeGC r=jonco,smaug
Differential Revision: https://phabricator.services.mozilla.com/D100367
2022-03-03 04:21:47 +00:00
Jon Coppeard 1d544f0995 Bug 1744059 - Rename UnsafeTraceRoot to TraceRoot as it is not unsafe to use r=sfink,mccr8
Differential Revision: https://phabricator.services.mozilla.com/D132969
2021-12-07 09:02:36 +00:00
Florian Quèze 0ecc039d92 Bug 1727137 - Require IdleRunnable instances to have a name, r=bas.
Differential Revision: https://phabricator.services.mozilla.com/D123357
2021-08-31 13:41:45 +00:00
Sandor Molnar b7013f1d45 Backed out 3 changesets (bug 1727137, bug 1727517, bug 1727756) for causing build bustages. CLOSED TREE
Backed out changeset 8796b374824b (bug 1727756)
Backed out changeset 49d136788ebd (bug 1727517)
Backed out changeset 092525a3d26a (bug 1727137)
2021-08-30 19:39:16 +03:00
Florian Quèze 172ef614b4 Bug 1727137 - Require IdleRunnable instances to have a name, r=bas.
Differential Revision: https://phabricator.services.mozilla.com/D123357
2021-08-30 16:09:49 +00:00
Olli Pettay 7ac6295b85 Bug 1724777, optimize suppressed MicroTask handling, r=mccr8
The test is in theory racy, but trying to limit the cases when it might behave badly
by running it on opt desktop builds only. Without the patch the 'period' check takes over 400ms locally and with the
patch 1-3ms.

The changes are just trying to optimize execution, not change the behavior.
Use of SuppressedMicroTasks is perhaps a bit odd, but it helps keeping
SavedMicroTaskQueue and similar code simple.

Differential Revision: https://phabricator.services.mozilla.com/D122290
2021-08-12 16:01:08 +00:00
Simon Giesecke 95c38cc6b8 Bug 1691913 - Rename nsBaseHashtable::Put to InsertOrUpdate. r=xpcom-reviewers,necko-reviewers,jgilbert,dragana,nika
This makes the naming more consistent with other functions called
Insert and/or Update. Also, it removes the ambiguity whether
Put expects that an entry already exists or not, in particular because
it differed from nsTHashtable::PutEntry in that regard.

Differential Revision: https://phabricator.services.mozilla.com/D105473
2021-02-26 09:11:46 +00:00
Markus Stange 9602cdd305 Bug 1688308 - Add a marker for "Perform microtasks". r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D102804
2021-01-22 21:43:16 +00:00
Karl Tomlinson 7afb800388 Bug 1119956 derive from DiscardableRunnable instead of CancelableRunnable when Cancel() is not supported r=asuth,sg
Differential Revision: https://phabricator.services.mozilla.com/D98118
2020-12-03 09:04:44 +00:00
Karl Tomlinson 54446d9be0 Bug 1119956 introduce DiscardableRunnable for tasks that might not run but might not implement cancellation r=asuth,sg
Classes that inherit from DiscardableRunnable are only promising that it is OK
for Run() to be skipped, rather than promising that Cancel() is effective.

Differential Revision: https://phabricator.services.mozilla.com/D98117
2020-12-02 09:36:25 +00:00
Karl Tomlinson c691dd891a Bug 1119956 add override and use NS_IMETHOD for in-class definition r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D98116
2020-12-01 07:11:44 +00:00
Olli Pettay 66a8694bfe Bug 1676997 - null check callback in PromiseJobRunnable::Suppressed(), r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D96949
2020-11-13 14:27:16 +00:00
Jon Coppeard 9da8e270bb Bug 1648453 - Use CallbackObject to trigger cleanup while setting up the incumbent global r=smaug
This also factors out FinalizationRegistry support into a separate class.

The JS engine now passes a callback function and the incumbent global which are recorded in QueueCallback. FinalizationRegistryCleanup::DoCleanup creates a CallbackObject can calls it immediately (I originally tried creating it in QueueCallback but there were problems because this is called during GC).

I coped most of this from the way promise reaction jobs work. I added FinalizationRegistryCleanupCallback; I don't know if that's overkill.

Differential Revision: https://phabricator.services.mozilla.com/D83614
2020-07-17 17:34:46 +00:00
Razvan Maries 90e72f44da Backed out 4 changesets (bug 1648453) for hazzard bustages on CycleCollectedJSContext.cpp. CLOSED TREE
Backed out changeset 9598a75cca47 (bug 1648453)
Backed out changeset 473e7d55a25e (bug 1648453)
Backed out changeset 0afcee198ecd (bug 1648453)
Backed out changeset 623252539387 (bug 1648453)
2020-07-17 00:01:11 +03:00
Jon Coppeard f93f627bf0 Bug 1648453 - Use CallbackObject to trigger cleanup while setting up the incumbent global r=smaug
This also factors out FinalizationRegistry support into a separate class.

The JS engine now passes a callback function and the incumbent global which are recorded in QueueCallback. FinalizationRegistryCleanup::DoCleanup creates a CallbackObject can calls it immediately (I originally tried creating it in QueueCallback but there were problems because this is called during GC).

I coped most of this from the way promise reaction jobs work. I added FinalizationRegistryCleanupCallback; I don't know if that's overkill.

Differential Revision: https://phabricator.services.mozilla.com/D83614
2020-07-16 12:54:55 +00:00
Mihai Alexandru Michis 0a1702d180 Backed out 3 changesets (bug 1648453) for causing bustages in AccessCheck.h
CLOSED TREE

Backed out changeset 8b21977bb2df (bug 1648453)
Backed out changeset 4cac71f274b8 (bug 1648453)
Backed out changeset a9ad01b4ab2e (bug 1648453)
2020-07-16 15:43:52 +03:00
Jon Coppeard 2cf29f1e25 Bug 1648453 - Use CallbackObject to trigger cleanup while setting up the incumbent global r=smaug
This also factors out FinalizationRegistry support into a separate class.

The JS engine now passes a callback function and the incumbent global which are recorded in QueueCallback. FinalizationRegistryCleanup::DoCleanup creates a CallbackObject can calls it immediately (I originally tried creating it in QueueCallback but there were problems because this is called during GC).

I coped most of this from the way promise reaction jobs work. I added FinalizationRegistryCleanupCallback; I don't know if that's overkill.

Differential Revision: https://phabricator.services.mozilla.com/D83614
2020-07-16 11:45:42 +00:00
Simon Giesecke 5dfac77431 Bug 1652002 - Remove some unnecessary includes from BindingUtils.h. r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D83098
2020-07-15 15:34:49 +00:00
Simon Giesecke a69d79b6db Bug 1648010 - Replace uses of NS_LITERAL_STRING/NS_LITERAL_CSTRING macros by _ns literals. r=geckoview-reviewers,jgilbert,agi,hsivonen,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D80860
2020-07-01 08:29:29 +00:00
Honza Bambas ca4a9d3b0c 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 51c123bb79 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 786961fdbb 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 057eeeade2 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
Jon Coppeard 9e29de3ec9 Bug 1633468 - Make dom/bindings/Codegen.py compare against JSID_VOID to detect uninitialized jsid members r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D72701
2020-04-28 18:12:12 +00:00
Andreas Farre 9509fc894a 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
2020-04-07 15:17:47 +00:00
Simon Giesecke 50c91e260d Bug 1622114 - Improve array manipulation in CleanupIDBTransactions. r=dom-workers-and-storage-reviewers,smaug,asuth
- Do not remove elements one-by-one but use remove-erase pattern.
- Move mPendingIDBTransactions array instead of copying.

Differential Revision: https://phabricator.services.mozilla.com/D67159
2020-03-19 12:55:12 +00:00
André Bargull 180f2bf3a2 Bug 1618258 - Part 1: Rename FinalizationGroup to FinalizationRegistry. r=jonco
Differential Revision: https://phabricator.services.mozilla.com/D66930
2020-03-16 10:41:08 +00:00
Simon Giesecke 9e7322117c Bug 1617628 - Hide nsBaseHashtable Put overloads in nsRefPtrHashtable subclass. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D63899
2020-02-25 17:03:36 +00:00
Simon Giesecke 9bcfd47601 Bug 1611415 - Prefer using std::move over forget. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D60980
2020-02-13 14:38:48 +00:00
shindli 6bb3487209 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 d45525793f Bug 1611415 - Applied FixItHints from mozilla-non-std-move. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D60980
2020-02-12 17:24:41 +00:00
Simon Giesecke 81bd203f46 Bug 1613985 - Use default for equivalent-to-default constructors/destructors in xpcom. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D62543
2020-02-12 11:13:33 +00:00
Sylvestre Ledru 9bd2328337 Bug 1519636 - Automatically reformat recent changes using clang-format r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D60354
2020-01-21 09:51:27 +00:00
Emilio Cobos Álvarez 778b011866 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
2020-01-20 16:19:48 +00:00
Emilio Cobos Álvarez 2efdea1ee5 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
2020-01-20 16:18:20 +00:00
Yoshi Cheng-Hao Huang b8b30f51d9 Bug 1609636 - Part 1: Add ClearKeptObjects API. r=jonco,smaug
From WeakRef proposal, [1], ECMAScript implementations are expected to call
ClearKeptObjects when a synchronous sequence of ECMAScript execution completes.

[1]: https://tc39.es/proposal-weakrefs/#sec-clear-kept-objects

Differential Revision: https://phabricator.services.mozilla.com/D60154
2020-01-20 12:49:11 +00:00
Jon Coppeard b754ea8e1e Bug 1596756 - Support FinalizationGroup objects in the browser r=mccr8
Add browser support for FinalizationGroup by setting the HostCleanupFinalizationGroupCallback in CycleCollectedJSContext.  The callback adds groups pending cleanup to a vector stored in a PersistentRooted.  A runnable is dispatched to call back into the JS engine and perform cleanup at a later time as a separate task.  Using AutoEntryScript reports errors to the console.

Differential Revision: https://phabricator.services.mozilla.com/D53248
2020-01-15 14:22:04 +00:00