privacycg / nav-tracking-mitigations

Navigation-based Tracking Mitigations
https://privacycg.github.io/nav-tracking-mitigations/
35 stars 15 forks source link

Adding state diagram for bounce tracking navigations #56

Closed amaliev closed 1 year ago

amaliev commented 1 year ago

Adding a state machine diagram to better describe the navigation flow as it relates to bounce tracking, and how the bounce tracking record is updated.

The preview is broken because the image is loaded via a relative URL, and the PR preview is not presented in the same directory. But this should work once merged since the bikeshed file is in the same dir as diagrams/. (It looks like other specs also use relative URLs for bikeshed diagrams.)

@jyasskin @wanderview


Preview | Diff

amaliev commented 1 year ago

"Client bounce detection timer period expires" should come from response received, which matches the steps in the written algorithm. An expiring timer should record bounces even from uncommitted navigations.

I would add numbers, but I'm not sure if they would be meaningful here, since the steps are cyclical and branch at different points. (e.g. should "Record Stateful Bounces" come after "Start Navigation" or "Response Received"? How do we indicate that we keep looping back to start until the extended navigation ends?)

IMO the positioning of the boxes already implies the order of steps within each navigation, which is all that can be said for certain. (Maybe it would help if I drew a "start" arrow to the "Start Navigation" box?)