Open Bug 1467585 Opened 6 years ago Updated 2 years ago

Fx Account device name change appears on desktop after sync correctly but seems like it is not correctly set in everyplace

Categories

(Firefox for iOS :: Firefox Accounts, defect, P3)

Other
iOS
defect

Tracking

()

Tracking Status
fxios + ---

People

(Reporter: isabel_rios, Unassigned)

References

Details

Attachments

(4 files)

Attached file TabsSyncTPSLogs.rtf
We are trying to implement a SyncIntegration test that does the following:
- Open a tab on Firefox iOS
- Sign in with a valid FxAccount
- Open Firefox on Desktop
- Sign in with the same FxAccount and check that the tab is synced

For the verification on Desktop we are using TPS (attached tps tabs asset list)

The test only passes if the Device Name (FxAccount setting) is the default one: "Fennec on <device's owner>"
To be able to run this test in any environment, we decided to change the device's name to a customized one like: "profileiOS" but then the test fails.

The error given is that the tab can't be found. And that's because the profile name does not match(see full log attached):

>executing action VERIFY on tab {"uri":"https://slack.com/intl/es-es","profile":"profileiOS"}
>2018-06-07 17:51:37.984 CROSSWEAVE INFO: Dumping tabs for Fennec on MacBook Pro de Isabel...
>[{"icon":null,"title":"Donde tu trabajo fluye | >Slack","lastUsed":"1528386614.70","urlHistory":["https://slack.com/intl/es-es"]}]
>2018-06-07 17:51:37.985 CROSSWEAVE ERROR: [phase phase1] RunNextTestAction failed >- Error: ASSERTION FAILED! error locating tab (resource://tps/logger.jsm:74:11) 

It is strange because as you can see in the screenshot attached, the new device name appears correctly on Desktop but for some reason that it is not taken for the final verification. 
Any idea about the issue here/workaround?
Could this bug be related or similar to bug 1443602

Thanks!
Attached image TabsSyncedDesktop.png
Attached file test_tabs.rtf
Is it possible that you set the client name after the tabs collection syncs?

If you use the https://addons.mozilla.org/en-US/firefox/addon/about-sync/ addon on Desktop and find the "tabs" collection, you'll find the device name in there, and that's what TPS is using. I suspect that in your scenario, the old name is in the "tabs" collection but the new name is in the "clients" collection.
Thanks Mark, that has been very helpful. We do the sync before and after the name is changed. I have used your addon and have checked that the name under tabs collection is always the older one...looks like the change is not applied there.
Attached an screenshot where it is possible to see that what Mark says is what is happening.
The new name appears under Client, but not under Tabs.

I realized also that the device name change does not persist if we disconnect sync and connect again with same account. Could it be that we are not storing the name correctly?

Thanks!
Flags: needinfo?(justindarc)
(In reply to Isabel Rios[:isabel_rios] from comment #5)
> Attached an screenshot where it is possible to see that what Mark says is
> what is happening.
> The new name appears under Client, but not under Tabs.

If you can repro this manually, then it's probably a minor iOS bug. The desktop UI doesn't actually use that name (it uses the name in the client record) and we can change TPS to use the same name as the UI - we'd use something like `service.clientsEngine.getClientName(clientid)`

> I realized also that the device name change does not persist if we
> disconnect sync and connect again with same account. Could it be that we are
> not storing the name correctly?

That's expected - disconnecting should reset all sync customizations.
(In reply to Mark Hammond [:markh] from comment #7)
> If you can repro this manually, then it's probably a minor iOS bug.

To be clear, IMO there's no good reason for the "tabs" record to have a clientName attribute in the first place, so iOS not always having that correct is quite minor and we should probably deprecate that field instead of fixing it :)
> That's expected - disconnecting should reset all sync customizations.

Thanks for confirming this

> To be clear, IMO there's no good reason for the "tabs" record to have a clientName attribute in the first place

Sorry, I'm not sure I completely understand, if that attribute is removed there then we would need TPS to check in the client collection for the name? or use in tabs collection the same name attribute as in client collection?

> so iOS not always having that correct is quite minor and we should probably deprecate that field instead of fixing it :)
I will remove the ni to iOS team then since this seems that can be fixed on TPS side, right?

Thanks for you help and support here!
Flags: needinfo?(justindarc)
(In reply to Isabel Rios[:isabel_rios] from comment #9)
> Sorry, I'm not sure I completely understand, if that attribute is removed
> there then we would need TPS to check in the client collection for the name?

Yes - this is what Firefox uses when it shows the device name.

> or use in tabs collection the same name attribute as in client collection?

I'm not sure what you mean by this.
Blocks: 1466899
Priority: -- → P3
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.