A navigable presents a Document to the user
via its active session history entry. Each navigable has:
An id, a new unique internal value.
A parent, a navigable or null.
An is closing boolean, initially false.
This is only ever set to true for top-level traversable navigables.
An allowed to perform a navigation or history update algorithm, which is implementation-defined and returns either allowed or blocked.
For example, this can return blocked if invoked too many times within a certain timespan.
A navigable's active document is its active session history entry's document.
To close a top-level traversable given a top-level traversable traversable:
If traversable's is closing is true, then return.
Otherwise, for each closing navigable in the set:
Set its is closing to true.
Record a closing timestamp.