Closed Bug 591661 Opened 14 years ago Closed 14 years ago

sync does not allow to use an own server

Categories

(Firefox for Android Graveyard :: General, defect)

defect
Not set
normal

Tracking

(fennec-)

RESOLVED DUPLICATE of bug 602685
Tracking Status
fennec - ---

People

(Reporter: allo, Assigned: madhava)

References

Details

User-Agent:       Mozilla/5.0 (X11; U; Linux x86_64; de; rv:1.9.2.8) Gecko/20100723 Ubuntu/10.04 (lucid) Firefox/3.6.8
Build Identifier: android alpha

i am using firefox sync (mozilla weave) with my own server on desktop, but the android fennec browser does not allow to enter the url for the own server.

Reproducible: Always

Steps to Reproduce:
-
Actual Results:  
-

Expected Results:  
-

-
OS: Linux → Android
Hardware: x86_64 → Other
We do not expose any UI, but you might be able to use about:config to set a custom server.

Madhava - Any thoughts on adding the UI for a custom server? I wonder how pervalent it is? Also, maybe the about:config method is good enough, especially for Fennec 2
oh, i will try it. if it works via about:config its okay for me, because i do not need to change this everyday :)
Status: UNCONFIRMED → NEW
Ever confirmed: true
OS: Android → All
Hardware: Other → All
Did this work for you, Alexander?
no, i found no config keys for sync in about:config. cannot try at the moment, because fennec does not want to run at all. but i'm not sure if i am having the correct version now (or should every .apg work?)
It's possible to do this with about:config, but it's a bit tricky. Every time you change the username and hit Connect, Sync preferences are reset. So the workflow is:

1. Enter your username (and some *fake* password and passphrase) and hit Connect, expect error.

2. Go to about:config and change services.sync.serverURL to your custom Sync server.

3. Go back to the Sync settings and enter your real password and passphrase. *Don't* change the username (otherwise services.sync.serverURL will be reset).
tracking-fennec: --- → ?
Mike - thoughts on this?

