Skip to content

Releases: SpacingBat3/WebCord

v4.6.0

16 Dec 16:56
376ccb9
Compare
Choose a tag to compare
  • 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

25 Nov 23:31
9981435
Compare
Choose a tag to compare
  • 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 appdmg by itself and re-running CI on older commits, even with the lockfile and build config that worked before, also causes a build failure in macOS…). Also see electron/forge#3371 for upstream issue.

v4.5.1

31 Oct 23:57
bdbe33a
Compare
Choose a tag to compare

Note
This is a hotfix release made to 4.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.

Full Changelog: v4.5.0...v4.5.1

v4.5.0

14 Oct 21:46
03c2064
Compare
Choose a tag to compare

🧹 Maintenance changes

  • Bump Electron to v27. This resolves regressions since Electron v26: #452.
  • Update various dependencies, such as marked and highlight.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

08 Oct 12:00
7ca8370
Compare
Choose a tag to compare

Note
This is a hotfix patch for WebCord v4.4.2, with only a few changes and fixes for bugs I found after I've published WebCord v4.4.2. See v4.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

06 Oct 21:21
5a1afeb
Compare
Choose a tag to compare

Important
This release was also forced by Electron/Chromium vulnerability, as in case of v4.4.1. There's still no fix (or viable workaround) for regression since v4.4.0. Given v4.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 publishing v4.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 wrapped require() 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.
  • 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 to resetAdHocDarwinSignature: 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 nor nupkg 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.
  • Overall improve Squirrel configuration, to set icon for installer and emit MSI variant.

Full Changelog: v4.4.1...v4.4.2

v4.4.1

18 Sep 23:49
588a26c
Compare
Choose a tag to compare

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 (with amd-ucode.img loaded with initrd=) 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 for labels, as a way for additional description when labels 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 to 9.0.0.

Full Changelog: v4.4.0...v4.4.1

v4.4.0

15 Aug 19:51
77c0956
Compare
Choose a tag to compare

🗺️ 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: Electron v26.0.0.
    • This resolves a lot of regressions announced by Electron v25: #432 #437 #436 #442
    • New (not yet officially reproducible) regressions: #452
  • Resolve linter errors/warnings around types.

Full Changelog: v4.3.0...v4.4.0

v4.3.0

22 Jun 20:44
0f344f4
Compare
Choose a tag to compare

✨️ 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 installing fuse2 package installed on modern distros/DEs (as most of them use fuse3 now) and since we use fuse2 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 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.
  • (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

08 Apr 01:11
52fa9d7
Compare
Choose a tag to compare
  • Update dependencies.
  • 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