Commit Graph
570 Commits
Author SHA1 Message Date
Jon Coppeard d77c0757f8 Bug 2042662 - Push bool return value down to CallbackTracer users to reduce stack usage slightly r=jandem
Looking at changes to generated code following bug 2039576 I can see a bunch of
extra stack save/load instructions on CallbackTracer::onEdge paths because this
can no longer tail call onChild. Pushing the return value through this should
remove six stack load/store instructions at the cost of a single move
instruction to set up the return value.

This is unlikely to make much difference to anything but I thought it was worth
a try.

Differential Revision: https://phabricator.services.mozilla.com/D303003
2026-05-28 12:40:08 +00:00
Jon Coppeard 7ec11ad0de Bug 2039576 - Part 1: Change the contract of traceWeak to not clear edges to dying things r=sfink
JSTracer::onFooEdge methods now return a bool, which is passed out from
TraceEdge methods. Sweeping tracers no longer clear edges whose targets are
dying.

Since the default trace functions no longer clear the edge, this it adds
TraceOrClearWeakEdge for cases where that's what you want.

Differential Revision: https://phabricator.services.mozilla.com/D300567
2026-05-22 19:01:02 +00:00
Jon Coppeard 3f245e549d Bug 2040304 - Part 2: Convert NoteWeakMapChildrenTracer to use generic tracer interface r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D301023
2026-05-19 08:36:28 +00:00
Jon Coppeard 4dfcb5b97d Bug 2040304 - Part 1: Convert TraversalTracer to generic tracer interface r=mccr8,sfink
This changes TraversalTracer to use the generic tracer setup.

I did some benchmarking locally (on macOS) and the results were very noisy.
Despite this it looks like this is a 10% improvement on median traversal rate.

Differential Revision: https://phabricator.services.mozilla.com/D301022
2026-05-19 08:36:24 +00:00
Sylvestre Ledru 13279e93a2 Bug 2036400 - Initialize uninitialized scalar fields in xpcom to fix Coverity uninitialized-scalar defects r=xpcom-reviewers,emilio
Differential Revision: https://phabricator.services.mozilla.com/D298148
2026-05-04 12:37:12 +00:00
Bas Schouten 802d95988e Bug 2035873: Ensure significantly more GC/CC probes report process-specific data. r=smaug,TravisLong
Differential Revision: https://phabricator.services.mozilla.com/D297581
2026-05-01 15:55:01 +00:00
agoloman ae549657c5 Revert "Bug 2035873: Ensure significantly more GC/CC probes report process-specific data. r=smaug,TravisLong" for causing xpc failires @test_TelemetryHistograms.js.
This reverts commit 966d14cf6e.
2026-04-30 18:50:02 +00:00
Bas Schouten 966d14cf6e Bug 2035873: Ensure significantly more GC/CC probes report process-specific data. r=smaug,TravisLong
Differential Revision: https://phabricator.services.mozilla.com/D297581
2026-04-30 17:42:49 +00:00
Atila Butkovits 7cc41b76c9 Revert "Bug 2035873: Ensure significantly more GC/CC probes report process-specific data. r=smaug" for causing failures at TestTelemetryMirrors.
This reverts commit 089574a134.
2026-04-30 10:37:01 +00:00
Bas Schouten 089574a134 Bug 2035873: Ensure significantly more GC/CC probes report process-specific data. r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D297581
2026-04-30 10:13:43 +00:00
Jon Coppeard ef59cc11ef Bug 2030636 - Move more cycle collector APIs to their own header file r=spidermonkey-reviewers,sfink
Differential Revision: https://phabricator.services.mozilla.com/D294419
2026-04-16 07:29:31 +00:00
Olli Pettay 58320a7b80 Bug 2024655, tweak reflector updating, r=jonco,sfink
Differential Revision: https://phabricator.services.mozilla.com/D290658
2026-04-08 09:50:57 +00:00
Serban Stanca 9361547c67 Revert "Bug 2024655, simplify reflector updating, r=mccr8,jonco" for causing xpcshell failures in test_ext_adoption_with_private_field_xrays.js.
This reverts commit 11e7de10f4.
2026-04-01 14:53:14 +00:00
Olli Pettay 11e7de10f4 Bug 2024655, simplify reflector updating, r=mccr8,jonco
Differential Revision: https://phabricator.services.mozilla.com/D290658
2026-04-01 13:11:27 +00:00
Olli Pettay d1ab660d27 Bug 2024442, don't leak nursery wrappers on failure, r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D290311
2026-03-31 19:00:04 +00:00
serge-sans-paille f81328e365 Bug 2023519 - Make our codebase modernize-use-equals-default + modernize-use-equals-delete -safe wrt. clang-tidy r=sylvestre,necko-reviewers,media-playback-reviewers,profiler-reviewers,dom-storage-reviewers,layout-reviewers,dom-worker-reviewers,valentin,jesup,padenot,edenchuang,emilio
The changeset has been generated automatically through:

    ./mach static-analysis check --output ./clang-tidy-bugprone.json --format json --fix

