On 10/18/2013 06:30 AM, Fernando Jiménez Moreno wrote:

>> The diagram at
>> https://docs.google.com/file/d/0B0Az-aXpSyQJZ2xCdWRwWTNoRDQ/edit?usp=sharing&pli=1
>> is not about persona, it shows the FxA app as a standalone app using IAC.
> 
> Indeed. And it says nothing about the Trusted UI or any loaded network 
> resources :)

Ok. So I guess I don't understand *at all* what we are trying to achieve
with FxA. Specifically:
- When I create my FxA account, do I reuse my existing persona identities?
- Once I have a FxA account, does that change anything for web sites
that currently use Persona? Do I get a simplified login flow? Do sites
need to do something special?


>>> Lloyd wrote a few words about the proposed architecture at [1] and [2]. But 
>>> basically, in a few words, the big picture of the FxA flow would be 
>>> something like:
>>>
>>> 1- A RP with a FxA <meta> or a FxA manifest field (still to be discussed) 
>>> requests a login via nav.id.request() API.
>>> 2- The nsIDOMIdentity component handle this request and notice the <meta> 
>>> or manifest bits, so it takes the FxA path.
>>> 3- A "fxacct-login" or similar system message is sent to content and 
>>> handled by the FxA app (OOP certified app).
>>> 4- The FxA app communicates with the FxA service via its own REST API and 
>>> does all the Persona magic to finally get a Persona assertion that is 
>>> delivered to the RP via the usual nav.id callbacks.
>>
>> How does that magic part work? Is this still using the current setup
>> with a dedicated process? If so, you have : the FxA app, the nav.id oop
>> frame, and probably the oop keyboard at some point (oh, and the
>> homescreen and cost control apps are still trying to not be killed also).
> 
> With the current setup, there will be a dedicated process for the FxA app but 
> there won't be any nav.id OOP frame. As I previously mentioned the current 
> FxOS Persona implementation (Trusted UI loading the remotely hosted Persona 
> flow from the network) will *not* be involved in the proposed FxA flow.
> 
> 
> In any case, I agree with your previous comment about the potential benefits 
> of placing as much code as possible into the platform for this flow. I had a 
> couple of IRC conversations with Jed and Lloyd about this and this is what I 
> know so far:
> 
> 1. The FxA app is a must to have cause we need to show an UI for the sign-up 
> process.  Unless we build this UI in the System app. but I'll assume that the 
> independent app option is the preferred one.
> 2. For doing all of this Persona magic, about which I am mostly ignorant but 
> Lloyd and/or Jed can probably explain (please do :) ),  the FxA app has two 
> dependencies: jwcrypto [1] and [2] gherkin.
> 2.1 jwcrypto is already in Gecko [3] \o/.
> 2.2 gherkin is a complete new thing to me but seems to be the JS client for 
> this API [4] and it seems to be pending some minification work if it is 
> intended to be loaded within the FxA app. It would be great to know if the 
> entire lib is needed or only a few specific parts (Jed, Lloyd?).
> 
> 
> So given the above, I was wondering if we could have an alternative 
> architecture like this one:
> 
> 1. Move all the Persona magic client side work that is supposed to be done by 
> the FxA app to the platform (that might be mostly what gherkin currently does 
> I guess).
> 2. Build and expose a FxA DOM API for certified apps only.
> 3. Turn the FxA app into UI related stuff only and make it consume the FxA 
> DOM API.
> 4. Make FTU and Settings also consume the FxA DOM API.
> 
> What I think are Benefits of this approach:
> 
> 1. We get rid of the IAC API dependency, which means:
> 1.1. Simplicity.
> 1.2. A shorter messaging path. We won't need the System app as a proxy or 
> direct communication between FTU <-> FxA app or Settings <-> FxA app.
> 1.3. No instances of MozInterAppMessagePort.
> 1.4. no [5] issue.
> 2. We don't duplicate the jwcrypto dependency in the content side as we 
> already have it in Gecko.
> 3. We don't need to launch a new process for the sign-up flow from FTU and 
> Settings or for the consumption of an already signed in account from a RP.
> 4. We make the FxA process lighter as it would only host the UI for the 
> sign-up process and the FxA DOM API consumer parts.
> 
> A couple of random clarifications:
> 
> 1. I still don't know how this FxA DOM API would look like. I have a remote 
> idea about it, but I'll need to check with Lloyd, Jed and others before.
> 2. RPs will still use the Persona API (plus the <meta> or manifest thing 
> already mentioned). The FxA DOM API is intended only to allow certified apps 
> to do the required account management work.

If you want to go fast, I would do gecko --mozChromeEvent--> system app
--IAC--> settings|ftu

        Fabrice
-- 
Fabrice Desré
b2g team
Mozilla Corporation
_______________________________________________
Sync-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/sync-dev

Reply via email to