Madhava - How would we expose this, if we want to do it?
This was a big deal for FxHome, and is part of our overall "you don't have to use our service" story...
Let's figure out the UI issues. Also, what moving parts do we need to worry about? Is this as simple as exposing a textbox for the URL? (I doubt it)
(In reply to comment #9)
> Let's figure out the UI issues. Also, what moving parts do we need to worry
> about? Is this as simple as exposing a textbox for the URL? (I doubt it)

It is as simple as exposing a textbox that corresponds to the services.sync.serverURL pref. You just need to be aware that Weave.Service.startOver() as used by the login code right now [1] resets all sync prefs, including serverURL. But that'd be easy to work around.

[1] http://mxr.mozilla.org/mobile-browser/source/chrome/content/sync.js#74
i think this is screaming "addon".
(In reply to comment #11)
> i think this is screaming "addon".

Possibly, though the current code would make it harder than necessary for an add-on to provide this feature.
I think Ragavan needs to make this call.  I know that there were a lot of negative responses to FxHome not exposing this, and I don't see a compelling reason why Fennec can't implement this.
I can understand your concern mconnor.

ragavan, this is a browser for smaller screen devices (not desktop 24" screens).  real estate is very important.  having another yet option that very few people use is just not an option for us.
We'll need to figure out where it lives.  It shouldn't be in the primary prefs panel, and we don't currently have an advanced section.
(In reply to comment #15)
> We'll need to figure out where it lives.  It shouldn't be in the primary prefs
> panel, and we don't currently have an advanced section.

What are our options if it is not in the primary prefs panel? Are there plans to have an advanced section for Firefox 4?

And to answer Doug's comment #14, I understand that this is for smaller screen devices, but being able to connect to your own custom server is an important part of our promise to users. I agree that it is not a common use case, but we shouldn't make it impossible to connect to personal servers.
(In reply to comment #12)
> (In reply to comment #11)
> > i think this is screaming "addon".
> 
> Possibly, though the current code would make it harder than necessary for an
> add-on to provide this feature.

What kinds of things should we fix?
If we don't want to add a new pref row for the server setting, then on the same row as the "Connect" button we could add a "More Options" or "Choose Server" button...
(In reply to comment #17)
> (In reply to comment #12)
> > (In reply to comment #11)
> > > i think this is screaming "addon".
> > 
> > Possibly, though the current code would make it harder than necessary for an
> > add-on to provide this feature.
> 
> What kinds of things should we fix?

As mentioned in comment 10, the login code resets all prefs when the user logs in with a different account [1]. This is definitely the correct behaviour, but it will also wipe the services.sync.serverURL pref. My suggestion is that the login code would carry that one setting over, independent of whether the actual custom server textbox was provdied by an add-on or not. E.g.:

     // Cause the Sync system to reset internals if we seem to be switching accounts
     // but keep the custom server setting.
     let serverURL = Weave.Svc.Prefs.get("serverURL");
     if (this._settings.account.value != Weave.Service.account) {
       Weave.Service.startOver();
       Weave.Svc.Prefs.set("serverURL", serverURL);
     }

[1] http://mxr.mozilla.org/mobile-browser/source/chrome/content/sync.js#74
Let's make a decision for final
tracking-fennec: ? → 2.0+
Assignee: nobody → madhava
tracking-fennec: 2.0+ → 2.0b3+
I may have missed this, but can we have a line in about:config that, by default, points to the mozilla server, but that a user can change to point to his or her own?

It seems to me that anyone who is interested in setting up his or her own server would be comfortable enough going into about:config to set this.

Is the concern that this is not sufficiently "surfaced" for our "you don't have to use Mozilla servers" story?
a) It does exist already, it's just not especially good UX for those users.
b) The hope is that it gets as easy as installing WordPress, and it's already been suggested that some companies will/have set up their own servers internally so their users can use Sync without necessarily having to trust external providers.

All that said, this will only need to show up in the fallback UI in the setup flow, as the J-PAKE piece will carry over server settings if need be.
Right, as mconnor mentions it already exists, but it's very clunky to actually use (even with about:config). My suggestion in comment 19 should make it better. I'll be happy to round that up into a patch if we decide not to surface this at all in UI.
I do not believe that changing a preference in about:config is any worse UX than what a developer (not user) has to do today to install a weave server.  Unless part b of comment 22 is fulfilled, we should not even consider adding this advanced feature to the Fennec UI.
(In reply to comment #24)
> I do not believe that changing a preference in about:config is any worse UX
> than what a developer (not user) has to do today to install a weave server. 

This reasoning doesn't work in the case where one person sets up a server for others to use.  (Anecdotally, this is what we did with the Xmarks server when I worked at Amazon, so that people could sync bookmarks in a security-approved way.)
> This reasoning doesn't work in the case where one person sets up a server for
others to use.  (Anecdotally, this is what we did with the Xmarks server when I
worked at Amazon, so that people could sync bookmarks in a security-approved
way.)

If you are smart enough to setup a server, you are smart enough to distribute an addon.  It would probably be easier in that way then tell your user's to switch some preference.
I don't understand why you're arguing about an extra toggle/text field which will only be displayed if the easy setup path fails for some reason.  Having to enter this separately is pretty crappy UX, but I think you're taking a fairly narrow view of possibilities.  From a Sync product POV, this is an essential part of the product offering, and a surprising number of users already make use of this option.

FWIW, b) is an expected outcome with the new Python-based server, which has a metapackage and a default config that gets you up and running very quickly.
as long as we don't use any addition space in the default case, i will be happy.
okay, that was too terse.  following the election and didn't give this enough:

i am mostly worried about preferences creep.  I think we already have too many options.  (Disable images?  we are in 2010, and writing a modern web browser.  the web doesn't work without images, and if you really want to do this, use an addon!)  I filed bugs to remove this and the disable js.

mike, how about instead of having all of this management of one's account in the preferences as it is, how about having a button in our prefs that takes you to about:sync and management in content?  You'll have a ton more room and flexibility.   Of course, I defer to madhava.  He makes miracles happen.  Maybe he can figure out the balance here.  I just hate to see more stuff (even important stuff like sync) clutter up the preferences list.  I hope you can understand.
Let's back up: this shouldn't be a pref, just like entering account creds shouldn't be pref lines.  The current UI is changing, this isn't an "add a line to the current UI" bug at this point, IMO.

To establish context, there's a new-and-being-mocked-up setup flow which should prevent this from being shown in the 99% case (we'll securely pair and pass over user/pass/key/custom server (if set)), I'm just pointing out that the fallback with manual entry also should allow entry of a custom server, like our other two clients.
Yes, the Sync UI in Fennec will be changing soon. I suspect we could start changing it now, to something like:
* Use preference UI to show status, connect/disconnect and open setup
* Use about:sync-setup in-content UI to show any and all setup related to Sync

For now, we could simply port the username/password/key UI to the about: page. Soon, we would be adding the new setup workflow to the about: page

(I suggest keeping the minimal preference UI since we would never give up any other, more primary UI space for this)
Wait a minute.

Is this still an issue at all with the move to JPAKE as the only way of
connecting in Fennec?

If you you have to connect your device by going to a copy of Firefox already
paired with your account -- that account is already associated with the server
you intend to use, no?  So you wouldn't have to specify the server in Fennec -
it would be part of the account information, wouldn't it?
Oh, mconnor answered my question in comment 30.  I should reload before commenting.
we won't block shipping fennec 4.0 on supporting a private server for sync. Patches welcome and will probably get approval though.
tracking-fennec: 2.0b3+ → 2.0-
Sync UI rework will happen in bug 602685
Depends on: 602685
Fennec connection UI for sync, accommodating using a custom server if you choose not to use pake.  If you _are_ using pake with a custom server (which I've been told will be the normal case), you just use the regular pake flow, given that you're connecting with an account that obviously knows what server it's associated with.

http://www.flickr.com/photos/madhava_work/5164827140/sizes/l/
What should we do with this bug?
This will be fixed when bug 602685 is complete; resolving as duplicate.
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.