# Crash (/fr/docs/web-security/reporting-api/reports/crash)



Un report `crash` vous indique que le processus renderer d'une page a planté ou s'est figé. Comme la page ne tourne plus, le navigateur met le report en file d'attente au préalable et l'envoie plus tard depuis un endpoint configuré, raison pour laquelle le crash reporting a besoin d'un endpoint serveur et ne peut pas être capté dans la page. Le payload est volontairement minimal pour des raisons de confidentialité.

<Callout type="warn" title="Non-standard">
  Le crash reporting n'est défini dans aucune spécification actuelle et est implémenté principalement dans Chromium. Le body est intentionnellement réduit.
</Callout>

## Quand le navigateur l'envoie [#quand-le-navigateur-lenvoie]

Quand le renderer plante (par exemple à court de mémoire) ou cesse de répondre. Le report est mis en file d'attente avant le crash et livré à [l'endpoint de reporting par défaut](/fr/docs/web-security/reporting-api/concepts/default-endpoint) (ou à un endpoint `crash-reporting` dédié) lors d'un chargement ou d'une session ultérieure. Il ne peut pas être observé dans la page via `ReportingObserver`, parce que la page a déjà disparu : l'endpoint serveur est le seul moyen de le recevoir.

## Exemple de payload [#exemple-de-payload]

```json
{
  "type": "crash",
  "age": 27,
  "url": "https://example.com/",
  "user_agent": "Mozilla/5.0 ...",
  "body": {
    "reason": "oom",
    "is_top_level": true,
    "visibility_state": "visible"
  }
}
```

Chaque body de report `crash` porte ces champs à l'intérieur de l'enveloppe de report partagée.

## Référence des champs [#référence-des-champs]

| Champ              | Signification                                                                                                                                                         |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `reason`           | La raison du plantage, par exemple `oom` (à court de mémoire) ou `unresponsive`.                                                                                      |
| `is_top_level`     | Si le document planté était la page de premier niveau.                                                                                                                |
| `visibility_state` | Si la page était `visible` ou `hidden` à ce moment-là.                                                                                                                |
| `stack`            | Une pile d'appels JS optionnelle, incluse uniquement quand `reason` vaut `unresponsive` et que `Document-Policy: include-js-call-stacks-in-crash-reports` est défini. |

## Comment le recevoir [#comment-le-recevoir]

Déclarez un endpoint `default` dans [`Reporting-Endpoints`](/fr/docs/web-security/reporting-api/headers/reporting-endpoints). Le report n'arrive pas immédiatement ; il est livré lors d'un chargement de page ou d'une session ultérieure, alors concevez votre récepteur pour accepter les crash reports de façon différée. CentralCSP collecte les signaux de crash aux côtés de vos autres reports.

## Ce qu'il vous apprend sur la sécurité [#ce-quil-vous-apprend-sur-la-sécurité]

La plupart des crashs sont des problèmes de stabilité, mais un schéma récurrent est un signal : des crashs répétés à court de mémoire ou de non-réponse concentrés sur une page ou liés à un même script peuvent indiquer une condition de déni de service ou un script tiers défaillant (ou hostile).

## Pièges [#pièges]

<Callout type="info">
  Les noms des champs du body sont en snake\_case. Les contraintes de confidentialité gardent le body minimal, et la pile d'appels JS n'est jamais incluse en dehors de la Document-Policy spécifique ci-dessus.
</Callout>

## Prise en charge par les navigateurs [#prise-en-charge-par-les-navigateurs]

Navigateurs basés sur Chromium uniquement ; pas Baseline. Les autres moteurs n'émettent pas de crash reports.

## Voir aussi [#voir-aussi]

* [Document-Policy](/fr/docs/web-security/policies/document-policy)
* [Fonctionnement de la Reporting API](/fr/docs/web-security/reporting-api/concepts/how-the-reporting-api-works)
* [Reports de crash et de non-réponse du navigateur](/fr/blog/browser-crash-reports)
* [Monitoring des crashs dans CentralCSP](/fr/docs/platform/monitoring/crash)
* [Header Reporting-Endpoints](/fr/docs/web-security/reporting-api/headers/reporting-endpoints)
* [Le format de livraison des rapports](/fr/docs/web-security/reporting-api/concepts/report-delivery-format)

## Sources [#sources]

* [MDN, CrashReport](https://developer.mozilla.org/en-US/docs/Web/API/CrashReport)
* [WICG, Crash Reporting](https://wicg.github.io/crash-reporting/)
