Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Invite Debian-based distribution users to use Mozilla's .deb package instead of our current .tar.gz file #12966

Closed
JohanLorenzo opened this issue Apr 5, 2023 · 19 comments
Assignees
Labels
P2 Second level priority - Should have

Comments

@JohanLorenzo
Copy link
Contributor

JohanLorenzo commented Apr 5, 2023

Description

Meta-bug: bug firefox-deb-repackage.
Additional context: FFXP-2363

In a few Firefox release cycles, the Release Engineering team will ship Firefox as a .deb package for Ubuntu and Debian users. Unlike we've always done so far, we won't redirect users to our latest binaries this time. Instead, we will display instructions on how they can set up their package manager to use our package. This is a standard practice in the Linux community (e.g.).

Timeline

We currently aim to get our first nightly users in Firefox 115 whose Nightly cycle starts a month from now. Depending the feedback we get from users, we may either ride the 115 train or let it bake in Nightly.

We plan to first announce it through Nightly's blog post (bug 1826540). So no need to have the nightly download page ready on the first day. That said, early in the 115 cycle would be appreciated.

Then, we can adjust the beta download page and then the release depending on the user feedback.

Expected behavior

The ultimate goal is to display the instructions (exhaustive list still to be determined) to Debian-based distribution users (e.g. users on Debian, Ubuntu, Linux mint). If we have a way to reliably detect the distro, then we should prevent these users from downloading the .tar.gz archive and show the instructions. If we have no easy way, then all Linux should see the instructions then confirm they want to download the .tar.gz anyway.

These changes should be reflected on the pages liked above as well as the main landing page. Instructions have to be localized too.

How does that sound to you all?

I'm happy to provide additional details.


Success Criteria

Let's agree on the right approach first, I'll be happy to define the success criteria afterwards 🙂

@alexgibson
Copy link
Member

@JohanLorenzo thanks for the heads up. Would it make sense to have the instructions as a SUMO page perhaps? Alternatively we could make a localized instructions page here on mozorg.

We can't detect specific distributions, but we do have existing logic to detect Linux as a general platform. We could use that to redirect people to an instructions page when they click a Firefox download link, instead of triggering a file download.

@JohanLorenzo
Copy link
Contributor Author

JohanLorenzo commented Apr 6, 2023

Great idea! I hadn't thought of it. I see we already have this page on SUMO[1]. For sure, it will need to be updated. I agree it makes more sense to redirect Linux users to this page from bedrock, then!

@alexgibson, would you know who to ping to get a SUMO page changed? Edit: I found this Bugzilla component with some names. I'll get started there 🙂

[1] https://support.mozilla.org/en-US/kb/install-firefox-linux

@JohanLorenzo
Copy link
Contributor Author

I filed bug 1826748 for the SUMO request.

@alexgibson
Copy link
Member

@JohanLorenzo just checking in here - is there anything you need us to do here still?

@JohanLorenzo
Copy link
Contributor Author

Hey @alexgibson! Thanks for checking in! Yeah, we'll eventually need this change. That said, the timeline is not as clear as it was in April. The project got delayed because of a longstanding issue in Firefox. I'll get back to you once the schedule gets clearer again.

@JohanLorenzo
Copy link
Contributor Author

@alexgibson 👋 I have some new info on the timeline. We are targeting Firefox 122 which goes to release on January 23rd. How does that sound to you?

@alexgibson
Copy link
Member

@JohanLorenzo can you give an update on what's hoped for here on our side of things?

@JohanLorenzo
Copy link
Contributor Author

JohanLorenzo commented Dec 11, 2023

So, if SUMO is the source of truth for instructions, then we should point Linux users there. Something like:

  1. a Linux user wants to download Firefox
  2. before downloading the tar.gz, we display a text like: "Using Debian, Ubuntu, or any Debian-based distribution? You can set up our APT repository instead."
  3. a Linux should then choose which option to pick

