Closed Bug 1745313 Opened 3 years ago Closed 3 years ago

Remove Slack UA and ship it to release users

Categories

(Web Compatibility :: Interventions, task, P1)

Tracking

(firefox95 fixed, firefox96 fixed, firefox97 fixed)

RESOLVED FIXED
Tracking Status
firefox95 --- fixed
firefox96 --- fixed
firefox97 --- fixed

People

(Reporter: denschub, Assigned: denschub)

References

Details

Attachments

(5 files)

According to this comment from a Slack employee, Slack plans on officially enabling Huddles for Firefox on Monday. This is awesome.

In that case, our User Agent override is no longer needed, and should be removed as fast as we can to reduce friction here. I'll build a patch and prepare a ship-it release to make this as quick as possible.

No longer blocks: 1727100
See Also: → 1727100
Attached file Upstream PR

Attaching a dep-signed .xpi for QA.

Pascal, as a release owner for 95, can you sign off on the webcompat-release-hotfix-28.0.1-build1 release on shipit as one of the signoffs needed to get it into the Promote phase? The changes in those releases are what's contained in the patch I just attached to this bug. It's a simple, low-risk patch that only removed a WebCompat intervention, and I've verified the dep-signed xpi myself just now.

My plan is to ship this as soon as possible after Slack has rolled out their changes to officially support Firefox on their end, probably on Monday if we're done on our end by then. Ideally, we'd skip formal QA on the dep-signed build and directly jump into QA testing with a release-signed build to save some time here.

Flags: needinfo?(pascalc)

This change is ok for me.

Flags: needinfo?(pascalc)
Attachment #9254736 - Attachment description: WIP: Bug 1745313 - Remove the Slack UA override. r?twisniewski! → WIP: Bug 1745313 - Release - Remove the Slack UA override. r?twisniewski!

Andreas, see comment 4 for context. Apparently, this needs sign-off from a System Addon Admin and RelEng - and RelMan doesn't have the permissions to sign off here. Can you help me out?

Flags: needinfo?(awagner)

Aki and Joel helped me out (thanks!), so I have a release-signed .xpi for QA to test on Monday. I'll keep the previous needinfo? alive, because we still need sign-off on the release of that update when we're done.

This addon is on the release-sysaddon channel of Balrog, for Firefox 95.*.

Thanks Aki.

Oana, as I mentioned on Slack, please have a look at this on Monday together with Raul. This needs to be tested in the current regular Release version (95.0) on Windows and macOS. I do not expect Linux to behave any different, so we can focus on those two.

Full steps:

  1. In a unmodified Firefox Release and a fresh profile, confirm that on about:support, in the Firefox Features section, it shows Web Compatibility Interventions with Version 28.0.0.
  2. Confirm on about:compat that you see two entries for slack.com: One entry is located in the User Agent Overrides section, and another one inside Interventions.
  3. Open Slack (the Mozilla-Slack works fine), and open the Developer Tools with F12.
  4. In DevTools, open the Settings via the Three-Dot-Menu -> Settings. In there, enable the checkbox Enable browser chrome and add-on debugging toolboxes.
  5. Then, in DevTools, select the Console tab.
  6. In the text field at the bottom, enter navigator.userAgent and press enter - confirm that it says something like Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) FxQuantum/58.0 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36 (the Windows version will look slightly different - the Chrome and Safari parts at the end are relevant, not the version numbers or platform identifier)
  7. In the same text field, enter navigator.vendor, press enter, and confirm it says Google Inc.
  8. Close the Slack tab, and verify you see an entry with webcompat@mozilla.org-28.0.1[...]signed.xpi at this URL.
  9. Close Firefox.
  10. Change the update channel to release-sysaddon in the channel-prefs.js file inside the Firefox directory:
    • on Windows, this file should be at C:\Program Files\Mozilla Firefox\defaults\pref\channel-prefs.js
    • on macOS the file should be at /Applications/Firefox.app/Contents/Resources/defaults/pref/channel-prefs.js
  11. Restart Firefox, using the same profile as before.
  12. Open the Firefox Browser Console:
    • on Windows, press Ctrl+Shift+J to open it
    • on macOS, it's Cmd+Shift+J
  13. In that new console, run Components.utils.import("resource://gre/modules/AddonManager.jsm"); AddonManagerPrivate.backgroundUpdateCheck();
  14. You won't see any progress, the update happens in the background. Wait 30 seconds, just to make sure Firefox has enough time to download and apply all updates.
  15. On about:support, confirm that the Web Compatibility Interventions version number is now 28.0.1buildid20211210.021657.
  16. On about:compat, confirm that the two Slack entries are no longer there.
  17. Open a Slack tab. You should still be logged in, and Slack should be working (i.e. no blank page, no unstyled content, ...)
  18. Open the DevTools again and switch into the console tab.
  19. Check navigator.userAgent again. This time, you should see a regular Firefox User Agent string, like Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:95.0) Gecko/20100101 Firefox/95.0, without any mention of Chrome or Safari.
  20. Check navigator.vendor again. This time, you should see an empty string, i.e. "".
  21. Restart Firefox.
  22. Without doing anything else, confirm that, after the restart, about:support still shows Web Compatibility Interventions Version 28.0.1buildid20211210.021657, and that about:compat still does not show any Slack entries.

