v4.4.2
Important
This release was also forced by Electron/Chromium vulnerability, as in case ofv4.4.1
. There's still no fix (or viable workaround) for regression sincev4.4.0
. Givenv4.4.1
has implemented the safe mode that should help with renderer crashes caused by issues specific to given GPU, I assume it's not a problem due to GPU. The newly announced refresh loop is not a bug and should not be reported as such, the app is actually expected to refresh the page after the renderer crash as a way to recover from it (which is useful when renderer doesn't crash constantly or at least much better that letting WebCord to display grey window instead).
Note
Electron Forge going crazy once CI were publishingv4.4.2
distributables. Given there was large refactor of Forge configuration, especially with Squirrel makers and I've also updated Forge toolkit to the latest version, there's a chance I've been encountering some bug with it that didn't happen with the old design. Weirdly enough, WebCord did eventually build and published itself successfully, so the bug might not always happen and future releases may succeed after a few (more) CI retries. There's also a chance some distributables weren't made correctly, but that could also be a bug with Forge's implementation that makes use of the new config syntax.
🧹️ Bug fixes / Improvements
- Fix / improve displaying long url in OS/native cross-origin dialog window – WebCord now adds newlines to it when link segments are too long and calculates the maximum lines / characters per line, based on primary screen dimensions.
- Fix Squirrel installers launching WebCord for no reason, confusing a lot of users – on Windows,
--squirrel-*
flags are now illegal and will cause the application to close (to handle so called Squirrel hooks). - Update implementation of
--add-css-theme
, to make it display an OS/native file chooser dialog instead of reading the predefined path in cmdline, possibly making it to work better with sandboxing (Flatpaks, Snaps etc.) - Improve how safe mode is launched, removing redundant
process.argv[0]
from arguments. - Switch to Node16 module code, which makes WebCord to use an actual
import()
calls instead of wrappedrequire()
into promises, allowing for partial ESM implementation.- I've also ported
socket.ts
to ESM to both showcase it works and actually make a use of ESM / async design.
- I've also ported
- Try to fix an ad-hoc signature for macOS with fuses, possibly making it able to run arm64 (Apple M1/M2) builds without any command-line tricks.
🧱️ Build / CI changes
- Disable
universal
builds for macOS, they were failing in CI, most likely due toresetAdHocDarwinSignature: true
in Electron Forge that were supposed to fix ARM64 builds.- Please choose now either ARM64 or X64 builds, based on whenever your CPU vendor is Apple (i.e. M1/M2 SoCs) or Intel/AMD.
- Greatly modernize Electron Forge, by using the new fuses plugin and class-based syntax for makers/publishers/plugins, removing some hooks and type logic from code that is no longer necessary.
- This could be the one of the reasons of causing some troubles with Squirrel makers, since Squirrel now emits both MSI and EXE binaries under different name. There's also no arch-specific
RELEASES
file nornupkg
files, I'll take a look if I'll be able to somehow improve how these files are emitted without the need for searching for specific distributable and patching its name.
- This could be the one of the reasons of causing some troubles with Squirrel makers, since Squirrel now emits both MSI and EXE binaries under different name. There's also no arch-specific
- Overall improve Squirrel configuration, to set icon for installer and emit MSI variant.
Full Changelog: v4.4.1...v4.4.2