On Oct 2, 2013, at 12:35 AM, Francois Marier <
fran...@mozilla.com> wrote:
> On 01/10/13 16:25, Austin King wrote:
>> I would like to see websites call navigator.id.logout. I'd like lloyd
>> and callahad to publish cagematch highlights, such as explaining why the
>> trade-offs for logout don't add up.
The major highlight for me from the cage match was a point about 3rd party cookies and the communication iframe in general.
So in our basic, external persona offering, we need to work everywhere. Current browser vendor trends toward locking down cookies are positive, having privacy preserving defaults is behavior we want to rally behind and encourage.
But values aside, the behavior of iOS7 effectively neuters our communication iframe. It makes it so that to Just Work Everywhere, we need to really seriously consider the constraint of restricted third party cookies.
Because our iframe being isolated is now more than a 20% case, I think our basic offering must just work in the face of it.
The thing about the goldilocks api (which I prefer to think of as a subset of .watch), is that it says our primary API *never* relies on returning assertions when we're rendered in a 3rd party context (the iframe).
I think this is very sound reasoning. If we release (for example) an SSO feature and it doesn't work for more than 20% of the web, then it will generate more disappointment than joy. If we encourage sites to set short lived cookies and use persona for automatic session extension, and more than 20% of the time users are logging in every couple hours, it will cause grief and complaints - it will cause user sadness (reference - the etherpad persona integration inside mozilla).
Think back (or spend some time with shane) and talk about all of the complexity and time we've spent trying to keep the communication iframe limping along so that our primary API continues to work. It's been major cost, and the result today is many of the features of that API are just broken today. Don't get me wrong, we've mitigated this - our response to the iOS7 release demonstrates creativity and swift action. But we didn't, we can't, fix it - all we can do is gracefully degrade for increasing percentages of our user population.
So while I think there is a little bit of work to go into how we actually execute this change gracefully, the core premise that our primary API really needs to work everywhere is sound.
A final point is I think our core strategy needs to be native everywhere, so we can leverage all of the firefox products to drive forward and prove out (at scale) persona protocols, and hopefully the persona experience. A reduction of ambition (and in turn of necessary complexity in native implementations) is highly compatible with that goal. This is why I push towards us being decisive here. Doing less, and doing it better.
lloyd
(P.S. in the interest of full disclosure, I do believe that there still is an opening here to gracefully *upgrade* and offer incremental advanced features for environments that we control (all the firefoxes), or for advanced and critically important use cases - but I'm on board with starting from the platform of goldilocks).