Skip to content

Conversation

domenic
Copy link
Collaborator

@domenic domenic commented Jun 19, 2025

Closes #384

Obsolete original discussion

I'm actually unsure whether we perform the COOP checks correctly now. I think this might have gotten messed up #358. So keeping this as draft while I figure that out.

Copy link

github-actions bot commented Jun 19, 2025

Preview:

@domenic domenic force-pushed the clarify-navigable branch from e326dd8 to ede03fe Compare June 23, 2025 05:39
@domenic domenic changed the title Prohibit child navigable prefetches and clarify more navigable issues Clarify prefetch vs. activation navigable issues Jun 23, 2025
@domenic domenic force-pushed the clarify-navigable branch from ede03fe to 355fd7b Compare June 23, 2025 05:40
@hiroshige-g
Copy link
Collaborator

The PR itself looks good to explain the current spec behavior, while I'm also not sure about expected COOP behavior.

Anyway brainstorming...
I feel COOP should be checked against the actual navigable at navigation time, while less sure if COOP should be checked at prefetch time (anyway I'm not familiar with COOP in general).
So at least the current behavior of double checking COOP is anyway safer?
(and... how about the Chromium behavior?)

@domenic
Copy link
Collaborator Author

domenic commented Jun 24, 2025

As discussed in #384 (comment) I think the current spec is broken and I don't like it.

For Chromium's behavior, in internal chat Taiyo (cannot find his GitHub handle) said:

I think @hiroshige-g knows more, but as far as I know, there is no explicit check in UPC layer. So there is no check when prefetch time, and some common path (e.g. RenderFrameHostManager and so on ) used in all navigation will be utilized when serving time

So, if you think it is OK, I think I would rather update this PR to remove all prefetch-time COOP checking and move it all to activation time.

@domenic domenic marked this pull request as ready for review September 11, 2025 04:23
@domenic
Copy link
Collaborator Author

domenic commented Sep 11, 2025

Recent commits fixed the COOP issues. I've pushed an update to this PR which expands on how those fixes work, and in general on the different navigables, in a larger non-normative note.

@hiroshige-g and/or @domfarolino, can you review this?

@domenic
Copy link
Collaborator Author

domenic commented Sep 19, 2025

Ping for review!

Copy link
Collaborator

@domfarolino domfarolino left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you just mention in the OP that the "issues" referenced in the title are mostly closed by #394?

prefetch.bs Outdated

This is, actually, fine. During the [=navigate|navigation=] that results in prefetch activation, the target navigable will still be used for most of the important checks, which are performed earlier in the process before <a spec=HTML>attempt to populate the history entry's document</a> is called. And, looking at all the ways in which the navigable impacts the prefetch-time [=create navigation params by fetching=]:

* Setting the prefetch request's [=request/reserved client=] to |document|'s [=node navigable=] is expected. We have to pick one at prefetch time, and this is the only sensible choice.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've checked a little more detail:

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I analyzed this in #384 (comment) a bit. I'll maybe add a link to that comment here or something. Thank you for double-checking!

Copy link
Collaborator

@hiroshige-g hiroshige-g left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

@domenic domenic merged commit 0f8af91 into main Sep 24, 2025
2 checks passed
@domenic domenic deleted the clarify-navigable branch September 24, 2025 05:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Different navigable is used in creating navigation params by fetching between prefetch and actual navigation
4 participants