Comment 11 for bug 1643732

Revision history for this message
Michi Henning (michihenning) wrote :

Sorry about the status change, that must have been a mouse click that went astray :-(

You are correct in that applications won't get any oauth tokens or the like. That's all handled by the storage framework. We pass the oauth token into the *provider* implementation, so the provider can authenticate with the cloud service; clients never come near the token.

You are right, the accounts are not going to get there by magic. Users will still have to add a cloud account to online accounts as before. But we need to allow the user to select which cloud service (and account within that service) will be used by a particular application (such as the camera app) to access/store content.

There are some design documents, but not anything that would be useful here, it seems. Basically, we have a registry DBus service. The point of that service is to deliver information about which accounts the user has created within Online accounts. Our client-side runtime accesses the registry (invisibly to the calling application code) to find out which accounts exist and are potentially available as a storage service in the cloud. (We will post-filter all the account info we get from online accounts to show only accounts that actually represent a storage provider.) We will show a selection dialog at some point via a trusted helper or some such, where the user can select which cloud providers(s) to use for application X. What we need to present in that list is:

- The translated name of the cloud service, such as "Google Drive" or "China Mobile mCloud",

- the name of the icon for the service, so we can put up a pretty picture on the screen,

- the dbus name of the provider that belongs to the account, so we know which provider we need to talk to for that account.

- the displayName (which we get from online accounts already)

That tells the user: "the candidate storage provider you can select from are:

- "Google Drive", <pretty icon>, "<email address hidden>"
- "Google Drive", <pretty icon>, "<email address hidden>"
- "Chine Mobile mCloud", <pretty icon>, "<email address hidden>"

etc.

That's pretty much all we need for the moment.

Online accounts as it stands gives us all but the translated name, the icon name, and the dbus name when we pass an empty application ID.