Releases: SpacingBat3/WebCord
v4.6.0
- Update to Electron 28.
- Strip tracking from Discord's CDN URLs when those are opened outside for WebCord.
- Fix built-in CSP for new Soundcloud player (#495).
- Re-approach move to Node16.
- This time it should work thanks to Electron's 18 complete ESM support.
- Possibly I'll approach moving fully to ESM, both in WebCord and my libraries.
- macOS builds are back!
Full Changelog: v4.5.2...v4.6.0
v4.5.2
- Improve the implementation of tray icon changing, so it relies now on Discord's title rather than favicon which seems to be more stable and could optimize the performance a bit (since there's no longer a need to cache, convert and hash favicons).
- Display a number of mentions in the tray tooltip, if there are any.
- Use a better compression in produced RPM packages, most likely improving the resulting size in compassion of previous builds.
- Add an URL to icon in Squirrel makers, which will be added to the registry during installation.
- Bump dependencies.
- Bump lockfile.
- Update
marked
to v10. - Update
@electron-forge/*
packages to^7.1.0
.
Full Changelog: v4.5.1...v4.5.2
🚧️ 👷️ |
Currently the macOS builds are failing in CI (at DMG creation step), so there are no builds for it either until this will be fixed in some way. I've also tried to investigate what change could break it and right now I'm clueless (runner seems to be the same as in runs that succeed, downgrading Node to the previous working version was not enough for it to install |
v4.5.1
Note
This is a hotfix release made to4.5.1
, mostly fixing side bar hiding and other CSS tweaks applied by WebCord, e.g. to hide download button, fix rendering for mobile devices etc. No huge changes so far.
🧹 Maintenance changes
- Fix some CSS tweaks in WebCord made to Discord (including #481).
- Bump the lockfile.
- Update Electron to
27.0.2
.
- Update Electron to
Full Changelog: v4.5.0...v4.5.1
v4.5.0
🧹 Maintenance changes
- Bump Electron to v27. This resolves regressions since Electron v26: #452.
- Update various dependencies, such as
marked
andhighlight.js
. - Update implementation of source listing for screen share, this resolves #409 until some people are still going to be able to reproduce this.
Full Changelog: v4.4.3...v4.5.0
v4.4.3
Note
This is a hotfix patch for WebCordv4.4.2
, with only a few changes and fixes for bugs I found after I've published WebCordv4.4.2
. Seev4.4.2
release logs for more details about the recent changes.
🗺️ Localization changes (#468)
- Update 🇷🇺 Russian localization files by @thejenja.
- Update 🇪🇸 Spanish localization files by @gallegonovato.
- Update 🇦🇪 Arabic localization files by @Ali-x98.
- Initial translation to 🇳🇱 Dutch by @Jasper1467.
🧹 Maintenance changes
- Multiple fixes to
WinStateKeeper
logic, so it now logs values that are stored in-memory and uses them when modifying the object. - Revert module resolution mechanism back to CommonJS-only (from
Node16
), dropping entirely support for EcmaScript Modules in code (:electron: Electron's partial implementation of ESM module resolution and loading is way more incomplete than I originally thought). This resolves #473.
Full Changelog: v4.4.2...v4.4.3
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
v4.4.1
Important
This release was mostly forced by security vulnerability in Electron. It still doesn't resolve #452, although it seems Electron devs are somewhat aware of it. Some people also suggest that it is reproducible in Electron 27 as well. Officially, I haven't been able to reproduce this on my desktop running X11 with AMD CPU (withamd-ucode.img
loaded withinitrd=
) and NVIDIA GPU (both Nouveau and NVIDIA drivers). Electron devs also seemed to be unable to reproduce this in clean VM enviroment.
🗺️ Localization updates (#454)
- Update 🇪🇸️ Spanish localization files by @gallegonovato.
- Update 🇦🇪️ Arabic localization files by @Ali-x98.
🛠️ New features
- Implement safe mode in WebCord, as an approach to workaround the renderer crashes (including #452).
- In safe mode, WebCord tries to run itself fully in software mode, to eliminate that GPU or driver could cause renderer crashes.
- WebCord enters safe mode automatically after it detects that renderer is constantly crashing.
- Before entering safe mode, WebCord will try to refresh the page a few times (I believe official Discord client is doing that when handling renderer crashes).
- Safe mode also disables a few configuration options, such as GPU optimizations and features that are messing with Chromium command-line. However, you're still able to append switches to Chromium command-line by adding them as arguments to WebCord.
- Implement a way in locale files to add
title=
element forlabels
, as a way for additional description whenlabels
are not enough.- This was added for CSP: Thirdparty → Google Storage API, as a few people didn't understand the consequences of disabling it and reported quite a lot of issues for it.
- I've also added a non-translatable description for GIF provides, listing the service providers this option currently includes.
🧹️ Maintenance updates
- Refactor WebSocket server to launch it in separate process, using
UtilityProcess
API. - Update stylesheets for built-in pages, so
<kbd>
element (e.g. ALT) is animated when pressed (with mouse click) and scrollbar is larger by 1px. - Update client optimizations logic for new Chromium engine versions and that unix-specific optimization won't be used on other platforms. This could potentially cause issues with Electron on Windows and macOS in the past.
- Update Electron to
26.2.1
. - Bump
marked
to9.0.0
.
Full Changelog: v4.4.0...v4.4.1
v4.4.0
🗺️ Localization updates
- Synchronize localization files with Weblate (#362).
- Update 🇵🇹️ Portuguese translation by @SantosSi.
- Add 🇮🇹️ Italian translation by Marco.
- Add 🇯🇵️ Japanese translation by Shogo Takata.
- Add 🇹🇷️ Turkish translation by @demirdegerli (#413).
🧹 Maintenance changes
- Remove (previously left) unnecessary dependencies.
- Update to Electron v26.0.0.
- Resolve linter errors/warnings around types.
Full Changelog: v4.3.0...v4.4.0
v4.3.0
✨️ New Features
Note
Most of these are effect of my recent work on my own AppImage maker,@reforged/maker-appimage
. This means these changes are not limited to WebCord but any other Electron app using my maker can opt-in for these as well via Forge configuration.
- AppImages now use
type2-runtime
that while being experimental, doesn't require installingfuse2
package installed on modern distros/DEs (as most of them usefuse3
now) and since we usefuse2
builds, we still don't deprecate users with older software installed.- AppImages bundled by my maker aren't fully static yet and most likely can't be used by users with non-glibc installed, as only few libraries being part of Electron binaries are bundled inside. I might try to improve my maker if there will be huge interest for these users to use my AppImage – but this might require the custom
AppRun
to invoke the interpreter bundled in the AppImage. Bundling the whole libraries will most likely also drastically affect the resulting size of the AppImages.
- AppImages bundled by my maker aren't fully static yet and most likely can't be used by users with non-glibc installed, as only few libraries being part of Electron binaries are bundled inside. I might try to improve my maker if there will be huge interest for these users to use my AppImage – but this might require the custom
- AppImages now support parsing Arch Linux styled
{{ name }}-flags.conf
files (#382).- Important: Althrough this feature is now distro-independent, I consider limiting this feature to Arch-based distros only, as these
.conf
files are quite specific thing to Arch and are quite non-standard on other distros.
- Important: Althrough this feature is now distro-independent, I consider limiting this feature to Arch-based distros only, as these
- (Finally) add select all item/keybind to menu bar for all platforms (#319)
🧹️ Maintenance updates
- Bump Electron to
v25
. - Remove polyfills from WebCord. This comes with removal of packages such as
electron-fetch
and@pkgjs/parseargs
with their imports and use in code and simplifies code a bit, at cost of support for older Electron releases. - Update code for breaking changes in some WebCord dependencies. This comes with the support for the new (modular?)
marked
release and a bit simplifies the code around Markdown highlighting. - Update overall dependencies to their latest versions.
Full Changelog: v4.2.0...v4.3.0
v4.2.0
- Update dependencies.
- Switch to TypeScript v5.
- Switch to Electron v24
- Rebuild under newer version of
@reforged/maker-appimage
(fix #369). - Make
Config
writting synchronous again (fix #360).
Full Changelog: v4.1.1...v4.2.0