The LifeScope Browser Add-on (hereafter referred to as ‘The Add-on’, and interchangeably referred to as the ‘LifeScope Browser Extension’) is an optional Provider for the LifeScope app (https://lifescope.io) that is used to create LifeScope objects, such as but not limited to Events and Content, from the user’s web browsing history. The user is given full control over what sites they want the Add-on to track, and by default the Add-on will not collect or send any information anywhere.
The user can specify which domains they would like the Add-on to track in one of two ways: going to the Add-on's Settings page and manually entering a domain into the list, or navigating to a page, clicking on the button for the LifeScope Browser Add-on, and clicking the button 'Start tracking this domain' that pops up. Once a domain has been registered, the Add-on will parse the user's Firefox history on that domain and create objects such as Events and Content on the LifeScope app on the user's behalf from it. All future visits to a page on that domain will also have LifeScope objects created from them.
The user can remove domains from their list either by clicking the ‘X’ next to it on the Settings page or by navigating to the site, clicking on the button for the LifeScope Browser Add-on, and clicking the button ‘Stop tracking this domain’. Removing a domain from the list will stop the tracking of future visits to that domain, but it will NOT remove any LifeScope objects that have already been recorded for that domain's history. As of this writing, there is no mechanism for removing a specific domain's LifeScope objects; the user would have to, in the LifeScope app proper, delete the Connection to 'Firefox Browser Extension', which would remove all Events and Content made from the Firefox Add-on regardless of domain. The user could then add the domains they wanted to keep back to the domains list in the Add-on settings, and the Add-on would re-parse their history for those domains and make new LifeScope objects from them.
The Add-on requires that an active LifeScope session be present for it to function. This session is indicated by the presence of a LifeScope session cookie, which the Add-on retrieves from the browser’s cookie store. This LifeScope cookie is not created by the Add-on; instead, it is generated when a user logs in to the LifeScope app. The Add-on uses the session cookie to authenticate requests to the LifeScope API, which is located at the domain 'api.lifescope.io'; the LifeScope API determines the authenticating user from that cookie and creates LifeScope objects with that user's LifeScope ID. If a user is not signed into LifeScope on a particular device where the Add-on is installed, it will not do any parsing of the user’s history on approved domains, nor will it track any future visits to sites on that domain.
Once the Add-on has been installed, it will attempt to retrieve a Connection in the LifeScope app to the ‘Firefox Extension Browser’ LifeScope Provider, and will attempt to create such a Connection if an existing one is not found. This Connection is made on behalf of the current logged-in LifeScope user. The only other information that is passed in this transaction is the fact that the user is attempting to make a Firefox Browser Extension Connection; as this extension has been built for other browsers such as Google Chrome, the LifeScope API needs to know which browser the Connection is to.
The exact information that the Add-on retrieves for a user is the sites that they have visited on approved domains and the dates & times at which they visited those sites; if a user has visited a specific URL multiple times, the Add-on will attempt to make an Event and other LifeScope objects such as Content for each separate visit. For each site visit the Add-on makes a call to the LIfeScope Embed server at 'embed.lifescope.io' with the site’s URL; this server runs the 'iFramely' (https://github.com/itteco/iframely) server to try to retrieve public rich content such as images and video associated with that URL. The LifeScope Embed Server only receives the logged-in user's LifeScope credentials (to ensure that only authenticated LifeScope users are using the server's functionality) and the URL of a site visit, but not the datetime at which it was accessed. The LifeScope Embed Server does record of any of this information, but merely returns whatever public content the iFramely server can retrieve, if any.
The Add-on uses the site visit URL, site visit datetime, browser name, and information retrieved from the LifeScope Embed Server to generate LifeScope objects such as Events and Content. Events are comprised of an ID (randomly generated on Event creation), a Connection ID (retrieved from the LifeScope API, and whose creation is discussed earlier), a Provider ID (retrieved from the LifeScope API), a unique Identifier (comprised of the Connection ID, browser name, site URL, and site visit datetime), any Content associated with that visit, the datetime of the site visit, a Provider Name (contains the browser name), the datetime at which the Event was created and/or updated, the Context ‘Visited web page’, the Type ‘viewed’, any hashtags that could be parsed from the content retrieved using the LifeScope Embed Server, and the authenticated user’s ID. Content is comprised of an ID (randomly generated on Event creation), a Connection ID (retrieved from the LifeScope API, and whose creation is discussed earlier), a Provider ID (retrieved from the LifeScope API), a Provider Name (contains the browser name), a unique Identifier (comprised of the Connection ID, browser name, and site URL), the site’s URL, any associated public rich content such as Thumbnails, video, audio, or embeddable HTML, any hashtags that could be parsed from the content retrieved using the LifeScope Embed Server, the Title of the page (if present and retrievable), any notable Text on the page (if present and retrievable), the Type ‘web-page’, and the authenticated user’s ID.