{"action":"created","issue":{"url":"https://api.github.com/repos/w3c/mediacapture-main/issues/322","repository_url":"https://api.github.com/repos/w3c/mediacapture-main","labels_url":"https://api.github.com/repos/w3c/mediacapture-main/issues/322/labels{/name}","comments_url":"https://api.github.com/repos/w3c/mediacapture-main/issues/322/comments","events_url":"https://api.github.com/repos/w3c/mediacapture-main/issues/322/events","html_url":"https://github.com/w3c/mediacapture-main/issues/322","id":139181881,"number":322,"title":"Browsing sessions and device IDs","user":{"login":"martinthomson","id":67641,"avatar_url":"https://avatars.githubusercontent.com/u/67641?v=3","gravatar_id":"","url":"https://api.github.com/users/martinthomson","html_url":"https://github.com/martinthomson","followers_url":"https://api.github.com/users/martinthomson/followers","following_url":"https://api.github.com/users/martinthomson/following{/other_user}","gists_url":"https://api.github.com/users/martinthomson/gists{/gist_id}","starred_url":"https://api.github.com/users/martinthomson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinthomson/subscriptions","organizations_url":"https://api.github.com/users/martinthomson/orgs","repos_url":"https://api.github.com/users/martinthomson/repos","events_url":"https://api.github.com/users/martinthomson/events{/privacy}","received_events_url":"https://api.github.com/users/martinthomson/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/w3c/mediacapture-main/labels/Needs%20assignee%20action","name":"Needs assignee action","color":"d4c5f9"}],"state":"open","locked":false,"assignee":{"login":"stefhak","id":1180334,"avatar_url":"https://avatars.githubusercontent.com/u/1180334?v=3","gravatar_id":"","url":"https://api.github.com/users/stefhak","html_url":"https://github.com/stefhak","followers_url":"https://api.github.com/users/stefhak/followers","following_url":"https://api.github.com/users/stefhak/following{/other_user}","gists_url":"https://api.github.com/users/stefhak/gists{/gist_id}","starred_url":"https://api.github.com/users/stefhak/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stefhak/subscriptions","organizations_url":"https://api.github.com/users/stefhak/orgs","repos_url":"https://api.github.com/users/stefhak/repos","events_url":"https://api.github.com/users/stefhak/events{/privacy}","received_events_url":"https://api.github.com/users/stefhak/received_events","type":"User","site_admin":false},"milestone":null,"comments":14,"created_at":"2016-03-08T04:58:21Z","updated_at":"2016-03-11T07:31:53Z","closed_at":null,"body":"We've had a fair bit of back-and-forth about this at Mozilla (I hope to have https://bugzilla.mozilla.org/show_bug.cgi?id=1223773 opened so people can see that discussion, but it's still locked down).\r\n\r\nThe definition of \"browsing session\", which was created after the term was used in gUM, is a poor fit for this use case.  In that bug, @jan-ivar was motivated to go to somewhat extraordinary efforts to be compliant with the definition we have (see aforementioned bug).  That would be OK, except that it didn't really address a security issue.\r\n\r\nArchitecturally speaking, sites need to have a consistent view of any persistent state that a browser retains for them.  This includes device identifiers, which are, for better or worse, a form of persistent identifier.  Requiring identifiers to be discarded at specific points in time, as the current text does, and on a different timeline to other persisted state, can harm that view unnecessarily.  There is no security or privacy advantage to be gained by throwing away this state, but site integrity can be adversely affected.\r\n\r\nI suggest that \"browser session\" isn't a good fit for what we want to have for the lifetime of device identifiers.\r\n\r\nWe've been around this problem a few times, and I think that ultimately we will find it hard to agree on a single lifetime for these identifiers.  However, I think that we can and should set expectations.  I propose:\r\n\r\n1. That the minimum time over which the identifiers persist, absent user override, is a browsing session.  That is, unless a user intervenes, device identifiers are constant for a given origin for the duration of a browsing session.\r\n\r\n2. That browsers be permitted to persist those identifiers after that, but they not be required to.\r\n\r\nThis allows a browser to drop identifiers on shutdown (whatever that means), or to run a timer, or to watch for the last window open to an origin to close and nuke at that point.  It also allows for different policies during normal and \"private\" browsing.\r\n\r\nIdeally, we would persist these identifiers just like other origin-specific state, but the cost of implementing that vs. the benefit was considered and I don't think that we wanted to invest that effort.  I think that we would if we all decided that was the right thing to do.  I think that it is, but consider the value to be dismally low.  Thus, I did not propose this as a third part to the above proposal, but would support that if others do."},"comment":{"url":"https://api.github.com/repos/w3c/mediacapture-main/issues/comments/195233123","html_url":"https://github.com/w3c/mediacapture-main/issues/322#issuecomment-195233123","issue_url":"https://api.github.com/repos/w3c/mediacapture-main/issues/322","id":195233123,"user":{"login":"martinthomson","id":67641,"avatar_url":"https://avatars.githubusercontent.com/u/67641?v=3","gravatar_id":"","url":"https://api.github.com/users/martinthomson","html_url":"https://github.com/martinthomson","followers_url":"https://api.github.com/users/martinthomson/followers","following_url":"https://api.github.com/users/martinthomson/following{/other_user}","gists_url":"https://api.github.com/users/martinthomson/gists{/gist_id}","starred_url":"https://api.github.com/users/martinthomson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martinthomson/subscriptions","organizations_url":"https://api.github.com/users/martinthomson/orgs","repos_url":"https://api.github.com/users/martinthomson/repos","events_url":"https://api.github.com/users/martinthomson/events{/privacy}","received_events_url":"https://api.github.com/users/martinthomson/received_events","type":"User","site_admin":false},"created_at":"2016-03-11T07:31:53Z","updated_at":"2016-03-11T07:31:53Z","body":"Yes,  and my preference is to adopt the more general option Dom mentions too. "}}