Closed Bug 1014150 Opened 6 years ago Closed 6 years ago

Pull-to-Refresh for Sync'd Tabs doesn't fetch sent tabs

Categories

(Firefox for Android :: Awesomescreen, defect)

ARM
Android
defect
Not set
normal

Tracking

()

RESOLVED FIXED
Firefox 32

People

(Reporter: pwd.mozilla, Assigned: nalexander)

References

Details

Attachments

(1 file)

User Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:32.0) Gecko/20100101 Firefox/32.0 (Beta/Release)
Build ID: 20140508061715

Steps to reproduce:

1. Send a tab from another device
2. Go to synchronised tabs tray in Fennec
3. Pull-to-refresh


Actual results:

Synchronised tabs list is updated but no sent tab notifications arrive


Expected results:

Synchronised tabs list should be updated and all tabs awaiting delivery should be fetched and generated notifications.
Blocks: 850600
OS: Linux → Android
Hardware: x86 → ARM
Perhaps the sending device needed to Sync first. I'm not sure if after a tab is sent that triggers a Sync automatically.
This comes down to: do we sync the clients collection whenever we do a tabs-only sync, or do we only sync the tabs collection?

I'll bet the latter, in which case:

public class RemoteTabsContainer extends GeckoSwipeRefreshLayout
                                 implements TabsPanel.PanelView {
    private static final String[] STAGES_TO_SYNC_ON_REFRESH = new String[] { "tabs" };

should also include "clients", or we should change requestSync to always sync clients. Depends how much flexibility we want.
Status: UNCONFIRMED → NEW
Ever confirmed: true
(In reply to Richard Newman [:rnewman] from comment #2)
> This comes down to: do we sync the clients collection whenever we do a
> tabs-only sync, or do we only sync the tabs collection?
> 
> I'll bet the latter, in which case:
> 
> public class RemoteTabsContainer extends GeckoSwipeRefreshLayout
>                                  implements TabsPanel.PanelView {
>     private static final String[] STAGES_TO_SYNC_ON_REFRESH = new String[] {
> "tabs" };
> 
> should also include "clients", or we should change requestSync to always
> sync clients. Depends how much flexibility we want.

Aha!  I was quite sure that "clients" was always synced, no matter what we request; but in fact, that is not the case.

I'm on the fence about including clients here.  If we include clients (arguing that tabs and clients are connected), maybe we should just sync everything, since this entry point to sync is likely to become *the* entry point to force a sync?   It is weird that this doesn't fetch tabs from other devices, isn't it... yeah, I'm sold.  Let's include clients.
Assignee: nobody → nalexander
Status: NEW → ASSIGNED
Both collections impact the state of your remote tabs, so we should
update both when we want your tabs.

This will need to land upstream, but I'll backport when required.
Attachment #8427246 - Flags: review?(rnewman)
Attachment #8427246 - Flags: review?(rnewman) → review+
https://hg.mozilla.org/mozilla-central/rev/faf375548c7d
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 32
You need to log in before you can comment on or make changes to this bug.