gecko-dev/dom/ipc
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
..
fuzztest
tests Bug 1601179 - Enable async stacks but limit captured async stacks to debuggees. r=jorendorff,smaug 2020-06-14 02:41:45 +00:00
BrowserBridgeChild.cpp Bug 1637088 - Delay creating BrowserBridgeChild until after new PBrowser has been created, r=farre,emilio 2020-05-25 06:06:30 +00:00
BrowserBridgeChild.h Bug 1637088 - Delay creating BrowserBridgeChild until after new PBrowser has been created, r=farre,emilio 2020-05-25 06:06:30 +00:00
BrowserBridgeHost.cpp Bug 1639195 - Part 1: Make BrowserChild::RecvLoadURL() to use the correct triggering princpal. r=ckerschb,mattwoodrow 2020-05-19 20:22:34 +00:00
BrowserBridgeHost.h Bug 1639195 - Part 1: Make BrowserChild::RecvLoadURL() to use the correct triggering princpal. r=ckerschb,mattwoodrow 2020-05-19 20:22:34 +00:00
BrowserBridgeParent.cpp Bug 1637088 - Delay creating BrowserBridgeChild until after new PBrowser has been created, r=farre,emilio 2020-05-25 06:06:30 +00:00
BrowserBridgeParent.h Bug 1631405 - Make sure we initialize all fields of WindowGlobalParent in the constructor. r=nika 2020-05-27 00:27:30 +00:00
BrowserChild.cpp Backed out 10 changesets (bug 1508306, bug 1640019) for bc failures on browser_autoOpen.js . CLOSED TREE 2020-06-12 22:47:50 +03:00
BrowserChild.h Backed out 10 changesets (bug 1508306, bug 1640019) for bc failures on browser_autoOpen.js . CLOSED TREE 2020-06-12 22:47:50 +03:00
BrowserHost.cpp Bug 1156934 - Notify all content processes when LookAndFeel changes. r=jesup 2020-05-23 14:28:40 +00:00
BrowserHost.h Bug 1639195 - Part 1: Make BrowserChild::RecvLoadURL() to use the correct triggering princpal. r=ckerschb,mattwoodrow 2020-05-19 20:22:34 +00:00
BrowserParent.cpp Bug 1642991 - Use RemoveElementsBy where easily possible. r=froydnj 2020-06-08 09:01:48 +00:00
BrowserParent.h Bug 1639833 - IntrisincStoragePrincipal should always be partitioned - part 4 - Renaming storage access permission methods, r=dimi 2020-06-03 06:12:06 +00:00
ClonedErrorHolder.cpp Bug 1643049 - Fix string usage in ClonedErrorHolder::Init. r=mccr8 2020-06-03 19:16:51 +00:00
ClonedErrorHolder.h Bug 1558520, rework remote controller to use JSWindowActor instead of having the browser have a controller, r=smaug 2020-03-12 16:47:57 +00:00
CoalescedInputData.h
CoalescedMouseData.cpp
CoalescedMouseData.h
CoalescedWheelData.cpp
CoalescedWheelData.h
ColorPickerParent.cpp
ColorPickerParent.h Bug 1613985 - Use default for equivalent-to-default constructors/destructors in dom/ipc. r=smaug 2020-03-06 09:11:40 +00:00
components.conf
ContentChild.cpp Backed out changeset 09ce524559da (bug 1597562) for failures in awsy/test_base_memory_usage.py. CLOSED TREE 2020-06-11 14:21:51 +03:00
ContentChild.h Bug 1640998 - part9 : use MediaControlKey to replace MediaControlKeysEvent r=chunmin,agi,geckoview-reviewers 2020-06-09 02:59:57 +00:00
ContentParent.cpp Backed out 10 changesets (bug 1508306, bug 1640019) for bc failures on browser_autoOpen.js . CLOSED TREE 2020-06-12 22:47:50 +03:00
ContentParent.h Bug 1642344 - remove unused dom.testing.ignore_ipc_principal pref. r=KrisWright 2020-06-09 14:45:58 +00:00
ContentProcess.cpp Bug 1602635 - [macOS] Remove security.sandbox.content.mac.earlyinit and the old sandbox startup code paths r=spohl 2020-03-17 18:29:03 +00:00
ContentProcess.h Bug 1613985 - Use default for equivalent-to-default constructors/destructors in dom/ipc. r=smaug 2020-03-06 09:11:40 +00:00
ContentProcessManager.cpp Backed out 10 changesets (bug 1508306, bug 1640019) for bc failures on browser_autoOpen.js . CLOSED TREE 2020-06-12 22:47:50 +03:00
ContentProcessManager.h Bug 1613985 - Use MOZ_COUNTED_DEFAULT_CTOR_*/MOZ_COUNTED_DTOR_* macros. r=froydnj 2020-02-20 11:40:14 +00:00
CSPMessageUtils.cpp Bug 1627859 - Convert nsIContentSecurityPolicy* IPDL serialization to use CSPInfo. r=ckerschb 2020-04-10 22:13:58 +00:00
CSPMessageUtils.h
DocShellMessageUtils.cpp Bug 1600545 - Remove useless inclusions of header files generated from IDL files in dom/ r=Ehsan 2019-12-06 09:24:56 +00:00
DocShellMessageUtils.h Bug 1588791 - Make fission iframes honor and deal with the scrolling attribute. r=mattwoodrow 2020-01-13 11:30:44 +00:00
DOMTypes.ipdlh Bug 1643493 - Remove dead ParentShowInfo::fullscreenAllowed. r=mattwoodrow 2020-06-05 00:40:59 +00:00
EffectsInfo.h
FilePickerParent.cpp Bug 1613985 - Use default for equivalent-to-default constructors/destructors in dom/ipc. r=smaug 2020-03-06 09:11:40 +00:00
FilePickerParent.h Bug 1613985 - Use default for equivalent-to-default constructors/destructors in dom/ipc. r=smaug 2020-03-06 09:11:40 +00:00
IdType.h
jar.mn Bug 1630691: Part 1 - Get rid of most of the remaining mozbrowser API. r=nika,mtigley,bradwerth 2020-04-29 19:29:06 +00:00
JSActor.cpp Bug 1601179 - Enable async stacks but limit captured async stacks to debuggees. r=jorendorff,smaug 2020-06-14 02:41:45 +00:00
JSActor.h Bug 1580448 - Rename JSWindowActor into JSActor;r=nika 2020-04-30 16:42:53 +00:00
JSActorService.cpp Bug 1519636 - Reformat recent changes to the Google coding style r=andi 2020-05-09 14:51:53 +00:00
JSActorService.h Bug 1580448 - JSProcessActor API;r=nika 2020-04-30 16:49:50 +00:00
JSProcessActorChild.cpp Bug 1580448 - JSProcessActor{Child, Parent}::AfterDestroy;r=nika 2020-04-30 16:20:21 +00:00
JSProcessActorChild.h Bug 1580448 - JSProcessActor{Child, Parent}::AfterDestroy;r=nika 2020-04-30 16:20:21 +00:00
JSProcessActorParent.cpp Bug 1593186 - Invoke JS{Parent, Window}Actor.actorCreated;r=nika 2020-05-12 07:55:39 +00:00
JSProcessActorParent.h Bug 1580448 - JSProcessActor{Child, Parent}::AfterDestroy;r=nika 2020-04-30 16:20:21 +00:00
JSProcessActorProtocol.cpp Bug 1626570 - Use CopyableTArray in ipdlc as member type for now. r=nika 2020-05-07 08:11:08 +00:00
JSProcessActorProtocol.h Bug 1580448 - JSProcessActor API;r=nika 2020-04-30 16:49:50 +00:00
JSWindowActorChild.cpp Bug 1580448 - Rename JSWindowActor into JSActor;r=nika 2020-04-30 16:42:53 +00:00
JSWindowActorChild.h Bug 1580448 - JSProcessActor API;r=nika 2020-04-30 16:49:50 +00:00
JSWindowActorParent.cpp Bug 1631405 - Move nsISecureBrowserUI to be owned by the canonical browsing context instead of docshell. r=nika,ckerschb,Gijs,webcompat-reviewers,twisniewski 2020-05-27 00:28:59 +00:00
JSWindowActorParent.h Bug 1580448 - Rename JSWindowActor into JSActor;r=nika 2020-04-30 16:42:53 +00:00
JSWindowActorProtocol.cpp Bug 1626570 - Use CopyableTArray in ipdlc as member type for now. r=nika 2020-05-07 08:11:08 +00:00
JSWindowActorProtocol.h Bug 1580448 - JSProcessActor API;r=nika 2020-04-30 16:49:50 +00:00
ManifestMessagesChild.jsm Bug 1625384 - Remove window.onappinstalled event, as it was never used or shipped r=baku 2020-03-27 08:28:09 +00:00
MaybeDiscarded.h Backed out 6 changesets (bug 1626404) for frequent timeouts on test_postMessage_onOther.html CLOSED TREE 2020-04-09 11:07:40 +03:00
MemMapSnapshot.cpp
MemMapSnapshot.h
MemoryReportRequest.cpp Bug 1613985 - Use default for equivalent-to-default constructors/destructors in dom/ipc. r=smaug 2020-03-06 09:11:40 +00:00
MemoryReportRequest.h
MemoryReportTypes.ipdlh
MMPrinter.cpp Bug 1626774 - Took out redundant return statement at the end of MMPrinter::PrintImpl() function. r=tjr 2020-04-11 07:53:57 +00:00
MMPrinter.h
moz.build Bug 1631405 - Make sure we initialize all fields of WindowGlobalParent in the constructor. r=nika 2020-05-27 00:27:30 +00:00
nsIContentChild.idl Bug 1580448 - nsIContent{Child, Parent}::getActor;r=nika 2020-04-30 16:43:48 +00:00
nsIContentParent.idl Bug 1580448 - nsIContent{Child, Parent}::getActor;r=nika 2020-04-30 16:43:48 +00:00
nsIHangReport.idl
nsIRemoteWebProgress.idl
nsIRemoteWebProgressRequest.idl
nsQueryActor.h Bug 1605209 - Turn actor names into nsCString;r=nika 2020-04-17 10:56:22 +00:00
PBrowser.ipdl Backed out 10 changesets (bug 1508306, bug 1640019) for bc failures on browser_autoOpen.js . CLOSED TREE 2020-06-12 22:47:50 +03:00
PBrowserBridge.ipdl Bug 1637088 - Delay creating BrowserBridgeChild until after new PBrowser has been created, r=farre,emilio 2020-05-25 06:06:30 +00:00
PColorPicker.ipdl
PContent.ipdl Bug 1587743 - Part 1: Pre-compute the delegated permissions for the top-level content and store it in the WindowContext. r=baku,nika 2020-06-12 16:31:49 +00:00
PContentPermission.ipdlh
PContentPermissionRequest.ipdl
PCycleCollectWithLogs.ipdl
PermissionMessageUtils.cpp Bug 1635399 - Function PrincipalInfoToPrincipal now returns Result<nsCOMPtr<nsIPrincipal>, nsresult> r=ckerschb 2020-05-12 19:02:05 +00:00
PermissionMessageUtils.h Bug 1613985 - Use default for equivalent-to-default constructors/destructors in dom/ipc. r=smaug 2020-03-06 09:11:40 +00:00
PFilePicker.ipdl
PLoginReputation.ipdl
PPluginWidget.ipdl Bug 1432856 - Extended focus methods in Window.webidl, Client.webidl and Element.webidl to pass CallerType. r=smaug 2020-01-16 14:38:40 +00:00
PProcessHangMonitor.ipdl
PreallocatedProcessManager.cpp Bug 1642290: stop the process preallocator during normal shutdown, not post-CC r=nika 2020-06-10 13:36:40 +00:00
PreallocatedProcessManager.h Bug 1642491: Avoid recreating the PreallocatedProcessManager during shutdown r=kmag 2020-06-02 01:38:41 +00:00
PrefsTypes.ipdlh
ProcessActor.cpp Bug 1519636 - Reformat recent changes to the Google coding style r=andi 2020-05-09 14:51:53 +00:00
ProcessActor.h Bug 1580448 - JSProcessActor API;r=nika 2020-04-30 16:49:50 +00:00
ProcessHangMonitor.cpp Bug 1617709: Fix hang monitor init/shutdown race in short-lived processes. r=mccr8 2020-04-23 23:18:24 +00:00
ProcessHangMonitor.h
ProcessHangMonitorIPC.h
ProcessPriorityManager.cpp Bug 1602757: add preallocation cache for webIsolated (fission) processes r=nika,smaug 2020-05-30 14:38:30 +00:00
ProcessPriorityManager.h
PropertyBagUtils.cpp Bug 911444 part 2. Allow sending an nsIPrincipal in a variant over IPC. r=nika 2020-02-27 14:54:53 +00:00
PropertyBagUtils.h
PTabContext.ipdlh Bug 1633820 - Part 5: Get rid of UnsafeIPCTabContext, r=kmag 2020-05-07 22:18:56 +00:00
PURLClassifier.ipdl
PURLClassifierInfo.ipdlh
PURLClassifierLocal.ipdl
PWindowGlobal.ipdl Bug 1639833 - IntrisincStoragePrincipal should always be partitioned - part 4 - Renaming storage access permission methods, r=dimi 2020-06-03 06:12:06 +00:00
ReferrerInfoUtils.cpp Bug 1611415 - Prefer using std::move over forget. r=froydnj 2020-02-13 14:38:48 +00:00
ReferrerInfoUtils.h
RefMessageBodyService.cpp Bug 1580448 - JSProcessActor API;r=nika 2020-04-30 16:49:50 +00:00
RefMessageBodyService.h Bug 1610020 - BroadcastChannel + wasm - part 5 - RefMessageBody for BroadcastChannels, r=smaug 2020-01-24 08:00:08 +00:00
remote-test.js Backed out 3 changesets (bug 1638153) for perma failures on cross-origin-objects.html. CLOSED TREE 2020-06-01 23:51:35 +03:00
RemoteBrowser.cpp Bug 1580448 - Trivial unified build fixups;r=nika 2020-04-30 16:15:27 +00:00
RemoteBrowser.h Bug 1639195 - Part 1: Make BrowserChild::RecvLoadURL() to use the correct triggering princpal. r=ckerschb,mattwoodrow 2020-05-19 20:22:34 +00:00
RemoteWebProgress.cpp
RemoteWebProgress.h Bug 1580448 - Trivial unified build fixups;r=nika 2020-04-30 16:15:27 +00:00
RemoteWebProgressRequest.cpp Bug 1580448 - Trivial unified build fixups;r=nika 2020-04-30 16:15:27 +00:00
RemoteWebProgressRequest.h
ServiceWorkerConfiguration.ipdlh
SharedMap.cpp Bug 1626570 - Improve handling of copying arrays in dom/ipc/. r=nika 2020-04-30 09:37:05 +00:00
SharedMap.h
SharedMapChangeEvent.h
SharedMessageBody.cpp Bug 1626570 - Improve handling of copying arrays in dom/messagechannel/. r=smaug 2020-05-07 08:10:14 +00:00
SharedMessageBody.h Bug 1626570 - Improve handling of copying arrays in dom/messagechannel/. r=smaug 2020-05-07 08:10:14 +00:00
SharedStringMap.cpp
SharedStringMap.h
StringTable.h
StructuredCloneData.cpp Bug 1613985 - Use default for equivalent-to-default constructors/destructors in dom/ipc. r=smaug 2020-03-06 09:11:40 +00:00
StructuredCloneData.h Bug 1613985 - Use default for equivalent-to-default constructors/destructors in dom/ipc. r=smaug 2020-03-06 09:11:40 +00:00
TabContext.cpp Bug 1633820 - Part 5: Get rid of UnsafeIPCTabContext, r=kmag 2020-05-07 22:18:56 +00:00
TabContext.h Bug 1633820 - Part 4: Remove OriginAttributes from TabContext, r=kmag 2020-05-07 22:18:54 +00:00
TabMessageUtils.cpp
TabMessageUtils.h Bug 1627971 - Add option to MaybeFireEmbedderLoadEvents to also fire the error event to the embedder element. r=nika 2020-04-15 22:30:13 +00:00
test.xhtml Bug 1638458 - Remove the ignoreRootScrollFrame parameter of FrameLoader.sendCrossProcessMouseEvent(). r=tnikkel 2020-05-18 03:05:32 +00:00
URLClassifierChild.h Bug 1626570 - Improve handling of copying arrays in dom/ipc/. r=nika 2020-04-30 09:37:05 +00:00
URLClassifierParent.cpp
URLClassifierParent.h Bug 1477756 - Initial out-of-process WebGL implementation. r=mccr8,handyman 2020-01-08 22:19:14 +00:00
UserActivationIPCUtils.h
WindowGlobalActor.cpp Bug 1633338: Use IsPotentiallyTrustworthy to indicate top level window is secure for mixed content blocker. r=baku 2020-06-08 07:05:16 +00:00
WindowGlobalActor.h Bug 1631405 - Make sure we initialize all fields of WindowGlobalParent in the constructor. r=nika 2020-05-27 00:27:30 +00:00
WindowGlobalChild.cpp Backed out 10 changesets (bug 1508306, bug 1640019) for bc failures on browser_autoOpen.js . CLOSED TREE 2020-06-12 22:47:50 +03:00
WindowGlobalChild.h Bug 1639833 - IntrisincStoragePrincipal should always be partitioned - part 4 - Renaming storage access permission methods, r=dimi 2020-06-03 06:12:06 +00:00
WindowGlobalParent.cpp Bug 1639833 - IntrisincStoragePrincipal should always be partitioned - part 4 - Renaming storage access permission methods, r=dimi 2020-06-03 06:12:06 +00:00
WindowGlobalParent.h Bug 1639833 - IntrisincStoragePrincipal should always be partitioned - part 4 - Renaming storage access permission methods, r=dimi 2020-06-03 06:12:06 +00:00
WindowGlobalTypes.ipdlh Bug 1631405 - Move nsISecureBrowserUI to be owned by the canonical browsing context instead of docshell. r=nika,ckerschb,Gijs,webcompat-reviewers,twisniewski 2020-05-27 00:28:59 +00:00