Groups keyboard shortcuts have been updated
Dismiss
See shortcuts

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

430 views
Skip to first unread message

Chromestatus

unread,
Jan 10, 2025, 5:12:58 PMJan 10
to blin...@chromium.org, icle...@google.com, issac...@microsoft.com, seth.b...@microsoft.com

Contact emails

issac...@microsoft.com, seth.b...@microsoft.com, icle...@google.com

Explainer

https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/CrashReporting/AddStackToCrashReports.md
https://github.com/WICG/crash-reporting/issues/12

Specification

https://wicg.github.io/crash-reporting

Design docs


https://docs.google.com/document/d/19DpvHIiYbmB9wgIP0BdI4vOnfVLcAZFmfIAml7SqRQA/edit?usp=sharing

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

Chromium > Internals > Network > ReportingAndNEL

TAG review

https://github.com/w3ctag/design-reviews/issues/981

TAG review status

Issues open

Origin Trial Name

Call stacks in crash reports

Chromium Trial Name

DocumentPolicyIncludeJSCallStacksInCrashReports

Origin Trial documentation link

https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/CrashReporting/AddStackToCrashReports.md

WebFeature UseCounter name

kDocumentPolicyIncludeJSCallStacksInCrashReports

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 (https://github.com/mozilla/standards-positions/issues/1057)

WebKit: No signal (https://github.com/WebKit/standards-positions/issues/380)

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



Reason this experiment is being extended

The experiment is being extended due to some unexpected issues that a team faced while onboarding to the trial right away. Additionally, multiple teams have found the feature useful and would benefit from additional experimentation time. Internal teams and external partners have expressed excitement about the call stacks feature and have asked for the trial to be extended. This extension will allow us to achieve a more comprehensive understanding of the experiment's impact and ensure that our conclusions are robust and reliable.



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

https://github.com/MicrosoftEdge/MSEdgeExplainers/blob/main/CrashReporting/HOWTO.md

Flag name on about://flags



Finch feature name

DocumentPolicyIncludeJSCallStacksInCrashReports

Requires code in //chrome?

False

Tracking bug

https://bugs.chromium.org/p/chromium/issues/detail?id=1445539

Estimated milestones

Origin trial desktop first 127
Origin trial desktop last 132
Origin trial extension 1 end milestone 135
DevTrial on desktop 125
Origin trial Android first 127
Origin trial Android last 132
DevTrial on Android 125
Origin trial WebView first 127
Origin trial WebView last 132


Link to entry on the Chrome Platform Status

https://chromestatus.com/feature/4731248572628992?gate=5186573316128768

Links to previous Intent discussions

Intent to Prototype: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/MW2PPF6784DDB763E2DA7BFC75AE51613ABC27B2%40MW2PPF6784DDB76.namprd00.prod.outlook.com
Ready for Trial: https://groups.google.com/a/chromium.org/g/blink-dev/c/aVpeVRO1Sy4
Intent to Experiment: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/f43b4e9f-5af8-4c4b-bcd9-342332dd57edn%40chromium.org


This intent message was generated by Chrome Platform Status.

Yoav Weiss (@Shopify)

unread,
Jan 15, 2025, 6:09:56 AMJan 15
to Chromestatus, blin...@chromium.org, icle...@google.com, issac...@microsoft.com, seth.b...@microsoft.com
Thanks for pushing this.

Any learnings from the OT so far? Have y'all made any progress towards shipping?

It'd be good to answer Anne regarding an opt-in.
In the version implemented in Chromium, is there some user opt-in for the feature?

It's not immediately obvious to me that an opt-in is needed (as I think developers can e.g. yield their code after a timeout, throw and report that stack), but the explainer says it is needed. Worthwhile to clarify that.

--
You received this message because you are subscribed to the Google Groups "blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to blink-dev+...@chromium.org.
To view this discussion visit https://groups.google.com/a/chromium.org/d/msgid/blink-dev/67819b5d.2b0a0220.275672.09ce.GAE%40google.com.

Issack John

unread,
Jan 15, 2025, 7:59:10 PMJan 15
to blink-dev, yoav...@chromium.org, blin...@chromium.org, icle...@google.com, Issack John, seth.b...@microsoft.com, Chromestatus
Since the initial trial, we've made signification progress towards shipping:
1. We have included the feature in the Draft Spec for crash reporting.
2. The feature has completed a TAG review.
3. We've requested signals. We have received positive feedback from the participants of the origin trial.

There's been some interest in expanding functionality of the feature to include call stacks on Out-Of-Memory crashes. We have identified room for improvement in the send rate of the crash reports. Some participants have indicated that they need additional time to provide more comprehensive feedback on the API.

I will also address the comment in the WebKit signal request. Regarding the opt-in, the current implementation in Chromium requires developers to opt-in via the Document-Policy HTTP header. This approach provides developers with control over enabling the feature, but it does not directly ensure user opt-in.

Daniel Bratell

unread,
Jan 29, 2025, 11:32:24 AMJan 29
to Issack John, blink-dev, yoav...@chromium.org, icle...@google.com, seth.b...@microsoft.com, Chromestatus

LGTM to extend M133-M135 (inclusive)

/Daniel

Reply all
Reply to author
Forward
0 new messages