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