Closed Bug 636135 Opened 9 years ago Closed 9 years ago

Sync UI is left in a bad state if you disable Sync while a sync is in progress

Categories

(Firefox for Android Graveyard :: General, defect)

ARM
Android
defect
Not set

Tracking

(fennec2.0+)

VERIFIED FIXED
Tracking Status
fennec 2.0+ ---

People

(Reporter: ioana.chiorean, Assigned: mfinkle)

References

Details

(Whiteboard: [fennec-softblocker])

Attachments

(1 file)

Build id: Mozilla/5.0 (Android;Linux armv7l;rv:2.0b12pre)Gecko/20110222
Firefox/4.0b12pre Fennec /4.0b6pre 

Device: HTC Desire A8181
OS: Android 2.2

Steps to reproduce:
1. Open Fennec app
2. From Preferences - Sync tap on Connect
3. Connect to Sync with a valid Sync account
4. Tap on Details > Sync Now
5. While Sync is in progress disable Sync
6. Enable Sync again.

Expected result:
- When Sync is enabled again, at least the Connect button should be displayed or if the app still remembers the credentials and it reconnects automatically to Sync, the Details button should appear.

Actual result:
- Under Enable Sync, it doesn't exist any button. Even if Sync is disabled and enabled again, nothing is changed on Sync settings.

Note: 
- please see http://www.youtube.com/user/qaioana#p/u/0/cXgnwCug0kM
Duplicate of this bug: 636460
See also, the UI bustage in bug 636460
Summary: Details/Connect button is not displayed when Sync is enabled after disabling → Sync UI is left in a bad state if you disable Sync while a sync is in progress
tracking-fennec: --- → ?
If we can fix these, great, but we shouldn't spend days on it.
tracking-fennec: ? → 2.0+
Whiteboard: [fennec-softblocker]
Assignee: nobody → mbrubeck
There's no error in the JavaScript console.  Not sure whether it's are related or not, but I get this output from a debug build when this bug occurs:

JavaScript strict warning: resource://services-sync/util.js, line 383: reference to undefined property this[defer][prop]
WARNING: NS_ENSURE_TRUE(aTime) failed: file /home/mbrubeck/src/mozilla/mozilla-central/widget/src/xpwidgets/nsIdleService.cpp, line 218
Attached patch patchSplinter Review
I could reproduce the problem on desktop and put in some debug code to find th problem. Turns out the sync is still happening in the background. We knew this would happen, but didn't think about the issue of re-enabling while the sync was still in progress.

The login call that happens when we re-enable sync was not firing a login notification - the sync was in progress. The UI never updated.

The patch fires a bogus notification before attempting to re-login. That will get the UI back into a somewhat sane state. In my case, I saw a "Not connected  [Connect]" row appear, but the "Connect" button was disabled - you can't connect in the middle of a sync.

When the in-progress sync finished, the "Connect" button enabled, and I was able to display the connect dialog.

The dialog had JPAKE Sync Codes populated too.
Assignee: mbrubeck → mark.finkle
Attachment #516265 - Flags: review?(mbrubeck)
Comment on attachment 516265 [details] [diff] [review]
patch

Not perfect, but probably the right thing to do until we can actually interrupt an in-progress sync.
Attachment #516265 - Flags: review?(mbrubeck) → review+
pushed:
http://hg.mozilla.org/mobile-browser/rev/4fa6776ca366
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Blocks: 638443
Filed followup bug 638443 to cancel the in-progress sync.
VERIFIED FIXED on:
Build ID: Mozilla /5.0 (Android;Linux armv7l;rv:2.0b13pre) Gecko/20110316
Firefox/4.0b13pre Fennec /4.0b6pre
Device: HTC Desire
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.