Skip to content

Navigation API: Dead lock in "Performing a navigation api traversal" #12028

@theIDinside

Description

@theIDinside

What is the issue with the HTML Standard?

The algorithm Performing a Navigation API traversal has a troublesome issue with step 12.3:

  1. If targetSHE is navigable's active session history entry, then abort these steps.

This can and will "dead lock" something as simple as await navigation.back().finished:

<!doctype html>
<head>
<script>
onload = () => setTimeout(test, 0);
async function test() {
  await navigation.navigate('#1').finished;
  navigation.onnavigate = async () => {
    // Will "dead lock" the promise. 
    // Any user waiting on this, will be waiting forever.
    await navigation.back().finished;
  }

  history.back();
}
</script>
</head>

@noamr, @farre, @zcorpan (whom maybe can CC additional people that are appropriate).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions