filips123 / PWAsForFirefox

A tool to install, manage and use Progressive Web Apps (PWAs) in Mozilla Firefox
https://pwasforfirefox.filips.si
Mozilla Public License 2.0
2.31k stars 51 forks source link

Windows arm64 builds #518

Open dam5s opened 5 months ago

dam5s commented 5 months ago

Problem Description

I just got a Microsoft Surface with arm64 processor, and while running the PWA x64 build mostly works, it has been crashing when trying to use it for streaming websites that use DRM protected content (e.g. Netflix, HBO...). These work fine in the official arm64 build of Firefox.

Proposed Solution

Add a Windows arm64 build to the CI pipeline and release arm64 installers for Windows.

Additional Information

I'm not sure how much extra work that entails and if that would make sense, but I appreciate your effort on this project. Anything I can do to help or any details I can add, let me know.

filips123 commented 5 months ago

It's currently not possible to provide ARM MSI installer, because PWAsForFirefox uses WiX Toolset v3 to build the installer, and v3 support for ARM is quite lacking (apparently there is some support, but I couldn't manage to make it work last time I tried). WiX Toolset v4/v5 has better support for ARM, but isn't supported yet by cargo-wix. Once v4 is supported by cargo-wix, I will try to add support for ARM (and fix a few other installer problems).

However, you can try to copy your normal Firefox installation (from C:\Program Files\Firefox or similar) to %APPDATA%\FirefoxPWA\runtime. This should make PWAs use the ARM version of Firefox. firefoxpwa.exe and firefoxpwa-connector.exe will still run through emulation, but it shouldn't really matter.

dam5s commented 5 months ago

Thanks for the update, I will give this a shot in the meantime.

Here is a link to the cargo-wix issue tracking WiX v4 support for anyone that might stumble onto this - https://github.com/volks73/cargo-wix/issues/174

hermeneuticlens commented 2 months ago

Upvoting this. PWA native/runtime performs poorly on Snapdragon X Plus/Elite platforms. Native ARM build should easily solve the problem.