followed by manual adjustment when needed or when the auto-fixer bailed out.

This paves the way for Bug 2023527

Differential Revision: https://phabricator.services.mozilla.com/D287941
2026-03-22 08:35:47 +00:00
Alexandru Marc 04e5f74151 Revert "Bug 2023519 - Make our codebase modernize-use-equals-default + modernize-use-equals-delete -safe wrt. clang-tidy r=sylvestre,necko-reviewers,media-playback-reviewers,profiler-reviewers,dom-storage-reviewers,layout-reviewers,dom-worker-reviewers,valentin,jesup,padenot,edenchuang,emilio"
This reverts commit a64dec2665.
2026-03-19 17:29:58 +00:00
serge-sans-paille a64dec2665 Bug 2023519 - Make our codebase modernize-use-equals-default + modernize-use-equals-delete -safe wrt. clang-tidy r=sylvestre,necko-reviewers,media-playback-reviewers,profiler-reviewers,dom-storage-reviewers,layout-reviewers,dom-worker-reviewers,valentin,jesup,padenot,edenchuang,emilio
The changeset has been generated automatically through:

    ./mach static-analysis check --output ./clang-tidy-bugprone.json --format json --fix

followed by manual adjustment when needed or when the auto-fixer bailed out.

This paves the way for Bug 2023527

Differential Revision: https://phabricator.services.mozilla.com/D287941
2026-03-18 17:25:01 +00:00
Sylvestre Ledru 6149f49299 Bug 2023419 - Remove Emacs/Vim modelines from xpcom/ r=emilio
replaced by .editorconfig
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D287878
2026-03-16 17:22:07 +00:00
Florian Quèze 49c056baf4 Bug 2019756 - Include script URLs in CC graph descriptions for LoadedScript, Module and ModuleEnvironmentObject, r=mccr8,spidermonkey-reviewers,arai.
LoadedScript nodes in the CC graph now include their URI, e.g.
"LoadedScript resource://testing-common/FooTestUtils.sys.mjs" instead
of just "LoadedScript". Module and ModuleEnvironmentObject JS objects
now include their filename, e.g. "JS Object (Module - .../foo.sys.mjs)".

This makes leak retention paths from ShutdownLeakPathFinder much more
actionable since the root and intermediate module nodes now show which
script is responsible.

Differential Revision: https://phabricator.services.mozilla.com/D285130
2026-02-28 00:30:53 +00:00
Matthew Gaudet b24b7d3bb4 Bug 2014919 - Remove ShadowRealm integration code r=arai
Differential Revision: https://phabricator.services.mozilla.com/D283058
2026-02-20 17:05:47 +00:00
Matthew Gaudet 531efcecd6 Bug 2014919 - Remove DOM ShadowRealms support r=edgar,smaug,webidl,dom-worker-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D282071
2026-02-20 17:05:36 +00:00
agoloman 71879caf1d Revert "Bug 2014919: apply code formatting via Lando" for causing marionette failures @test_evalscript.html.
This reverts commit df3fdef2fe.

Revert "Bug 2014919 - Remove ShadowRealm integration code r=arai"

This reverts commit 38d1521df4.

Revert "Bug 2014919 - Remove testing for ShadowRealms r=dminor"

This reverts commit 4715ebd9c2.

Revert "Bug 2014919 - Remove JS support for Shadowrealms r=dminor"

This reverts commit 1d01568223.

Revert "Bug 2014919 - Remove DOM ShadowRealms support  r=edgar,smaug,webidl,dom-worker-reviewers"

This reverts commit 54dde4590a.
2026-02-19 22:58:33 +00:00
Matthew Gaudet 38d1521df4 Bug 2014919 - Remove ShadowRealm integration code r=arai
Differential Revision: https://phabricator.services.mozilla.com/D283058
2026-02-19 21:29:05 +00:00
Matthew Gaudet 54dde4590a Bug 2014919 - Remove DOM ShadowRealms support r=edgar,smaug,webidl,dom-worker-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D282071
2026-02-19 21:28:57 +00:00
Alexandru Marc cdf6e15d71 Revert "Bug 2014919 - Remove testing for ShadowRealms r=dminor" for causing mochitest failures @ test_shadowRealm.html
This reverts commit 0509c40c96.

