Skip to content

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

Open
@domenic

Description

@domenic

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    interopImplementations are not interoperable with each othertopic: navigation

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions