Add some brokers #1609
feat(client): Add some brokers!
@shane-tomlinson, this needs a rebase.
It's looking good.
I ideally want to finishing reviewing this tomorrow, but I have meetings from 9am-5pm. I hopefully can get to it at 5pm. Otherwise, I'll fight to reclaim time! Friday I'm off, so I hope this doesn't drag on to next week.
…up, closes original tab, and opens the verification link in the same browser. This is to add additional coverage to prepare for the add-a-broker branch. Additional work: * Reduce duplication in the web channel tests by calling the fillOutSignUp and fillOutSignIn FunctionalHelpers.
…mplete password reset forms.
* Start to add brokers that know how to startup/complete flows. * 5 brokers to start, base, oauth, fx-desktop, redirect, web-channel. * Get rid of the Channels high level abstraction, these are used directly by the brokers if needed. * Move some code from service-mixin and various channels to brokers. * Update tests to make use of the brokers. * No longer save forceEmail to Session, get it from the relier. * Remove the `signIn` from `completeResetPassword` in the FxaClient, this is now done in the views. * No longer call `signIn` from `changePassword` in the FxaClient, this is now handled by the views. This allows the signature of `changePassword` to be much smaller. * Move the re-link check from fxa-client to the views to allow finer grained control over when they are presented. * Remove Session.forceAuth handling from fxa-client.js, this is now stored in relier.email * Create a search-params mixin in models/mixins. * Migrate signin/signup/verification finishing code from service-mixin to the brokers so each broker can do their own thing. * Really shrink service-mixin to a bare bare minimum, fix the unit tests, make sure all the current functional tests pass. * Extract a ChannelMixin for use by the brokers.