Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

<meta refresh> to a fragment navigation is not interoperable #6451

Open
domenic opened this issue Mar 4, 2021 · 0 comments
Open

<meta refresh> to a fragment navigation is not interoperable #6451

domenic opened this issue Mar 4, 2021 · 0 comments
Labels
interop Implementations are not interoperable with each other topic: navigation

Comments

@domenic
Copy link
Member

domenic commented Mar 4, 2021

https://boom-bath.glitch.me/meta-refresh.html

In Firefox after three seconds this does a same-document navigation. In Chrome after three seconds this does a full-page reload.

In the spec, a meta refresh is a "replace" navigation. "replace" navigations appears to not special-case fragment changes; only "reload" navigations do. That is, the spec says

If historyHandling is not "reload", resource is a request, resource's url equals browsingContext's active document's URL with exclude fragments set to true, and resource's url's fragment is non-null, then: (navigate to a fragment)

(otherwise, it does a cross-document navigation)

If we just extended this clause to either "replace" or "reload", then that would have a number of knock-on effects, I think. So we need to investigate other replace scenarios (there are a lot). Maybe they are non-interoperable in the same way.

Or, we could special-case same-URL <meta refresh> to be "reload" instead of "replace", to match Chrome.

The Refresh header has the same issue: https://incredible-stealth-dove.glitch.me/

/cc @natechapin

@domenic domenic added the interop Implementations are not interoperable with each other label Aug 8, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
interop Implementations are not interoperable with each other topic: navigation
Development

No branches or pull requests

1 participant