On 18/10/2013 17:45, Fabrice Desré wrote:
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.
Welcome to my world :P. I call dibs to corner Fernando into a room with
a blackboard and getting some painted diagrams from him :)
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
________________________________
Este mensaje se dirige exclusivamente a su destinatario. Puede consultar
nuestra política de envío y recepción de correo electrónico en el enlace
situado más abajo.
This message is intended exclusively for its addressee. We only send and
receive email on the basis of the terms set out at:
http://www.tid.es/ES/PAGINAS/disclaimer.aspx
_______________________________________________
Sync-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/sync-dev