Revert "Bug 2014919 - Remove JS support for Shadowrealms r=dminor"

This reverts commit 95ca58b094.

Revert "Bug 2014919 - Remove DOM ShadowRealms support  r=edgar,smaug,webidl,dom-worker-reviewers"

This reverts commit 9ba95b42a1.
2026-02-11 16:55:41 +00:00
Matthew Gaudet 9ba95b42a1 Bug 2014919 - Remove DOM ShadowRealms support r=edgar,smaug,webidl,dom-worker-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D282071
2026-02-11 15:41:22 +00:00
Nazım Can Altınova b126985aa2 Bug 2006192 - Make GCMinorMarker stack-based r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D279839
2026-01-21 16:30:49 +00:00
Markus Stange 891fdfc63d Bug 1977838 - Convert GCMinorMarker to use BaseMarkerType. r=bas,mstange
Differential Revision: https://phabricator.services.mozilla.com/D257713
2026-01-20 20:02:01 +00:00
Jon Coppeard 7eeae05a81 Bug 1994871 - Part 5: Add symbols to the CC graph r=mccr8
Differential Revision: https://phabricator.services.mozilla.com/D269957
2025-11-01 12:00:35 +00:00
serge-sans-paille 1667ec582b Bug 1995723 - Remove unused inclusion of mozilla/ArrayUtils.h r=necko-reviewers,application-update-reviewers,media-playback-reviewers,profiler-reviewers,win-reviewers,firefox-svg-reviewers,layout-reviewers,gstoll,canaltinova,bytesized,alwu,dholbert
Differential Revision: https://phabricator.services.mozilla.com/D269573
2025-10-23 07:30:37 +00:00
serge-sans-paille 7662b3abdc Bug 1994397 - Remove obsolete Unused.h header r=emilio,tschuster,geckoview-reviewers,extension-reviewers,application-update-reviewers,media-playback-reviewers,webrtc-reviewers,cookie-reviewers,places-reviewers,profiler-reviewers,win-reviewers,dom-storage-reviewers,permissions-reviewers,profiles-reviewers,toolkit-telemetry-reviewers,firefox-style-system-reviewers,firefox-svg-reviewers,layout-reviewers,timhuang,gstoll,TravisLong,bytesized,mstange,karlt,robwu,pehrsons,m_kato,jari,jhirsch
It is replaced by a standard-conforming cast to (void) which is
understood the same by the compiler.

In some cases this could be replaced by `[[maybe_unused]]` but for
expression whose value is ignored, this requires storing to a temporary
variable first, so not going that way.

One notable change is that marking an object of type already_AddRefed as
unused used to implicitly leak memory. This is now made explicit.

Most of the heavy lifting was done through:

    $ git grep -l '\<Unused\> <<' | xargs sed -i -e 's/Unused << /(void)/g'
    $ git grep -l mozilla/Unused.h | xargs sed -i -e '/mozilla\/Unused.h/ d'

Differential Revision: https://phabricator.services.mozilla.com/D268706
2025-10-21 19:36:01 +00:00
Cristina Horotan 8a1b1970b7 Revert "Bug 1994397 - Remove obsolete Unused.h header r=emilio,tschuster,geckoview-reviewers,extension-reviewers,application-update-reviewers,media-playback-reviewers,webrtc-reviewers,cookie-reviewers,places-reviewers,profiler-reviewers,win-reviewers,dom-storage-reviewers,permissions-reviewers,profiles-reviewers,toolkit-telemetry-reviewers,firefox-style-system-reviewers,firefox-svg-reviewers,layout-reviewers,timhuang,gstoll,TravisLong,bytesized,mstange,karlt,robwu,pehrsons,m_kato,jari,jhirsch" for causing Gtest failures on AlreadyAddRefed.h
This reverts commit e98adca292.
2025-10-21 16:16:29 +00:00
serge-sans-paille e98adca292 Bug 1994397 - Remove obsolete Unused.h header r=emilio,tschuster,geckoview-reviewers,extension-reviewers,application-update-reviewers,media-playback-reviewers,webrtc-reviewers,cookie-reviewers,places-reviewers,profiler-reviewers,win-reviewers,dom-storage-reviewers,permissions-reviewers,profiles-reviewers,toolkit-telemetry-reviewers,firefox-style-system-reviewers,firefox-svg-reviewers,layout-reviewers,timhuang,gstoll,TravisLong,bytesized,mstange,karlt,robwu,pehrsons,m_kato,jari,jhirsch
It is replaced by a standard-conforming cast to (void) which is
understood the same by the compiler.

