Source code
Revision control
Copy as Markdown
Other Tools
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
---
hang-report:
description: |
This ping is used to report when BackgroundHangReporter has detected that
the browser was unresponsive.
BackgroundHangReporter is only enabled for pre-release channels (currently
only on Nightly), and only on specific threads (main, renderer).
Whenever a runnable starts being processed on the event loop, BHR starts a
128ms timer. If the runnable finishes quickly enough and execution returns
to the event loop before the timer fired, the timer is canceled.
When the timer fires, the execution is paused and a profiler stack is
captured. These stacks contain native frames (which need to be symbolicated
to become readable), label frames, and JavaScript frame, giving detailed
information about what was on the stack at the time the timer fired.
Once the stack has been recorded, execution resumes, and the total time it
took to finish the hanging task and return to the event loop is recorded.
If the execution didn't return to the event loop after 8 seconds, we assume
we have a 'perma-hang' that we will not be able to recover from, and record
the duration as 8 seconds.
Stack are sanitized to not reveal any information about remote content.
Pings are submitted daily when idle, during clean shutdowns or when 50
reports have been accumulated.
include_client_id: true
bugs:
data_reviews:
notification_emails:
- florian@mozilla.com