If you run into any issues, please let me know. If I'm not available yet, Karl might be able to help as well if there is anything unclear.

Flags: needinfo?(oana.arbuzov)

Johnny Rodgers informed me that Slack would be deploying this change today. I've just tested Slack without any User Agent spoofs applied, and I confirm that Huddles is now, indeed, available.

Based on that, I will land the patch for Firefox Nightly now. This will have no impact on Beta or Release users, but the few days in the tree over the weekend will give us a bit of extra confidence in the patch planned to be rolled out to Release.

Keywords: leave-open
Pushed by dschubert@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/ff8bbe36b07f Remove the Slack UA override. r=twisniewski,webcompat-reviewers
Summary: Remove Slack UA and ship it to release users via ship-it → Remove Slack UA and ship it to release users

Dennis we've checked on our side both on Windows and Mac, and can confirm, that after performing all the steps ()1-22) , Slack Huddle is working with Firefox Release 95.

Flags: needinfo?(oana.arbuzov) → needinfo?(dschubert)

Thanks for confirming, and for going the extra mile to make sure Huddles is still working! Really appreciate that. :)

Pascal, based on the QA approval in the last comment, can you sign-off on this .xpi release in Balrog and have it kicked off? The patch has been in Nightly over the weekend and does not cause any issues so far, QA passed, and the patch is generally low-risk, so I'm very confident.

I've also already prepared patches for uplifts into mozilla-beta and mozilla-release, and I'll request uplift as soon as the system addon update is being rolled out, to make sure the tree represent what's been rolled out to users.

Flags: needinfo?(pascalc)
Flags: needinfo?(dschubert)
Flags: needinfo?(awagner)

(In reply to Dennis Schubert [:denschub] from comment #16)

Pascal, based on the QA approval in the last comment, can you sign-off on this .xpi release in Balrog and have it kicked off? The patch has been in Nightly over the weekend and does not cause any issues so far, QA passed, and the patch is generally low-risk, so I'm very confident.

This is ok for me.

Flags: needinfo?(pascalc)
Attachment #9254802 - Attachment description: WIP: Bug 1745313 - Beta - Remove the Slack UA override. r?twisniewski! → Bug 1745313 - Beta - Remove the Slack UA override. r?twisniewski!
Attachment #9254736 - Attachment description: WIP: Bug 1745313 - Release - Remove the Slack UA override. r?twisniewski! → Bug 1745313 - Release - Remove the Slack UA override. r?twisniewski!

The update is now live on the release channel.

Comment on attachment 9254736 [details]
Bug 1745313 - Release - Remove the Slack UA override. r?twisniewski!

Beta/Release Uplift Approval Request

  • User impact if declined: None - the update is being rolled out via Balrog. The uplift request was filed to bring the tree back in sync with what users actually see.
  • Is this code covered by automated tests?: Yes
  • Has the fix been verified in Nightly?: Yes
  • Needs manual test from QE?: No
  • If yes, steps to reproduce:
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): The change is only removing a single intervention, and the change has been verified by QA as well has tested in Nightly for a couple of days.
  • String changes made/needed:
