Consider tags. Imagine if in your history, all the tags associated with an article were saved too. Tags aren't provided by the website? Websites should be encouraged to provide better tags for personalisation (tags over tracking beacons!), or the browser/browser plugin uses some kind of text processing (machine learning?) technique to generate tags automatically from content, and can train on the millions of already tagged articles in websites around the place.
The trivial solution is then: increment the count for each of the tags when a user visits a page with those tags. In top news, show the stuff at the top with the highest tag count. When doing a search term for something ambiguous that contains some of the tags, show the highest visisted tag results first. e.g. if you search for "election results" and the user has a higher frequency of "us politics" tag visits compared to "uk politics" tag visits, how US election results higher up. (You could weight this based on current events too, e.g. which one is more recent and so on). Over time, the plugin itself could have a model which could train its filtering, and maybe receive global anonymous updates that improve the algorithm. All data is local, the only thing you need is a list of tags for each article.