A Model of Navigation History
This addresses a foundational issue in web standards for developers and browser implementers, but it is incremental as it patches an existing specification rather than introducing a new paradigm.
The paper tackled the problem that the formal model aligned with the WHATWG specification for web navigation history fails to satisfy a fundamental property (e.g., forward then back equals doing nothing), by exhibiting counter-examples and proposing patches. The result showed that browsers are inconsistent but behave closer to the patched model, leading to proposed specification updates.
Navigation has been a core component of the web since its inception: users and scripts can follow hyperlinks, and can go back or forwards through the navigation history. In this paper, we present a formal model aligned with the WHATWG specification of navigation history, and investigate its properties. The fundamental property of navigation history is that traversing the history by delta then by delta' should be the same as traversing by delta+delta'. In particular, traversing by +1 (forward) then by -1 (back) is the same as traversing by 0 (doing nothing). We show that the specification-aligned model does not satisfy this property, by exhibiting a series of counter-examples, which motivate four patches to the model. We present a series of experiments, showing that browsers are inconsistent in their implementation of navigation history, but that their behaviour is closer to the patched model than to the specification-aligned model. We propose patches to the specification to align it with the patched model.