Implement initial version of ReportingObserver (#37905)

The specification moved around lately with how it defines its reports
and report bodies. They became dictionaries, but are currently missing
some fields [1].

Most tests won't be passing yet, since the `Reporting-Endpoints` header
isn't used yet. In fact, the specification leaves it up to the browser
to figure out when to run this task [2]. I am not sure if there some
background scheduling we can do here.

Confirmed with content-security-policy/reporting-api/
report-to-directive-allowed-in-meta.https.sub.html that the callback is
invoked. The test doesn't pass, since
the `describe_scripted_caller` is empty for HTML elements. Thus the
`source_file` is empty, whereas it should be equivalent to the current
document URL.

Part of #37328

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>

[1]: https://github.com/w3c/reporting/issues/286
[2]: https://w3c.github.io/reporting/#report-delivery
This commit is contained in:
Tim van der Lippe 2025-07-07 12:43:30 +02:00 committed by GitHub
parent 3d4868592a
commit fcb2a4cd95
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
20 changed files with 551 additions and 101 deletions

View file

@ -1,9 +1,10 @@
[reporting-subresource-corp.tentative.https.html]
expected: TIMEOUT
[[document\] blocked due to DIP]
expected: FAIL
expected: TIMEOUT
[[document\] blocked during redirect]
expected: FAIL
expected: NOTRUN
[destination: script]
expected: FAIL
@ -12,22 +13,22 @@
expected: FAIL
[[dedicated worker\] blocked due to DIP]
expected: FAIL
expected: NOTRUN
[[dedicated worker\] blocked during redirect]
expected: FAIL
expected: NOTRUN
[[shared worker\] same-origin]
expected: FAIL
expected: NOTRUN
[[shared worker\] blocked by CORP: same-origin]
expected: FAIL
[[shared worker\] blocked due to DIP]
expected: FAIL
expected: NOTRUN
[[shared worker\] blocked during redirect]
expected: FAIL
expected: NOTRUN
[[between service worker and page\] same-origin]
expected: FAIL
@ -42,10 +43,13 @@
expected: FAIL
[[document with service worker\] same-origin]
expected: FAIL
expected: NOTRUN
[[document with service worker\] blocked due to DIP]
expected: FAIL
expected: NOTRUN
[[document with service worker\] blocked during redirect]
expected: FAIL
expected: NOTRUN
[[dedicated worker\] same-origin]
expected: NOTRUN