gecko-dev/devtools/shared
Logan Smyth 25d491b792 Bug 1601179 - Enable async stacks but limit captured async stacks to debuggees. r=jorendorff,smaug
The 'asyncStack' flag on JS execution contexts is used as a general switch
to enable async stack capture across all locations in SpiderMonkey, but
this causes problems because it can at times be too much of a performance
burden to general and track all of these stacks.

Since the introduction of this option, we have only enabled it on Nightly
and DevEdition for non-mobile builds, which has left a lot of users unable
to take advantage of this data while debugging.

This patch enables async stack traces across all of Firefox, but introduces
a new pref to toggle the scope of the actual expensive part of async stacks,
which is _capturing_ them and keeping them alive in memory. The new pref
limits the capturing of async stack traces to only debuggees, unless an
explicit pref is flipped to capture async traces for all cases.

This means that while async stacks are technically enabled, and code could
manually capture a stack and pass it back to SpiderMonkey and see that stack
reflected in later captured stacks, SpiderMonkey itself and related async
DOM APIs, among others, will not capture stacks or pass them to SpiderMonkey,
so there should be no general change in performance by enabling the broader
feature itself, unless the user is actively debugging the page.

One effect of this patch is that if you have the debugger open and then close
it, objects that have async stacks associated with them will retain those
stacks and they will continue to show up in stack traces, no _new_ stacks
will be captured. jorendorff and I have decided that this is okay because
the expectation that the debugger fully revert every possible effect that it
could have on a page is a nice goal but not a strict requirement.

Differential Revision: https://phabricator.services.mozilla.com/D68503
2020-06-14 02:41:45 +00:00
..
acorn
compatibility Bug 1644618: Update MDN compat data. r=rcaliman 2020-06-10 17:16:12 +00:00
css Bug 1641324 Remove the layout.css.scrollbar-width.enabled and layout.css.scrollbar-color.enabled prefs r=emilio 2020-06-10 13:16:34 +00:00
discovery Bug 1620542 - Automatically fix ESLint errors in .eslintrc.js files. r=mossop 2020-03-07 10:09:44 +00:00
heapsnapshot Bug 1515419 - fixing ToNewCString (and ToNewUnicode as well) xpcom/string/nsReadableUtils.cpp r=froydnj,necko-reviewers,valentin 2020-05-17 06:58:48 +00:00
inspector Bug 1622996 - Refactor devtools codebase to use optional chaining (automated changes). r=jdescottes 2020-03-19 21:13:38 +00:00
jsbeautify
layout Bug 1622996 - Refactor devtools codebase to use optional chaining (automated changes). r=jdescottes 2020-03-19 21:13:38 +00:00
locales Bug 977244 - Make the rules view easier to navigate with a screen reader, r=yzen 2020-06-08 17:08:53 +00:00
node-properties
performance Bug 1622328 - add license info to all eslintrc files r=Standard8,webcompat-reviewers,miketaylr 2020-03-19 13:47:51 +00:00
performance-new Bug 1642677 - Pause the profiler before capturing a profile with remote profiling. r=gregtatum 2020-06-03 14:22:28 +00:00
platform
protocol Bug 1601179 - Enable async stacks but limit captured async stacks to debuggees. r=jorendorff,smaug 2020-06-14 02:41:45 +00:00
qrcode Bug 1620542 - Automatically fix ESLint errors in .eslintrc.js files. r=mossop 2020-03-07 10:09:44 +00:00
resources Bug 1625957: Add ResourceWatcher test for CSS changes. r=ochameau,rcaliman 2020-06-12 02:09:42 +00:00
screenshot Bug 1635360 - Fix :screenshot --help command. r=davidwalsh. 2020-05-27 14:42:29 +00:00
security Bug 1641496 - P6: Reenable some tests r=dragana,extension-reviewers,mixedpuppy 2020-06-04 22:56:38 +00:00
specs Bug 1620243 - Watch console messages resources from the server side. r=nchevobbe,jdescottes 2020-06-09 18:22:45 +00:00
sprintfjs
storage Bug 1622996 - Refactor devtools codebase to use optional chaining (automated changes). r=jdescottes 2020-03-19 21:13:38 +00:00
test-helpers Bug 1620542 - Automatically fix ESLint errors in .eslintrc.js files. r=mossop 2020-03-07 10:09:44 +00:00
tests Bug 1601179 - Enable async stacks but limit captured async stacks to debuggees. r=jorendorff,smaug 2020-06-14 02:41:45 +00:00
transport Backed out 2 changesets (bug 1625500) for multiple failures on a CLOSED TREE 2020-04-17 15:36:05 +03:00
webconsole Bug 1644966 - Change second parameter of ConsoleAPIListener to a function. r=jdescottes. 2020-06-12 10:09:29 +00:00
worker Bug 1470768 - Allow sourceURL to apply generally across all types of scripts. r=jlast 2020-04-27 02:13:54 +00:00
.eslintrc.js Bug 1622328 - add license info to all eslintrc files r=Standard8,webcompat-reviewers,miketaylr 2020-03-19 13:47:51 +00:00
accessibility.js
async-storage.js
async-utils.js
base-loader.js Backed out 2 changesets (bug 1622718) as requested by dev for causing Bug 1626727. 2020-04-03 06:03:25 +03:00
builtin-modules.js Bug 1624507 - Part 7: Simplify lazy service and require getters. r=ochameau 2020-03-30 08:24:40 +00:00
constants.js
content-observer.js
debounce.js
defer.js
DevToolsUtils.js Bug 1631358 - remove traces of CPOWs from devtools, r=jdescottes,loganfsmyth 2020-04-21 14:04:58 +00:00
dom-helpers.js
dom-node-constants.js
dom-node-filter-constants.js
event-emitter.js Bug 1622996 - Refactor devtools codebase to use optional chaining (automated changes). r=jdescottes 2020-03-19 21:13:38 +00:00
extend.js
flags.js Bug 1609201 - Clean up Services.obs observers on devtools loader destroy. r=jdescottes,ochameau 2020-03-16 06:47:04 +00:00
generate-uuid.js
indentation.js
indexed-db.js
jar.mn
l10n.js
loader-plugin-raw.jsm
Loader.jsm Backed out 2 changesets (bug 1622718) as requested by dev for causing Bug 1626727. 2020-04-03 06:03:25 +03:00
moz.build Bug 1635768 - Moved MDNCompatibility library to devtools/shared r=mtigley,daisuke 2020-05-20 12:54:10 +00:00
natural-sort.js
path.js
picker-constants.js
plural-form.js
protocol.js Bug 1622005 - Make RootFront more protocol.js-y .r=ochameau. 2020-03-16 17:29:25 +00:00
service-workers-debug-helper.js
system.js Bug 1614791 - Rename DebuggerServer to DevToolsServer. r=jdescottes 2020-02-17 10:28:24 +00:00
task.js
ThreadSafeDevToolsUtils.js Bug 1631358 - remove traces of CPOWs from devtools, r=jdescottes,loganfsmyth 2020-04-21 14:04:58 +00:00
throttle.js
wasm-source-map.js
webextension-fallback.html