Does that sounds okay? I don't have any strong preferences, I'm just getting the ball rolling 🙂

@alexgibson
Copy link
Member

@JohanLorenzo can you please provide the SUMO URL you would like to link people to?

I'd like to try and get a little clearer on what's expected here if possible too. Is this correct?

  1. A Linux user lands on http://www.mozilla.org/firefox/new/ and clicks download.
  2. When redirected to http://www.mozilla.org/firefox/download/thanks/, instead of auto-starting the download, we instead display two options:
    a. Link to SUMO for set up instructions
    b. Link to download the tar.gz binary

Is that correct?

Is there any expectations for what should happen for Beta / Dev / Nightly?

@sylvestre
Copy link
Contributor

I would like to see it here too:
https://www.mozilla.org/fr/firefox/all/#product-desktop-release
and having Debian/Ubuntu/Mint in the list ?

and redirect to the sumo page ?

@alexgibson
Copy link
Member

I would like to see it here too:

What do you mean by "it"? Can you please be a bit more specific about what's expected?

@sylvestre
Copy link
Contributor

something like this:
image

(adding a new item in the list)

@JohanLorenzo
Copy link
Contributor Author

@JohanLorenzo can you please provide the SUMO URL you would like to link people to?

Okay, I just asked in bug 1826748#c4

@JohanLorenzo
Copy link
Contributor Author

  1. A Linux user lands on http://www.mozilla.org/firefox/new/ and clicks download.
  2. When redirected to http://www.mozilla.org/firefox/download/thanks/, instead of auto-starting the download, we instead display two options:
    a. Link to SUMO for set up instructions
    b. Link to download the tar.gz binary

LGTM!

@JohanLorenzo
Copy link
Contributor Author

Is there any expectations for what should happen for Beta / Dev / Nightly?

Could we do the same for Nightly and DevEdition? We mustn't do anything with Beta for now.

@alexgibson
Copy link
Member

I'll make sure this gets on our team's radar, thanks all!

@alexgibson alexgibson added the P2 Second level priority - Should have label Dec 18, 2023
moz-v2v-gh pushed a commit to mozilla/gecko-dev that referenced this issue Jan 5, 2024
…x, and other Unix-like platforms. r=necko-reviewers,kershaw

Freeze the CPU architecture reported in Firefox's `User-Agent` HTTP header and `navigator.userAgent` and `navigator.platform` Web APIs as `Linux armv81` on Android and `Linux x86_64` on Linux and other Unix-like platforms. Temporarily guard this change behind a pref so it can be disabled quickly, if needed.

Goals:

1. Reduce fingerprintable entropy exposed to web content.
2. Reduce risk of webcompat problems from unexpected CPU architectures.

Chrome's UA reduction effort made the same change in Chrome 107 (2022-10-25): https://www.chromium.org/updates/ua-reduction/#sample-ua-strings-phase-5. Firefox used to report the CPU architecture as "aarch64" on Android, but change to "armv81" to match Chrome and reduce the risk of future webcompat issues.

For now, don't enable this pref for x86 Linux builds because Mozilla's Firefox download page checks the visitor's navigator.platform to determine whether to serve an x86 or x86_64 binary (or to direct users to a support page for other architectures, such as ARM64). If x86 and ARM64 Linux builds report they are "Linux x86_64", then the Firefox download pages will unknowingly serve those users an incompatible x86_64 binary. That issue will be resolved by Bedrock bugs mozilla/bedrock#12966 and mozilla/bedrock#14012.

