Closed Bug 1319433 Opened 8 years ago Closed 7 years ago

Devices differ in Synced Tab and Send to Device menus

Categories

(Firefox :: Sync, defect, P1)

49 Branch
defect

Tracking

()

RESOLVED FIXED
Firefox 54
Tracking Status
firefox54 --- fixed

People

(Reporter: rfeeley, Assigned: eoger)

References

Details

Attachments

(2 files)

Attached image devices-mismatch.png
Unless the devices without open tabs are hidden (and I didn't think we were doing this), the two devices lists do not appear to be matching. These two lists should match the Sync devices in FxA/Settings.
I can't work out how this could happen:

* "Send Page to Device" uses the clients engine's list of tabs, and excludes devices that haven't synced in a week. It seems strange that Ryan would have so many dupe devices that did sync within a week though.

* SyncedTabs uses the list of clients known to the "tabs" engine - ie, clients which have uploaded their tabs. In practice, this should be all devices. These tab records have a TTL of 7 days.

So somehow, Ryan has many devices that have synced in the last 7 days, but haven't uploaded tabs. Tab syncing must be enabled or (a) we wouldn't be showing the sidebar and (b) no devices would be syncing tabs.

So I can't reproduce it locally and nor can I explain it. I guess seeing what about-sync shows for both those collections might be interesting...
Actually, one scenario is where a device has started and synced within the last 7 days, but hasn't actually opened any new tabs (or navigated to new pages in existing tabs) once Sync is initialized - for example, a new tab may have been opened within the first 10 seconds of the browser starting (so Sync missed it), or new tabs were only opened in private-browsing mode (in which case we will ignore it)

If this is actually the case here, I doubt we should treat it as a high priority as it seems unusual, but I guess the solution would be for SyncedTabs.jsm to use the list of clients in the clients-engine as canonical.
Flags: needinfo?(markh)
Flags: needinfo?(markh) → needinfo?(eoger)
I'll send a build to rfeeley to confirm this does not happen anymore (works on my machine).
Assignee: nobody → eoger
Status: NEW → ASSIGNED
Flags: needinfo?(eoger)
Priority: -- → P1
Comment on attachment 8828540 [details]
Bug 1319433 - Bump tabs engine TTL to 21 days.

After thinking about it I think I should add some tests, clearing review flag for now.
Attachment #8828540 - Flags: review?(markh)
/me in IRC:

* I think this patch is suggesting there's a client record without a corresponding tabs record? I guess that must be when a client hasn't synced for 7 days, after which the tabs engine TTL causes the tab record to die, but the client to remain? Is there another scenario you can think of?

* If not, I'm wondering if we should consider having the tabs TTL match the clients TTL? Otherwise, and IIUC, the user will still see the client record shown, but without any tabs, which may still cause users to report a bug.

to which rnewman replied:

* user turned off tab sync? Even if the TTL is the same, remember that sending a tab to a client bumps its TTL. All kinds of ways you could get a mismatch here.

to which I replied:

* That's an excellent point - if a user *does* turn tab syncing off, I doubt they would expect the client to appear in the synced tabs list, even with no tabs.

and I didn't write in IRC but am writing here:

* Even though a user sending a tab to a device bumps its TTL, IMO using the same TTL would make this mismatch enough of an edge-case that we could probably just live with it - it's not as though we are doing anything "wrong" here, it's just that the user's expectations aren't being met - I think the same TTL would make it far less likely we wouldn't meet those expectations.

So as usual, things get murky quickly :(

Edouard, are you able to explain these situations to rfeeley and see what he suggests?
This is a good step forward towards having identical clients lists (minus the edge case), let's go for it.
Comment on attachment 8828540 [details]
Bug 1319433 - Bump tabs engine TTL to 21 days.

You should also do this for Android (it's in m-c), and file a bug to do so on Android.
Comment on attachment 8828540 [details]
Bug 1319433 - Bump tabs engine TTL to 21 days.

https://reviewboard.mozilla.org/r/105896/#review108040

nice :)
Attachment #8828540 - Flags: review?(markh) → review+
Pushed by eoger@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/a151ee7bc049
Bump tabs engine TTL to 21 days. r=markh
https://hg.mozilla.org/mozilla-central/rev/a151ee7bc049
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 54
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: