Interesting note: the visits.visit_duration column is not exposed through this API (or at least - not listed in the documentation). This may be because it's apparently misleading. (It apparently captures the time the tab was open not the time the tab was active)
Thanks for the pointer. One advantage of the approach I ended up taking is it works for mobile browsing too if you’re logged in to Chrome. Then the open tabs sync and you can programmatically monitor and react to mobile browsing usage.
Somewhat related, as history seems to be kept in the same sqlite db as the bookmarks, at least for Firefox. If you want to update the entries there (as opposed to just reading and filtering them) you will want this: https://github.com/bencaradocdavies/sqlite-mozilla-url-hash
In short, there's a FF-specific hashing function that's needed when updating and inserting new rows.
Interesting note: the visits.visit_duration column is not exposed through this API (or at least - not listed in the documentation). This may be because it's apparently misleading. (It apparently captures the time the tab was open not the time the tab was active)
Hope this helps