Open Bug 1884093 Opened 2 years ago Updated 1 year ago

Not all devices are displayed inside Firefox View> Send tab to device

Categories

(Firefox :: Sync, defect)

Desktop
All
defect

Tracking

()

Tracking Status
firefox-esr115 --- unaffected
firefox123 --- affected
firefox124 --- affected
firefox125 --- affected

People

(Reporter: atrif, Unassigned)

References

Details

Attachments

(1 file)

Attached image image.png —

Found in

  • 124.0b8

Affected versions

  • 125.0a1 (2024-03-05)
  • 124.0b8
  • 123.0.1

Tested platforms

  • Affected platforms: Windows 10x64, macOS 12, Ubuntu 22
  • Unaffected platforms: none

Preconditions

  • multiple devices connected to sync
  • signed in to sync

Steps to reproduce

  1. Open Firefox View > Open Tabs
  2. Click on the Options for new tabs > Sent tab to device

Expected result

  • All devices are displayed.

Actual result

  • Only some devices are displayed.

Regression range

  • Not a regression, happens after implementation (bug 1845333)

Additional notes

  • Attached a screenshot.

I'm going to move this over to core::widgets since I think this might be an issue with the panel-list. It checks for left and ride positioning of the top-level menu before determining position of the nested/flyout menu but it doesn't check for whether its off the viewport based on content of the submenu.

Component: Firefox View → Widget
Product: Firefox → Core

Er... wrong widgets. Moving to the correct place!

Component: Widget → UI Widgets
Product: Core → Toolkit
Whiteboard: [fidefe-firefox-view]

I'm also seeing this. Devices will eventually disappear from the list. I'd prefer they stay there.

Opening up the other device and syncing it will make the devices reappear.

I'd rather not do that every time I wan to move a tab.

Affected by version 128.12.0esr

Sadly this is hard coded to pull in the most recent 21 days of devices.

https://github.com/mozilla-firefox/firefox/blob/main/services/fxaccounts/FxAccountsClient.sys.mjs#L28

const DEVICES_FILTER_DAYS = 21;

used here

https://github.com/mozilla-firefox/firefox/blob/main/services/fxaccounts/FxAccountsClient.sys.mjs#L745

  async getDeviceList(sessionTokenHex) {
    let timestamp = Date.now() - 1000 * 60 * 60 * 24 * DEVICES_FILTER_DAYS;
    let path = `/account/devices?filterIdleDevicesTimestamp=${timestamp}`;
    let creds = await deriveHawkCredentials(sessionTokenHex, "sessionToken");
    return this._request(path, "GET", creds, {});
  },

Related to https://bugzilla.mozilla.org/show_bug.cgi?id=1772415

I'm not seeing any justification for this change in the Bugzilla nor Phabricator commentary - presumably an out-of-band internal / JIRA discussion - do we know why this change was made?

Are you asking me? I have no idea. I'm a developer, but in terms of Firefox, I'm a user. If you want this changed, please let me know how and maybe I can work on it and send you a PR.

Can we make this an about:config thing?

(In reply to Brian DeRocher from comment #5)

Sadly this is hard coded to pull in the most recent 21 days of devices.

https://github.com/mozilla-firefox/firefox/blob/main/services/fxaccounts/FxAccountsClient.sys.mjs#L28

const DEVICES_FILTER_DAYS = 21;

used here

https://github.com/mozilla-firefox/firefox/blob/main/services/fxaccounts/FxAccountsClient.sys.mjs#L745

  async getDeviceList(sessionTokenHex) {
    let timestamp = Date.now() - 1000 * 60 * 60 * 24 * DEVICES_FILTER_DAYS;
    let path = `/account/devices?filterIdleDevicesTimestamp=${timestamp}`;
    let creds = await deriveHawkCredentials(sessionTokenHex, "sessionToken");
    return this._request(path, "GET", creds, {});
  },

Thanks for investigating this. The sync team maintains this code and looking at bug 1772415 I don't see any explanation for why a hard-coded time was added.

:markh, is this something that can be changed or made into a pref?

Severity: S3 → --
Component: UI Widgets → Sync
Flags: needinfo?(markh)
Product: Toolkit → Firefox
See Also: → 1772415

This was added because many users were reporting duplicate devices for various reasons. After 3 weeks of inactivity Sync is likely to also drop remote tabs from that device and its push subscription will have expired. Most devices which haven't been used for 3 weeks never show up again (although some obviously do).

I can't see a good reason it can't be made a pref though.

Flags: needinfo?(markh)

The severity field is not set for this bug.
:skhamis, could you have a look please?

For more information, please visit BugBot documentation.

Flags: needinfo?(skhamis)
Severity: -- → S3
Flags: needinfo?(skhamis)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: