Intent to Experiment: Call stacks in crash reports from unresponsive web pages

17 views
Skip to first unread message

Issack John

unread,
5:16 PM (2 hours ago) 5:16 PM
to Digest recipients
Contact emails
Explainer
Specification
Design docs
Summary
This feature captures the JS call stack when a web page becomes unresponsive due to JavaScript code running an infinite loop or other very long computation. This helps developers to identify the cause of the unresponsiveness and fix it more easily. The JS call stack is included in the crash reporting API when the reason is unresponsive.


Blink component
TAG review
None

TAG review status


Risks


Interoperability and Compatibility
"The stack trace format itself is not compatible across browsers." However, "It is already exposed throughout the web platform (via the `error.stack` getter), and there is already a lot of software, both client- and server-side, which deals with parsing the different browsers' formats."


Gecko: No signal

WebKit: No signal

Web developers: No signals

Other signals:

Security
Stack frames from cross-domain scripts that were not loaded with CORS must be omitted.


WebView application risks
Does this intent deprecate or change behavior of existing APIs, such that it has potentially high risk for Android WebView-based applications?
None


Goals for experimentation
The primary goal of this experiment is to gain insights on the usage and effectiveness of the call stacks in crash reports from unresponsive web pages feature. We aim to understand how this feature can help developers debug unresponsive renderers, and how it can be improved to better serve their needs. 

 Specifically, we are looking to gain insight on the following pieces of the API surface: 
 - The frequency under which the feature is used. 
- The usefulness of the call stacks provided by this feature in debugging unresponsive renderers. 

 To validate our designs, we will be using the following metrics and feedback: 
 - Usage data: We will collect data on the number of execution contexts for which this feature is enabled, and the call stack is generated. 
- Developer feedback: We will solicit feedback from developers on the usefulness of the call stacks provided by this feature, and any improvements they would like to see.

Ongoing technical constraints
None


Debuggability
Developers can launch DevTools, go to the "Application" Tab, then in the "Background services" section click on "Reporting API" where they can inspect reports that are queued to be sent. Application --> Reporting API


Will this feature be supported on all six Blink platforms (Windows, Mac, Linux, ChromeOS, Android, and Android WebView)?
Yes

Is this feature fully tested by web-platform-tests?
No
This feature is not currently testable on WPT, since triggering it requires crashing the browser.


DevTrial instructions
Flag name on chrome://flags


Finch feature name
DocumentPolicyIncludeJSCallStacksInCrashReports

Requires code in //chrome?
False

Tracking bug
Estimated milestones
Origin trial desktop first
127
Origin trial desktop last
132
DevTrial on desktop
125
OriginTrial Android last
132
OriginTrial Android first
127
DevTrial on Android
125
OriginTrial webView last
132
OriginTrial webView first
127


Link to entry on the Chrome Platform Status
Links to previous Intent discussions
This intent message was generated by Chrome Platform Status.
Reply all
Reply to author
Forward
0 new messages