Add top-level creation URL for global scope (#37342)

Global scopes have two creation URLs: one for itself and one for the
"top-level" scope. It's not immediately obvious what is considered
top-level here (it is not strictly defined in the specification).

In any case, reports need the creation URL of the scope itself, not the
top-level version. Therefore, propagate this information from all
scopes, where the worker and worklets remain to pass in `None` for their
top-level scope.

Part of #37328

---------

Signed-off-by: Tim van der Lippe <tvanderlippe@gmail.com>
This commit is contained in:
Tim van der Lippe 2025-06-20 09:07:28 +02:00 committed by GitHub
parent a426a2e884
commit d70f6ace24
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
7 changed files with 50 additions and 12 deletions

View file

@ -3395,6 +3395,11 @@ impl ScriptThread {
incomplete.viewport_details,
origin.clone(),
final_url.clone(),
// TODO(37417): Set correct top-level URL here. Currently, we only specify the
// url of the current window. However, in case this is an iframe, we should
// pass in the URL from the frame that includes the iframe (which potentially
// is another nested iframe in a frame).
final_url.clone(),
incomplete.navigation_start,
self.webgl_chan.as_ref().map(|chan| chan.channel()),
#[cfg(feature = "webxr")]