Skip to content

Releases: SpacingBat3/WebCord

v3.5.1

18 Jul 09:35
Compare
Choose a tag to compare
  • Improve app privacy / security:
    • Mitigate/fix the Electron's getUserMedia so using hard-coded constrains on non-Wayland platforms (Linux/Windows/macOS) won't bypass the picker and record the entire screen. It will fail from now with Error: Permission denied. I may try to look how stock Chromium behaves through and reproduce this.
    • Better native function spoofing, now replacing the function name in order to make it undistinguishable from the original ones.
    • Deny permissions Discord does not ask for at all.
    • Deny requests to media with no audio/video mediaType(s).
    • Fix URL checking logic in permissionHandler.
  • Fix macOS bugs.
    • Fix improper tray icon size (#153).
    • Fix an bug with parent windows not having native title bar where they should (#175).
  • Use OS-specific flag structure (/ on Windows, -/-- on *nix).
  • Sort third-party checklist by identifier in Content Security Policy configuration section.

Full Changelog: v3.5.0...v3.5.1

v3.5.0

12 Jul 12:39
Compare
Choose a tag to compare
  • Refactor WebCord's configuration structure.
    • Dynamically generate settings window content based on current user configuration and localization files.
    • Add configuration option to disable WebGL (e.g. if you don't want to use activities).
  • Update Discord instances.
    • Disable Fosscord demo instance (it does not work).
    • Add official canary instance and Freecord instance.
    • Add styling for disabled input / labels.
  • Bug fixes:
    • Fix tray icon scaling on macOS (#153).
    • Make non-frameless windows non-modal (might fix #175).
    • Prevent "paste" event loops (#169).

Full Changelog: v3.4.0...v3.5.0

v3.4.0

05 Jul 23:25
Compare
Choose a tag to compare
  • Add German localization files (#149).
  • WebSocket Server: Handle DEEP_LINK and GUILD_TEMPLATE_BROWSER requests.
    • This provides a functionality for creating a guild from template and redirecting to site based on the requests made by the browser.
  • Fix window close / app quit with tray.
    • WebCord now properly knows whenever window wants to be closed or app wants to quit (i.e. close all windows).
    • This fixes shutdown on macOS (#151).
    • This fixes app to close itself on SIGINT signal on Linux (CTRL+C).
  • Re-enable autoplay to fix issues on all platforms that could be caused by it disabled.
    • Fixes #161. As a side note, it probably could be also reproduced on Linux and macOS.
  • Re-enable WebGL to fix issue with activities (#157).
  • Remove activate event on the macOS.
    • WebCord is not ready yet to work in the background without any windows open. So it should be either killed or let the main window to run in the background.
    • If I would either want to fix it, I still need a more knowledge how macOS expects the software to behave in case of the servers and services running as a child processes (in case of WebCord, these are update notifier and WSS server).
  • Code refactors, improvements.
    • Avoid using for loops in some places by replacing them with .map and .filter methods of Array variables.
    • Avoid using unguarded for-in loops that could also iterate over the prototype methods/parameters.
    • Improve title attribute generation of h3 elements at Licenses section in about window.
  • Windows only: define AppUserModelID for WebCord.
    • This seems to fix #164.
  • More restrictive ESLint configuration.
  • Bump Electron version.

Full Changelog: v3.3.0...v3.4.0

v3.3.0

20 Jun 10:36
Compare
Choose a tag to compare
  • Block canvas fingerprinting script (api.js) by default.
  • webPreferences hardening.
    • Disable WebGL and WebSQL to harden the application security.
    • Disable autoplay.
    • Enable "safe dialogs" to protect users from dialog spam done by potentially malicious remote scripts.
  • Update localization files.
  • Windows only: enable audio in screen capture.
    • 🚫️ Blocking on Linux: audio in screen capture uses default device (which is likely to be a microphone, not audio output monitor). If I'll find a way to capture a specific audio device and to get the monitor of default output device, I will reconsider implementing audio capture on Linux as well.
  • Improve workaround for Discord/Chromium bug preventing to paste images directly from (another) browser / browser engine.
    • Keybind CTRL+V is now working as it is intended (resolves #148).
    • Clipboard will now preserve its original properties.
    • There might be a bigger delay when pasting unpatched images than it would be normally. It ocurs due to paste event re-emitting.
  • Implement gpu-info flag to get information about the current GPU vendor.
  • Grammar, typos and wordings fixes (thanks to @graves501 and @Gecero).
  • New AppImage maker: @reforged/maker-appimage.
    • It should simplify the development dependency structure of WebCord, as it directly implements AppImage packaging with mksquashfs binary (unlike to most @electron-forge/maker-* packages, which in reality only wraps electron-installer-* packages).
    • It should build faster due to its async nature.

Full Changelog: v3.2.0...v3.3.0

v3.2.0

29 May 16:34
Compare
Choose a tag to compare
  • Bump Electron to 19.x.y.
    • Electron version in currently hosted distributables: 19.0.1.
  • Setup a Weblate project for WebCord at Hosted Weblate. It's still not fully configured yet (e.g. it misses screenshots for the translation use).
  • Update the source code structure to actually support Weblate.
    • Drop support for JSONC files (undocummented yet).
  • Improve WebSocket Server implementation.
    • Handle Discord RPC and unknown requests (i.e. log information about the requests, but do nothing right now as requests other than INVITE_BROWSER are still unsupported).
    • Improve lock logic of WSS.
  • Enforce consistent line endings for files within the repository and emitted by TypeScript.
  • Enforce consistent casing for imported modules (tsconfig.json).
  • Replace cosmetic.ts with just CSS injection, which should improve the performance and reliability of the code.
  • Implement experimental function to improve the application performance for some platforms and hardware.
    • This has been currently tested only on NVIDIA and Linux, using proprietary drivers.
    • This function implements tweaks as well for Broadcom, AMD and Intel GPU driver vendors, althrough none of these vendors has been tested yet.
  • Greatly improve Wayland support (see #100 and 35e7e49 for details).
  • Drop support for Linux ia32 binaries. This is due to the fact Electron has now stopped providing binaries for it. However, you can still package Webcord under older Electron versions if you really need WebCord to work on Linux ia32 (it still works on Electron 13!).
    • This does not affect Windows ia32 binaries – they're still going to be released until Electron will stop providing binaries for it.

Full Changelog: v3.1.4...v3.2.0

v3.1.4

07 May 23:32
Compare
Choose a tag to compare
  • Bump Electron version to 18.x.y.
  • Major improvements for custom CSS themes feature.
    • Switch to .theme.css file extension format.
    • Resolve @import statements and fix themes before injection.
  • More accurate INVITE_BROWSER request detection in WebSocket Server implementation.
  • Documentation typo fix (#120)

Full Changelog: v3.1.3...v3.1.4

v3.1.3

11 Mar 21:45
Compare
Choose a tag to compare

Code quality / security:

  • stricter tsc configuration (and adapting the code for it),
  • --inspect flag family mitigations (an approach to block them without patched Electron).

New features:

  • Suppress notifications for a week on their close event – on Linux (at least XFCE), it seems to be emitted once notification body is clicked.
    • A better approach is planned for this on Linux (and maybe unofficially on FreeBSD as well) in feature – I work on Node native module that is going to be capable of emitting notifications with custom actions. MacOS seems to support that out-of-the-box on Electron, which should mean that only Windows may use the current cross-platform behavior.

Full Changelog: v3.1.2...v3.1.3

v3.1.2

07 Mar 20:56
Compare
Choose a tag to compare

What's new?

  • Bump some dependencies versions:
    • @spacingbat3/kolor: force enable colour support for Windows users,
    • deepmerge-ts: Bump to latest major version (4.x.y).
  • Improve WebSocket implementation:
    • Fix for Fosscord instances.
    • Validate requests by their origin.
    • Limit WebSocket Server to only show one window at time (to prevent spam).
  • Modify Electron binaries with Electron Forge hooks using Electron Fuses feature.
    • Prevent loading app from other locations than resources/app.asar.
    • Disable --inspect and --inspect-brk flags family.
    • Disable RUN_AS_NODE mode.
    • Disable NODE_OPTIONS environment variable

Full Changelog: v3.1.1...v3.1.2

v3.1.1

04 Mar 19:02
Compare
Choose a tag to compare

This is a patch release, focused on fixes and improvements of existing features. The most significant changes are:

  • Remove role property from About menu item to fix showing new About window on some platforms (e.g. Windows).
  • Change how WebCord's title is generated.
  • Assign loopback IPv4 address as host of WebSocket server to prevent exposing it to other devices/networks.
  • Update documentation to fix some typos, grammars errors etc.
  • Resolve linter errors.

More details: v3.1.0...v3.1.1

v3.1.0

26 Feb 23:52
Compare
Choose a tag to compare

Changelog:

  • Implement a WebSocket server to reply for Discord's invite link requests made from browser.
  • Apply a workaround to buggy auto-resize implementation of screen share BrowserView.
  • Some bug fixes.

More details: v3.0.1...v3.1.0