Attachment #9254736 - Flags: approval-mozilla-release?

Comment on attachment 9254802 [details]
Bug 1745313 - Beta - Remove the Slack UA override. r?twisniewski!

Beta/Release Uplift Approval Request

  • User impact if declined: Users of Firefox Beta would still use a spoofed User Agent on Slack, while Firefox Nightly and Firefox release users are not seeing that. This would be inconsistent to users, and inconsistent for Slack as well.
  • Is this code covered by automated tests?: Yes
  • Has the fix been verified in Nightly?: Yes
  • Needs manual test from QE?: No
  • If yes, steps to reproduce:
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): The change is only removing a single intervention, and the change has been verified by QA as well has tested in Nightly for a couple of days.
  • String changes made/needed:
Attachment #9254802 - Flags: approval-mozilla-beta?

Comment on attachment 9254802 [details]
Bug 1745313 - Beta - Remove the Slack UA override. r?twisniewski!

Approved for 96.0b5

Attachment #9254802 - Flags: approval-mozilla-beta? → approval-mozilla-beta+

Comment on attachment 9254736 [details]
Bug 1745313 - Release - Remove the Slack UA override. r?twisniewski!

Approved for a 95 dot release, thanks.

Attachment #9254736 - Flags: approval-mozilla-release? → approval-mozilla-release+

Telemetry-data is confirming that the rollout is progressing. Since rollout work is done, and uplifts are done, I'll now close this as fixed!

Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Keywords: leave-open

Hurdles worked on Firefox 95.0, but no longer work on Firefox 95.0.2.

This comment https://bugzilla.mozilla.org/show_bug.cgi?id=1727100#c9 from a slack employee seems to indicate that they don't yet support this for all platforms, so it seems that removing the UA was too eager.

Is there any workaround in the meantime (e.g.: until Slack supports Firefox on all platforms?)

Slack does not yet support Linux, and they have some good reasons for it.

Removing the UA override, however, was not "too eager". We were aware of a couple of issues caused by this - for example issues with scrolling, that made Slack a bit harder to use sometimes. The current state allows Windows and macOS users to use Slack without any issues, and since that's the majority of our users, that's a good balance.

If you want to override the UA string for yourself using one of the many extensions that do that, then you're on your own if things break. But I'm not going to stop you from doing that. :)

Can the workaround maybe be restored for all platforms except Windows/Mac? That would likely yield the best results for everyone. I don't think the scrolling issues affected Linux, right?

Or maybe, back on the original issue; what does Firefox do differently on these platforms? Isn't WebRTC something that should behave the same on any supported platform?

Can the workaround maybe be restored for all platforms except Windows/Mac? That would likely yield the best results for everyone. I don't think the scrolling issues affected Linux, right?

Some issues did affect Linux. Some of the issues we're aware of are related to screensharing and window sharing. Stuff like this always has some platform-dependency, and if you're a Linux user, I don't have to tell you how complicated the window manager situation can be. :)

And sorry, no, I can't really restore the UA override. There is some real maintenance burden on our side for those kinds of interventions: not only do we have to spend QA resources, who run manual verification on all shipped interventions regularly to make sure we don't accidentally break stuff, we're also exposing ourselves to potential bug reports about stuff that's broken. We can't really deal with those, and neither can Slack, as they don't test their Chrome-codepath in Firefox.

The Web Compatibility team already has a list of things we want to fix that is much larger than the number of things we can fix with the time and resources we have available. If we had unlimited time and resources, then I'd be more than happy to support a User Agent override for Linux, but at this point, I just can't. Slack is actively working on those things, and Firefox engineers are actively working on ironing out lots of WebRTC/media related issues. So we just can't spend more time here.

I know this is not what you wanted to hear, but I hope you can at least understand where I'm coming from. If you have more questions or concerns, or would like to chat more about this, you're always welcome in our public matrix chatroom at #webcompat:mozilla.org, where I or a colleague should be able to answer your questions.

You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: