On 2014-06-04, 5:01 PM, Chris Karlof wrote:
I propose we develop an add-on to make custom Sync configs easier.

The workflow would be:

1) Before you log in to sync, you install the Firefox Sync Configuration 
add-on. If you're already logged in to Sync, it yells at you.

2) You enter any necessary URLs/config values in a friendly-ish UI, which does remote 
sanity checking of URLs and possibly service discovery. When it's done, your browser is 
configured to use the custom sync and FxA servers of your choosing. We could possibly 
often "instant config" buttons for well known alternative Fx Sync providers, 
e.g., ownCloud.

3) Log into sync.

Would an add-on approach be viable for Fennec as well?

I think it could be, but it's not really free in the same way that it is on desktop. It's more reasonable to think about, what is the API that Fennec would need to support to allow such an add-on to be developed? My first guess suggests:

* we'd need a way to trial FxA and token server connections using the Java stack (part of the custom server-on-Android frustration has been that our stack is not Gecko's, leading to certificate and cipher suite restrictions);

* we'd need a way for the add-on to signal that the set up flow should start, with certain configuration choices;

* we'd want the set up flow to reflect -- in some way -- that non-standard choices were in play;

* we'd want the sync settings UI to reflect that non-standard choices were in play.

The second is probably not relevant to Desktop, since the "approved way" to support custom servers is to change with the prefs. The last two are clearly Fennec. The first is a Fennec-ism that might be a useful abstraction for building such an add-on to work cross-platform.

Developing such an API is less work than building custom server support up front. But I feel the maintainence burden is worse -- if we ever decide to radically change how attached services work and are configured, we're unlikely to want to keep the "trial connections" API stable. Of course, we don't *have* to provide this functionality...

I don't know if AMO makes it easy to provide different versions of an add-on to different Fennec versions; if not, we're really locked in to getting the API right up front (or busting our add-on). It's possible to do version checking ourselves (easier for all-JS add-ons), and I know -- in theory -- how to get fancy with per-version Java code loaded from the add-on, but this is a ton of engineering.

Finally, I know that it's possible to test an add-on as part of mochitests (and Fennec's equivalent, Robocop tests). But I don't know of any way to run automated tests with a changing add-on against multiple Firefox versions.

I've only been thinking about doing this from an add-on for a day, so I'll update this thread if I have other opinions.

Nick

PS. As an aside, the Fennec team has committed to using add-ons (with a fixed API) for some other UI features, and I am personally pretty interested in making this kind of API a way to build experimental features.
_______________________________________________
Dev-fxacct mailing list
[email protected]
https://mail.mozilla.org/listinfo/dev-fxacct

Reply via email to