Releases: SpacingBat3/WebCord
Releases · SpacingBat3/WebCord
v3.5.1
- 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 withError: 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 noaudio
/video
mediaType
(s). - Fix URL checking logic in
permissionHandler
.
- Mitigate/fix the Electron's
- Fix macOS bugs.
- 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
- 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:
Full Changelog: v3.4.0...v3.5.0
v3.4.0
- Add German localization files (#149).
- WebSocket Server: Handle
DEEP_LINK
andGUILD_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 ofArray
variables. - Avoid using unguarded
for
-in
loops that could also iterate over theprototype
methods/parameters. - Improve
title
attribute generation ofh3
elements at Licenses section in about window.
- Avoid using
- 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
- 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.
- Added translation for 🇳🇴️ Norwegian Bokmål by @comradekingu (only client.json).
- Update 🇬🇧️ English 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 ofdefault
output device, I will reconsider implementing audio capture on Linux as well.
- 🚫️ Blocking on Linux: audio in screen capture uses
- 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 wrapselectron-installer-*
packages). - It should build faster due to its
async
nature.
- It should simplify the development dependency structure of WebCord, as it directly implements AppImage packaging with
Full Changelog: v3.2.0...v3.3.0
v3.2.0
- Bump Electron to
19.x.y
.- Electron version in currently hosted distributables:
19.0.1
.
- Electron version in currently hosted distributables:
- 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).
- Drop support for JSONC files
- 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.
- Handle Discord RPC and unknown requests (i.e. log information about the requests, but do nothing right now as requests other than
- 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 Linuxia32
(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.
- This does not affect Windows
Full Changelog: v3.1.4...v3.2.0
v3.1.4
- 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.
- Switch to
- 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
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
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
- Prevent loading app from other locations than
Full Changelog: v3.1.1...v3.1.2
v3.1.1
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
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