In the meantime, we can enable this pref in the meantime for ARM64 Linux (to fix YouTube bug 1869521 and webcompat issues like webcompat/web-bugs#130946) because Mozilla doesn't publish official ARM64 Linux builds of Firefox yet. These users are using unofficial or distro builds and presumably know not to attempt to download Firefox (using Firefox) from mozilla.org.

Differential Revision: https://phabricator.services.mozilla.com/D197395
ErichDonGubler pushed a commit to erichdongubler-mozilla/firefox that referenced this issue Jan 6, 2024
…x, and other Unix-like platforms. r=necko-reviewers,kershaw

Freeze the CPU architecture reported in Firefox's `User-Agent` HTTP header and `navigator.userAgent` and `navigator.platform` Web APIs as `Linux armv81` on Android and `Linux x86_64` on Linux and other Unix-like platforms. Temporarily guard this change behind a pref so it can be disabled quickly, if needed.

Goals:

1. Reduce fingerprintable entropy exposed to web content.
2. Reduce risk of webcompat problems from unexpected CPU architectures.

Chrome's UA reduction effort made the same change in Chrome 107 (2022-10-25): https://www.chromium.org/updates/ua-reduction/#sample-ua-strings-phase-5. Firefox used to report the CPU architecture as "aarch64" on Android, but change to "armv81" to match Chrome and reduce the risk of future webcompat issues.

For now, don't enable this pref for x86 Linux builds because Mozilla's Firefox download page checks the visitor's navigator.platform to determine whether to serve an x86 or x86_64 binary (or to direct users to a support page for other architectures, such as ARM64). If x86 and ARM64 Linux builds report they are "Linux x86_64", then the Firefox download pages will unknowingly serve those users an incompatible x86_64 binary. That issue will be resolved by Bedrock bugs mozilla/bedrock#12966 and mozilla/bedrock#14012.

In the meantime, we can enable this pref in the meantime for ARM64 Linux (to fix YouTube bug 1869521 and webcompat issues like webcompat/web-bugs#130946) because Mozilla doesn't publish official ARM64 Linux builds of Firefox yet. These users are using unofficial or distro builds and presumably know not to attempt to download Firefox (using Firefox) from mozilla.org.

Differential Revision: https://phabricator.services.mozilla.com/D197395
@alexgibson
Copy link
Member

@JohanLorenzo circling back to this work. Is it OK for us to deliver the changes here any time after 122 ships?

@JohanLorenzo
Copy link
Contributor Author

Discussed over Slack with @enavajas. We clarified the priority and agreed this ticket needs to ship at the same time as Firefox 122. Thank you folks for working on this! 😃

gecko-dev-updater pushed a commit to marco-c/gecko-dev-wordified-and-comments-removed that referenced this issue Jan 16, 2024
…x, and other Unix-like platforms. r=necko-reviewers,kershaw

Freeze the CPU architecture reported in Firefox's `User-Agent` HTTP header and `navigator.userAgent` and `navigator.platform` Web APIs as `Linux armv81` on Android and `Linux x86_64` on Linux and other Unix-like platforms. Temporarily guard this change behind a pref so it can be disabled quickly, if needed.

Goals:

1. Reduce fingerprintable entropy exposed to web content.
2. Reduce risk of webcompat problems from unexpected CPU architectures.

Chrome's UA reduction effort made the same change in Chrome 107 (2022-10-25): https://www.chromium.org/updates/ua-reduction/#sample-ua-strings-phase-5. Firefox used to report the CPU architecture as "aarch64" on Android, but change to "armv81" to match Chrome and reduce the risk of future webcompat issues.

For now, don't enable this pref for x86 Linux builds because Mozilla's Firefox download page checks the visitor's navigator.platform to determine whether to serve an x86 or x86_64 binary (or to direct users to a support page for other architectures, such as ARM64). If x86 and ARM64 Linux builds report they are "Linux x86_64", then the Firefox download pages will unknowingly serve those users an incompatible x86_64 binary. That issue will be resolved by Bedrock bugs mozilla/bedrock#12966 and mozilla/bedrock#14012.

In the meantime, we can enable this pref in the meantime for ARM64 Linux (to fix YouTube bug 1869521 and webcompat issues like webcompat/web-bugs#130946) because Mozilla doesn't publish official ARM64 Linux builds of Firefox yet. These users are using unofficial or distro builds and presumably know not to attempt to download Firefox (using Firefox) from mozilla.org.

Differential Revision: https://phabricator.services.mozilla.com/D197395

UltraBlame original commit: 8c2839bd6b4a48f0cff10be3a763cb8281a0a871
gecko-dev-updater pushed a commit to marco-c/gecko-dev-comments-removed that referenced this issue Jan 16, 2024
…x, and other Unix-like platforms. r=necko-reviewers,kershaw

Freeze the CPU architecture reported in Firefox's `User-Agent` HTTP header and `navigator.userAgent` and `navigator.platform` Web APIs as `Linux armv81` on Android and `Linux x86_64` on Linux and other Unix-like platforms. Temporarily guard this change behind a pref so it can be disabled quickly, if needed.

Goals:

1. Reduce fingerprintable entropy exposed to web content.
2. Reduce risk of webcompat problems from unexpected CPU architectures.

Chrome's UA reduction effort made the same change in Chrome 107 (2022-10-25): https://www.chromium.org/updates/ua-reduction/#sample-ua-strings-phase-5. Firefox used to report the CPU architecture as "aarch64" on Android, but change to "armv81" to match Chrome and reduce the risk of future webcompat issues.

For now, don't enable this pref for x86 Linux builds because Mozilla's Firefox download page checks the visitor's navigator.platform to determine whether to serve an x86 or x86_64 binary (or to direct users to a support page for other architectures, such as ARM64). If x86 and ARM64 Linux builds report they are "Linux x86_64", then the Firefox download pages will unknowingly serve those users an incompatible x86_64 binary. That issue will be resolved by Bedrock bugs mozilla/bedrock#12966 and mozilla/bedrock#14012.

In the meantime, we can enable this pref in the meantime for ARM64 Linux (to fix YouTube bug 1869521 and webcompat issues like webcompat/web-bugs#130946) because Mozilla doesn't publish official ARM64 Linux builds of Firefox yet. These users are using unofficial or distro builds and presumably know not to attempt to download Firefox (using Firefox) from mozilla.org.

Differential Revision: https://phabricator.services.mozilla.com/D197395

UltraBlame original commit: 8c2839bd6b4a48f0cff10be3a763cb8281a0a871
gecko-dev-updater pushed a commit to marco-c/gecko-dev-wordified that referenced this issue Jan 16, 2024
…x, and other Unix-like platforms. r=necko-reviewers,kershaw

Freeze the CPU architecture reported in Firefox's `User-Agent` HTTP header and `navigator.userAgent` and `navigator.platform` Web APIs as `Linux armv81` on Android and `Linux x86_64` on Linux and other Unix-like platforms. Temporarily guard this change behind a pref so it can be disabled quickly, if needed.

Goals:

1. Reduce fingerprintable entropy exposed to web content.
2. Reduce risk of webcompat problems from unexpected CPU architectures.

Chrome's UA reduction effort made the same change in Chrome 107 (2022-10-25): https://www.chromium.org/updates/ua-reduction/#sample-ua-strings-phase-5. Firefox used to report the CPU architecture as "aarch64" on Android, but change to "armv81" to match Chrome and reduce the risk of future webcompat issues.

For now, don't enable this pref for x86 Linux builds because Mozilla's Firefox download page checks the visitor's navigator.platform to determine whether to serve an x86 or x86_64 binary (or to direct users to a support page for other architectures, such as ARM64). If x86 and ARM64 Linux builds report they are "Linux x86_64", then the Firefox download pages will unknowingly serve those users an incompatible x86_64 binary. That issue will be resolved by Bedrock bugs mozilla/bedrock#12966 and mozilla/bedrock#14012.

In the meantime, we can enable this pref in the meantime for ARM64 Linux (to fix YouTube bug 1869521 and webcompat issues like webcompat/web-bugs#130946) because Mozilla doesn't publish official ARM64 Linux builds of Firefox yet. These users are using unofficial or distro builds and presumably know not to attempt to download Firefox (using Firefox) from mozilla.org.

Differential Revision: https://phabricator.services.mozilla.com/D197395

UltraBlame original commit: 8c2839bd6b4a48f0cff10be3a763cb8281a0a871
@alexgibson alexgibson moved this from Todo to In Progress in Bedrock Technical Roadmap (2024) Jan 18, 2024
@nathan-barrett
Copy link
Contributor

Closed as fixed in #14096

@github-project-automation github-project-automation bot moved this from In Progress to Done in Bedrock Technical Roadmap (2024) Jan 23, 2024
moz-v2v-gh pushed a commit to mozilla/gecko-dev that referenced this issue Apr 16, 2024
…4" in Linux User-Agent. r=necko-reviewers,kershaw

This will match the behavior of ARM64 Linux (bug 1861847) and Chrome reporting their CPU architecture as "Linux x86_64": https://www.chromium.org/updates/ua-reduction/#sample-ua-strings-phase-5

Goals:

1. Reduce fingerprintable entropy exposed to web content. Few websites should need to distinguish 32-bit x86 Linux users from x86_64 Linux users. One of the few that did was Mozilla's own Firefox download page and it has now been updated to use distro packages instead of sniffing the UA string to offer Mozilla's architecture-specific installer binaries. (See bugs mozilla/bedrock#12966 and mozilla/bedrock#14012.)

2. Reduce risk of webcompat problems from websites not recognizing unexpected CPU architectures. (Example: in bug 1861847, YouTube treated ARM64 Linux as a mobile device)

This "freezeCpu" pref controls this UA string code path:

https://searchfox.org/mozilla-central/rev/1f27a4022f9f1269d897526c1c892a57743e650c/netwerk/protocol/http/nsHttpHandler.cpp#931-937

The UA string tests already check the "freezeCpu" pref to test for either "Linux x86_64" or the actual CPU architecture:

https://searchfox.org/mozilla-central/rev/f602853ba8d55ba157e2a74d9b571615f6ed97b8/browser/components/resistfingerprinting/test/browser/browser_navigator.js#41-47,51

Differential Revision: https://phabricator.services.mozilla.com/D207238
ErichDonGubler pushed a commit to erichdongubler-mozilla/firefox that referenced this issue Apr 17, 2024
…4" in Linux User-Agent. r=necko-reviewers,kershaw

This will match the behavior of ARM64 Linux (bug 1861847) and Chrome reporting their CPU architecture as "Linux x86_64": https://www.chromium.org/updates/ua-reduction/#sample-ua-strings-phase-5

Goals:

1. Reduce fingerprintable entropy exposed to web content. Few websites should need to distinguish 32-bit x86 Linux users from x86_64 Linux users. One of the few that did was Mozilla's own Firefox download page and it has now been updated to use distro packages instead of sniffing the UA string to offer Mozilla's architecture-specific installer binaries. (See bugs mozilla/bedrock#12966 and mozilla/bedrock#14012.)

2. Reduce risk of webcompat problems from websites not recognizing unexpected CPU architectures. (Example: in bug 1861847, YouTube treated ARM64 Linux as a mobile device)

This "freezeCpu" pref controls this UA string code path:

https://searchfox.org/mozilla-central/rev/1f27a4022f9f1269d897526c1c892a57743e650c/netwerk/protocol/http/nsHttpHandler.cpp#931-937

The UA string tests already check the "freezeCpu" pref to test for either "Linux x86_64" or the actual CPU architecture:

https://searchfox.org/mozilla-central/rev/f602853ba8d55ba157e2a74d9b571615f6ed97b8/browser/components/resistfingerprinting/test/browser/browser_navigator.js#41-47,51

Differential Revision: https://phabricator.services.mozilla.com/D207238
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P2 Second level priority - Should have
Projects
Development

No branches or pull requests

4 participants