I think the hardest part is how to group related histories together.
Cheng Guo
116

This problem may be solved by separate the behavior of how we opening links while browsing. I made a chart to demonstrate the browsing activities in a shopping scenario:

browsing activities flow

In the chart, dots represent a new visit to a url, green one means opened in a new tab, with empty context; blue one means opened with an existing context.

Arrows represent the behavior of opening, blue means opening in the same tab; yellow means opening in a new tab, either directly from current tab, or logically associates with it. Note that “logically associates” is just an imagination feature that does exist in browsers currently, it works like if there’s a command called “New associated tab” bind in shortcut ⌘ + I (also imagined), and when I type ⌘ + I in a tab, a new tab will be opened with the association of it.

The chart shows a chronologic flow of how I searched for jogging shoes and finally bought one on amazon. First I searched the keyword on Google, then I clicked a url of Amazon men’s shoes on the current tab, I then chose one Nike shoe and opened it in a new tab, it looked not fine, so I closed the Nike tab. Back to the gallery, I opened an Asics one, and found it just what I want, confusing about which size to choose, I opened a new tab “associate” with the Asics tab to search for men’s shoes size chart, with that tab I opened Shoesmetro page to look up the sizes. Although I’ve cleared about which size to choose, I still need time to take a decision, I opened twitter, which had completely nothing to do with the shopping process, scroll for a while, and go back to Asics page to finish the purchasing steps.

The inspiration is taken from Git version control system, each url we visit can be seen as a commit in Git, new tabs with context are like branches, and new tabs without context are like the first commit of a new repository.