In some cases this could be replaced by `[[maybe_unused]]` but for
expression whose value is ignored, this requires storing to a temporary
variable first, so not going that way.

One notable change is that marking an object of type already_AddRefed as
unused used to implicitly leak memory. This is now made explicit.

Most of the heavy lifting was done through:

    $ git grep -l '\<Unused\> <<' | xargs sed -i -e 's/Unused << /(void)/g'
    $ git grep -l mozilla/Unused.h | xargs sed -i -e '/mozilla\/Unused.h/ d'

Differential Revision: https://phabricator.services.mozilla.com/D268706
2025-10-21 15:05:17 +00:00
Cristina Horotan aab924e90d Revert "Bug 1994397 - Remove obsolete Unused.h header r=emilio,tschuster,geckoview-reviewers,extension-reviewers,application-update-reviewers,media-playback-reviewers,webrtc-reviewers,cookie-reviewers,places-reviewers,profiler-reviewers,win-reviewers,dom-storage-reviewers,permissions-reviewers,profiles-reviewers,toolkit-telemetry-reviewers,firefox-style-system-reviewers,firefox-svg-reviewers,layout-reviewers,timhuang,gstoll,TravisLong,bytesized,mstange,karlt,robwu,pehrsons,m_kato,jari,jhirsch" for causing build bustage at nsBrowserApp.cpp
This reverts commit fd0ffa193c.
2025-10-21 10:44:13 +00:00
serge-sans-paille fd0ffa193c Bug 1994397 - Remove obsolete Unused.h header r=emilio,tschuster,geckoview-reviewers,extension-reviewers,application-update-reviewers,media-playback-reviewers,webrtc-reviewers,cookie-reviewers,places-reviewers,profiler-reviewers,win-reviewers,dom-storage-reviewers,permissions-reviewers,profiles-reviewers,toolkit-telemetry-reviewers,firefox-style-system-reviewers,firefox-svg-reviewers,layout-reviewers,timhuang,gstoll,TravisLong,bytesized,mstange,karlt,robwu,pehrsons,m_kato,jari,jhirsch
It is replaced by a standard-conforming cast to (void) which is
understood the same by the compiler.

In some cases this could be replaced by `[[maybe_unused]]` but for
expression whose value is ignored, this requires storing to a temporary
variable first, so not going that way.

One notable change is that marking an object of type already_AddRefed as
unused used to implicitly leak memory. This is now made explicit.

Most of the heavy lifting was done through:

    $ git grep -l '\<Unused\> <<' | xargs sed -i -e 's/Unused << /(void)/g'
    $ git grep -l mozilla/Unused.h | xargs sed -i -e '/mozilla\/Unused.h/ d'

Differential Revision: https://phabricator.services.mozilla.com/D268706
2025-10-21 09:44:11 +00:00
Narcis Beleuzu e1e6bbb1c9 Revert "Bug 1994397 - Remove obsolete Unused.h header r=emilio,tschuster,geckoview-reviewers,extension-reviewers,application-update-reviewers,media-playback-reviewers,webrtc-reviewers,cookie-reviewers,places-reviewers,profiler-reviewers,win-reviewers,dom-storage-reviewers,permissions-reviewers,profiles-reviewers,toolkit-telemetry-reviewers,firefox-style-system-reviewers,firefox-svg-reviewers,layout-reviewers,timhuang,gstoll,TravisLong,bytesized,mstange,karlt,robwu,pehrsons,m_kato,jari,jhirsch" for causing bustages on Document.cpp
This reverts commit b23c15e927.
2025-10-21 06:34:58 +00:00
serge-sans-paille b23c15e927 Bug 1994397 - Remove obsolete Unused.h header r=emilio,tschuster,geckoview-reviewers,extension-reviewers,application-update-reviewers,media-playback-reviewers,webrtc-reviewers,cookie-reviewers,places-reviewers,profiler-reviewers,win-reviewers,dom-storage-reviewers,permissions-reviewers,profiles-reviewers,toolkit-telemetry-reviewers,firefox-style-system-reviewers,firefox-svg-reviewers,layout-reviewers,timhuang,gstoll,TravisLong,bytesized,mstange,karlt,robwu,pehrsons,m_kato,jari,jhirsch
It is replaced by a standard-conforming cast to (void) which is
understood the same by the compiler.

