Skip to content

Conversation

kjarosh
Copy link
Member

@kjarosh kjarosh commented May 28, 2025

image

@torokati44
Copy link
Member

Just bikeshedding: hmm, did you write Intel/AMD because the average user might not know what x86_64 is? If so, should they know that this refers to the CPU, not the GPU? Should it not say anything on the x86 one? 🤔

@kjarosh
Copy link
Member Author

kjarosh commented May 28, 2025

That's what it looks like with arch names, does it look better?

image

@torokati44
Copy link
Member

dunno, up to you (plural)

@kjarosh
Copy link
Member Author

kjarosh commented May 28, 2025

I personally prefer the second version, but originally I wrote it this way to make it simpler to understand by users

@n0samu
Copy link
Member

n0samu commented May 28, 2025

I also prefer the second version. To make it simpler for users, we could detect the CPU architecture from the user agent and show only the relevant Linux download under the Desktop Application heading, right?

@n0samu
Copy link
Member

n0samu commented May 28, 2025

Also, I find ARM64 more understandable than AArch64, though IDK if others would agree.

@kjarosh
Copy link
Member Author

kjarosh commented May 28, 2025

I also prefer the second version. To make it simpler for users, we could detect the CPU architecture from the user agent and show only the relevant Linux download under the Desktop Application heading, right?

Looked into that, there's no trivial way to do so (react-detect that we use does not support detecting CPU architecture).

Also, I find ARM64 more understandable than AArch64, though IDK if others would agree.

Should we also change x86_64 to AMD64 and/or x86 to i386?

@n0samu
Copy link
Member

n0samu commented May 28, 2025

The terms I'm personally most familiar with are x86_64 (or just 64-bit in the Windows context) and ARM64 (in the Linux context)

@torokati44
Copy link
Member

we could detect the CPU architecture from the user agent

AFAIK the UserAgent (as exposed to websites), is deprecated, and should be hardcoded to a well known constant everywhere (regardless of the actual user agent).

@n0samu
Copy link
Member

n0samu commented May 28, 2025

I'm not aware of that, and the library we use for device info detection already uses the user agent string. The user agent string shouldn't be used to decide what web features or polyfills to activate on your website (feature detection is a better approach) but detecting device info to show the relevant application download seems like a perfect use case for the UA string IMO.

@danielhjacobs
Copy link
Collaborator

danielhjacobs commented May 28, 2025

The modern way to check the architecture and bit-ness is this:

if (navigator.userAgentData?.getHighEntropyValues) {
    await navigator.userAgentData.getHighEntropyValues([ "architecture", "bitness" ]);
}

https://developer.mozilla.org/en-US/docs/Web/API/NavigatorUAData/getHighEntropyValues#architecture

@danielhjacobs
Copy link
Collaborator

danielhjacobs commented May 28, 2025

Unfortunately it's Chromium-only right now. On Chromium, I did this:

const architectureInfo = await navigator.userAgentData.getHighEntropyValues([ "architecture", "bitness" ]);
console.log(architectureInfo.architecture);
console.log(architectureInfo.bitness)

This logs, for me, "x86" and "64".

@n0samu
Copy link
Member

n0samu commented May 30, 2025

So the conclusion is just to change the Linux download labels to x86_64 and ARM64, right? Here's an example of this terminology "in the wild" (the Zen Browser download page)
image

As @danielhjacobs pointed out on Discord, we wouldn't be able to detect the processor architecture from Firefox's user agent string anyway on Linux, so we can scratch that part of the discussion.

@danielhjacobs
Copy link
Collaborator

Yeah, I'm okay with x86_64 and ARM64, and it does match what's on https://zen-browser.app/download/. Even though it's somewhat mixing and matching terms, I think it's fine, and ultimately I feel like it's more important to get this on the website than bike-shed further anyway.

The x86_64 build is still the one that appears on the website so this isn't urgent, but that's mainly down to luck. More specifically, I assume it's that the GitHub API returns the release assets in alphabetical order of their names or URLs and x86_64 comes after aarch64 alphabetically, and a for ... of loop progresses through arrays in iteration order, so the Linux download URL is set to the aarch64 URL first and then switched to the x86_64 URL.

@kjarosh
Copy link
Member Author

kjarosh commented May 30, 2025

Is that okay?

image

@danielhjacobs
Copy link
Collaborator

Arguable about changing the Windows names imo

@n0samu
Copy link
Member

n0samu commented May 30, 2025

I prefer not to change the Windows download labels because 64-bit and 32-bit are more commonly used/understood by Windows users and the architecture distinction is not relevant thanks to WOW64 and built-in x86 emulation on ARM. Also, notice that the Zen Browser download page labels its Windows x86_64 build "64-bit".

@kjarosh
Copy link
Member Author

kjarosh commented Jun 2, 2025

Is that better?

image

@n0samu
Copy link
Member

n0samu commented Jun 2, 2025

Yes that looks good to me!

@kjarosh kjarosh enabled auto-merge (rebase) June 3, 2025 18:55
@kjarosh kjarosh merged commit d234f31 into ruffle-rs:master Jun 3, 2025
1 check passed
@kjarosh kjarosh deleted the linux-arm branch June 3, 2025 20:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants