WebCord

A Discord and SpaceBar -based client implemented without Discord API.

MIT License

Stars
1.9K

Bot releases are visible (Hide)

WebCord - v3.6.0

Published by github-actions[bot] about 2 years ago

  • Implement autoscrolling for *nix (Issue: #84, Discussion: #199).
    • This adds an experimental configuration option for MiddleClickAutoscroll Blink feature. It's experimental, as a few bugs are known. This feature affects all platforms different than Windows (codenamed unix), so e.g. macOS users can also benefit from that.
  • Add an option to toogle taskbar flashing (Issue: #189, Discussion: #172).
  • Add an option to spoof current platform via user agent command-line flags. (resolves #170).
    • Note: Flags are not docummented yet, but they appear in --help.
  • Validate IPC communication, as advised in Electron documentation.
    • For local pages, it either uses protocol or full URL to validate if incoming IPC packet comes from the right process.
    • For remote content, except of comparing only webContents or full URLs, it also uses the negotiated API key used in contextBridge and that is being randomly generated on each session (it is not kept outside of application buffer memory).
  • Improve generating a --help message and parsing command-line flags.
  • ESLint hardenings (01e4a74739cef2def56e8a7f256634e75dc51b88, 31f1c546e3127faf271e487f521f3175fdd46ad5).
    • Stricter rule set for TypeScript.
    • Add JSON Schemas and lint them with ESLint.
    • Switch to TypeScript cosmetic rules from built-in ones.
    • Automatic fixes, manual bug fixes found on ESLint scanning.
  • Documentation improvements (#194).
  • Translations updates.
    • Update Polish and English localization files.
    • Update German and Catalan localization files (#195).
  • Improve buildInfo generation:
    • Add defaultBuildInfo object with the default build configuration.
    • Make some properties in buildInfo required.
    • Assume buildInfo.json contains a Partial type of buildInfo.
    • (Probably) fix issues with AppUserModelID generation (as reported in #203).

Full Changelog: https://github.com/SpacingBat3/WebCord/compare/v3.5.2...v3.6.0

WebCord - v3.5.2

Published by github-actions[bot] about 2 years ago

  • Add Google Storage API CSP (resolves #182).
  • Spoof Errors in modified Web API elements.
    • Use DOMException with similar message like on Chromium for errors in getDisplayMedia and getUserMedia.
  • Sync localization files with Weblate.
    • Add Catalan localization files.
    • Update German localization.
  • Trigger page reload on CSP change.
  • Update documentation files.

Full Changelog: https://github.com/SpacingBat3/WebCord/compare/v3.5.1...v3.5.2

WebCord - v3.5.1

Published by github-actions[bot] over 2 years ago

  • 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: https://github.com/SpacingBat3/WebCord/compare/v3.5.0...v3.5.1

WebCord - v3.5.0

Published by github-actions[bot] over 2 years ago

  • 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: https://github.com/SpacingBat3/WebCord/compare/v3.4.0...v3.5.0

WebCord - v3.4.0

Published by github-actions[bot] over 2 years ago

  • 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: https://github.com/SpacingBat3/WebCord/compare/v3.3.0...v3.4.0

WebCord - v3.3.0

Published by github-actions[bot] over 2 years ago

  • 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: https://github.com/SpacingBat3/WebCord/compare/v3.2.0...v3.3.0

WebCord - v3.2.0

Published by github-actions[bot] over 2 years ago

  • 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: https://github.com/SpacingBat3/WebCord/compare/v3.1.4...v3.2.0

WebCord - v3.1.4

Published by github-actions[bot] over 2 years ago

  • 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: https://github.com/SpacingBat3/WebCord/compare/v3.1.3...v3.1.4

WebCord - v3.1.3

Published by github-actions[bot] over 2 years ago

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: https://github.com/SpacingBat3/WebCord/compare/v3.1.2...v3.1.3

WebCord - v3.1.2

Published by github-actions[bot] over 2 years ago

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: https://github.com/SpacingBat3/WebCord/compare/v3.1.1...v3.1.2

WebCord - v3.1.1

Published by github-actions[bot] over 2 years ago

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: https://github.com/SpacingBat3/WebCord/compare/v3.1.0...v3.1.1

WebCord - v3.1.0

Published by github-actions[bot] over 2 years ago

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: https://github.com/SpacingBat3/WebCord/compare/v3.0.1...v3.1.0

WebCord - v3.0.1

Published by github-actions[bot] over 2 years ago

This is a patch release, which fixes the bug with screen share menu not showing images as expected and updates the documentation.

Full Changelog: https://github.com/SpacingBat3/WebCord/compare/v3.0.0...v3.0.1

WebCord - v3.0.0

Published by github-actions[bot] over 2 years ago

This is a major update to WebCord, which has a lot of the changes comparing to v2.2.0, including:

  • New about panel, which is designed to be non-native and cross-platform, providing more information about the application itself.
  • Improved screen capture dialog, now completely separated from the Discord page, making it less-conflicting with Terms of Service and more private (Discord has no longer direct access to it).
  • An experimental (yet non-documented) support for custom styles and Chrome extensions.
  • Proper MacOS packaging (fixes #78).
  • A lot of bug fixes (#81, #92, #94, #96 and some other bugs not documented in Issues).
  • Even sticker code checking, to prevent me and others from publishing the code with bugs.
  • Fix for popup windows (#94).
  • Bump Electron version to 17.x.y.
  • Class-based loading of package.json.

More detailed changelog: https://github.com/SpacingBat3/WebCord/compare/v2.2.0...v3.0.0

WebCord - v3.0.0-beta10

Published by github-actions[bot] over 2 years ago

WebCord - v3.0.0-beta9

Published by github-actions[bot] over 2 years ago

This is rather a small update (in terms of commits), but with useful changes under the hood, including:

  • New screen share screen which is ready for Electron's 17 breaking changes and is placed in separate page using BrowserView feature, making it visible to client only (it doesn't visibly break Discord's ToS anymore as it won't inject/leak any HTML code into Discord's page – it still replaces the native getDisplayMedia function, but because it is spoofed as native, Discord is unable to detect it as a modification).
  • Fix a bug with permission manager not allowing for any permissions for Discord window due to conflict with default's permission request/check handler configuration not intended for main window's session.

Full Changelog: https://github.com/SpacingBat3/WebCord/compare/v3.0.0-beta8...v3.0.0-beta9

WebCord - v3.0.0-beta8

Published by github-actions[bot] over 2 years ago

  • Implement Chromium extensions loading ({userData}/Extensions/Chromium).
    • Note: It is not intended to work with all Chromium extensions, at least for now.
  • Fix existing implementation of style loading so it will now work as intended.
  • Fix client to work with older Electron versions (13, early versions of 14 and 15).
  • CSS style improvements for in-app sites.
  • Fixed switching to Discord's Content Security Policy rules.
  • Remove app name from the tray menu just so it's layout will be identical on most platforms.

Full Changelog: https://github.com/SpacingBat3/WebCord/compare/v3.0.0-beta7...v3.0.0-beta8

WebCord - v3.0.0-beta7

Published by github-actions[bot] almost 3 years ago

WebCord - v3.0.0-beta6

Published by github-actions[bot] almost 3 years ago

WebCord - v3.0.0-beta5

Published by github-actions[bot] almost 3 years ago