In some cases this could be replaced by `[[maybe_unused]]` but for
expression whose value is ignored, this requires storing to a temporary
variable first, so not going that way.

One notable change is that marking an object of type already_AddRefed as
unused used to implicitly leak memory. This is now made explicit.

Most of the heavy lifting was done through:

    $ git grep -l '\<Unused\> <<' | xargs sed -i -e 's/Unused << /(void)/g'
    $ git grep -l mozilla/Unused.h | xargs sed -i -e '/mozilla\/Unused.h/ d'

Differential Revision: https://phabricator.services.mozilla.com/D268706
2025-10-21 06:01:36 +00:00
Jon Coppeard 19e5fe9057 Bug 1994023 - Rework nsCycleCollector::FixGrayBits to avoid unnecessary work r=sfink,mccr8
Currently this can fix up the gray bits before doing a GC (which will calculate
them from scratch), as well as fix them up after a GC (which will do nothing).

Differential Revision: https://phabricator.services.mozilla.com/D268433
2025-10-15 07:31:52 +00:00
Kelsey Gilbert 351b02d1e2 Bug 1958371 - Reduce header-header-includes of e.g. ScriptLoadRequest.h. r=mccr8,spidermonkey-reviewers,arai
Differential Revision: https://phabricator.services.mozilla.com/D244409
2025-09-09 19:03:45 +00:00
Nazım Can Altınova 39f950e29b Bug 1980588 - Make the GCMajor timings field hidden r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D259564
2025-08-27 22:02:46 +00:00
Jon Coppeard cf3882e9d4 Bug 1982328 - Part 8: Report script private to cycle collector by storing it in the first slot r=smaug
We can simplify CycleCollectedJSRuntime::NoteGCThingXPCOMChildren and remove
the JS::MaybeGetScriptPrivate API if we store the script private in the first
slot of the script source object and use the JSClass flag to indicate this to
the cycle collector.

Differential Revision: https://phabricator.services.mozilla.com/D260671
2025-08-13 14:16:55 +00:00
Jon Coppeard c377b2cc13 Bug 1978751 - Stop collecting all zones for internally triggered GCs r=mccr8
If a GC has been triggered internally by the JS engine the cycle collector will
likely not have any zones waiting. The patch stops a full GC being triggered in
this case.

Differential Revision: https://phabricator.services.mozilla.com/D258359
2025-07-23 16:40:15 +00:00
Lando 954b7a4e44 Bug 1977364: apply code formatting via Lando
# ignore-this-changeset
2025-07-23 07:43:07 +00:00
Tom Schuster 652c1798fb Bug 1977364 - Support creating a JSErrorReport from DOMException objects to maintain the same error messages. r=spidermonkey-reviewers,dom-core,mccr8,jandem
Differential Revision: https://phabricator.services.mozilla.com/D257487
2025-07-23 07:42:48 +00:00
Serban Stanca 6817c74967 Revert "Bug 1977842 - Add checks which catch a missing TranslateMarkerInputToSchema method on non-Windows. r=bas,profiler-reviewers,canaltinova" for causing fenix failures.
This reverts commit 4cb834ff88.

This reverts commit c18a75821c.

This reverts commit a271fc6634.
2025-07-18 04:22:54 +00:00
Markus Stange c18a75821c Bug 1977838 - Convert GCMinorMarker to use BaseMarkerType. r=bas
Differential Revision: https://phabricator.services.mozilla.com/D257713
2025-07-18 00:14:52 +00:00
Matthew Gaudet c880236f9e Bug 1969445 - Don't report OOM telemetry if the associated global isn't done setting up r=mccr8,jandem
Differential Revision: https://phabricator.services.mozilla.com/D251924
2025-06-02 20:56:40 +00:00
Matthew Gaudet f0cb162051 Bug 1964451 - Add use counters for OOM handling r=sfink,mccr8
So the goal here is that we get OOM data where processes survive long enough
send telemetry. To get the case where processes -crash- we'll also have to
get crash data. See Bug 1964092 for that half.

(Modified to include robustness changes reviewed in D250467)

Differential Revision: https://phabricator.services.mozilla.com/D248083
2025-05-26 20:08:06 +00:00
Cristina Horotan 1f1ce5eb80 Revert "Bug 1964451 - Add use counters for OOM handling r=sfink,mccr8" on request
This reverts commit 7ae56a0292.
2025-05-21 20:14:38 +00:00