Skip to content

Releases: hensm/fx_cast

v0.3.1

13 Sep 10:23
Compare
Choose a tag to compare

Extension-only release, so does not require a bridge update and still uses v0.3.0 bridge.

A couple of new features, a bunch of fixes for last update's stuff and some app compatibility improvements. Possibly the last update for a while.

Known Issues

  • When running bridge as a daemon, the child processes are not terminated properly. (issue: #230)

Changelog

Mirroring

  • Improved screen mirroring performance. Screenshot 2022-09-13 at 09 59 47
    Encoding options for mirroring streams are now provided. Chromecast receivers have limits on WebRTC connections, so a frame rate cap of 15, a resolution limit of 1080p, and a bitrate of 1Mbps is set by default which improves responsiveness significantly. As before, not intended for video streaming and mileage may vary.

    Screen mirroring is also not tied to a specific tab anymore, so it will work across page navigations and doesn't require an HTTPS context to start.

  • Removed tab mirroring.
    It was broken, never really worked very well. and the API it depended on was slated for removal anyway. Just choose the current browser window from the screen mirroring popup.

Other Changes

  • Added auto join policy handling. If the app supports it, they will now be reconnected to existing sessions when reloading/reopening a tab.
  • Implemented chrome.cast.requestSessionById and chrome.cast.Session#leave. Not sure if they're really used anywhere, but should improve compatibility with apps that do use them.
  • Fixed incorrect SDK media object status updates and supported media commands parsing. Should improve compatibility.
  • Added dynamic toolbar button icon updates representing cast session state for the current tab. Shows connecting state with an animated icon and connected state will a filled blue icon:
    • Dark:
    • Light:
  • Added media thumbnails option:
    Screenshot 2022-09-10 at 16 17 31
  • Fixed issue with receiver cast action listeners not being called. Specifically fixes issue with All 4 becoming unresponsive after requesting a session.
  • Fixed error when updating popup media menus.
  • Fixed media sender capabilities when casting <img> elements.
  • Fixed popup media seek bar layout for seekable live streams.
  • Fixed issue with seeking in popup affecting estimated times for other receivers.
  • Removed player state restriction on popup media play/pause and seek buttons.
  • Fixed match pattern matching for URLs with port numbers.

... and some other small fixes/tweaks.

v0.3.0

06 Sep 09:27
Compare
Choose a tag to compare

A fairly large update this time. New features, improved UI and better app compatibility. Lots of deep changes across the entire project, so plenty of room for regressions to show up.

Known Issues

  • Mirroring is still kinda broken. Screen mirroring works now, but requires a mouse click on the page to trigger the media stream request. Tab mirroring is still mostly just showing a black screen.
  • Non-English localizations are missing a ton of messages now and are probably a pretty rough experience. Might do a point release with some updates (or disabling them until they're in a good state).

Changelog

Media Controls & Redesigned Popup UI

The popup can now act as a remote for Chromecast devices allowing you to control media playback with: play/pause, seeking, queue skipping, subtitles selection and volume controls. The current app and receiver status are shown along with any media metadata (if available). App icons and thumbnails aren't displayed, but could come in a later release as an optional feature.

It automatically updates as the app/media content on the device changes and controls are hidden depending on which media commands are supported by the receiver app. Different device types are now properly handled, displaying different icons for audio-only devices and limiting casting to valid receivers.

003

Advanced Whitelist Features

The user agent string for whitelisted items can now be customised instead of relying on the hard-coded string. Per-item configuration is now also possible, allowing you to disable whitelist items entirely or disable/customise user agent string replacement on specific sites/URLs.

The known apps list is integrated into the whitelist widget showing app names for recognised match patterns and providing a list of whitelist item presets to add directly from the options page.


Daemon

Some changes intended to make remote/non-local connections a more viable option:

  • Added host option to daemon and restricted default host to localhost instead of binding to all addresses.
  • Added secure connections option to daemon. Uses an HTTPS server to establish WebSocket connections. Requires some additional configuration (see documentation).
  • Added optional password authentication.
  • Fixed issue with invalid message format causing daemon crash.

Other changes

  • Fixed issue with the SDK media load callback being called before the media object had been updated. Improves compatibility and specifically fixes an issue with BBC iPlayer becoming unresponsive after initiating a cast session.
  • Major refactor of SDK initialization/messaging and extension sender apps. Fixes some longstanding architectural mistakes which should make future improvements easier.
  • Fixed media sender's media element synchronisation option. Only syncs state from the receiver instead of trying to keep both in sync at all times.
  • Implemented two more stubbed chrome.cast.media.Media methods (getEstimatedBreakTime and getEstimatedBreakClipTime).
  • Fixed device list not being sorted consistently.
  • Fixed issue with bridge processes not being terminated properly.

v0.2.0

19 Apr 10:53
Compare
Choose a tag to compare

Known issues

  • Local media casting broken on some platforms.
  • No macOS x86 build or Windows 32-bit x86 build due to cross compiling issues that I don't have time to figure out (contributions welcome, see #209). Build instructions for the app can be found in the project README.

Possibly more, haven't done any extensive testing.

Changelog

  • Improved cast API compatibility:
    • Added Queue support (commit: cff7466)
    • Added newer cast API additions (e4e133c)
    • Fixed cast.media.Media#getEstimatedTime (commit: c117241)
    • Fixed media update listener handling (commit: 119d6c8)
    • Fixed device capability handling (commit: b672b8d)
    • Fixed supported media commands handling (commit: 61f9ff0)
    • Fixed issue with window.cast property causing errors on pages using CAF. #205
  • Added button in receiver selector UI to suggest whitelisting known sites (PR: #204).
  • Added image support to media sender. #183
  • Added Norwegian localization (@jorgenboganes). (commit: fcce716)
  • Updated Spanish localization (@tomasspi, @RAVMN).
  • Updated extension UI style to match updated Firefox style + misc style changes.
  • Removed native macOS receiver selector.
  • Removed experimental media overlay (commit: 59dc806)

v0.1.2

13 Sep 16:06
Compare
Choose a tag to compare

Extension-only release. Earlier bridge version also required.

  • Fix issue with race condition on bridge timeout. #147

v0.1.0

07 Sep 16:28
Compare
Choose a tag to compare
  • Added extension icon. #131
  • Added icons to options page whitelist buttons.
  • Added dynamic status updates to receiver selector UI.
  • Added more user-friendly bridge CLI.
  • Added support for x86 Windows. #141
  • Fixed unintuitive UI in receiver selector. #139
  • Fixed compatibility issue with cast API messaging. #138
  • Fixed hybrid UA causing compatibility issues (now restricted to YouTube).
  • Fixed issue getting local address for local media sender.
  • Fixed issue with constructing match patterns containing port numbers.
  • Fixed accessibility tab order issue in options page.

v0.0.7

21 Jul 19:34
Compare
Choose a tag to compare
  • Added Bonjour/Avahi support for better device discovery. #121
    Requires a native dependency. Windows installer is bundled with Bonjour and Linux packages now depend on Avahi.
  • Added notification on startup if the extension/bridge versions mismatch or are incompatible.
  • Added restricted whitelist mode, enabled by default.
    Restricts loading of the Cast SDK to whitelisted sites for potential privacy/security reasons. Disabling User-Agent modifications whilst keeping restricted mode on not currently supported.
  • Added daemon host extension option. #108
    Defaults to localhost, but will allow any valid WebSocket host, either on the current machine or potentially a remote machine.
  • Fixed tab mirroring not scaling with DPI (@xdavidwu). (PR: #106)
  • Fixed frameAncestors error spam.
  • Fixed issue with Windows uninstaller not fully removing files whilst in use.
  • Fixed whitelist menus allowing duplicate entries to be added.
  • Fixed minor UI style issues.
  • Removed "Browse..." option in browser receiver selector.

v0.0.6

27 Feb 09:47
Compare
Choose a tag to compare

Minor release, mostly for proper YouTube support before old site disappears.

  • Added hybrid Firefox/Chrome User-Agent string for better compatibility including newer YouTube site support. #104
  • Added shift key handling in addition to alt/opt for alternate actions on receiver selector buttons.
  • Added dark theme for extension UI.
  • Added configurable port for bridge backup/daemon.
  • Updated German localization (@rimrul). (PR: #103)
  • Fixed options page layout issues with long whitelist entries.
  • Fixed issue where receiver selector type option would not appear when bridge was unavailable.
  • Fixed issue with cast menu items.
  • Fixed minor Chrome-parity API behaviour differences.

v0.0.5

27 Jan 17:00
Compare
Choose a tag to compare

Some new features, bug fixes and localizations.

  • Added stop app action to receiver selector (hold alt/opt to reveal). #50
  • Added support for finding and converting local SubRip (.srt) subtitle files for local media casting. #20
  • Added media type switching to receiver selector. #67
    Selectors launched from different contexts are able to switch contexts, except to the media sender which must still be launched via the media context menu item. Receiver selectors can now also be opened at any time via the toolbar button or menu items.
  • Added API support for receiver action listeners. This should improve compatibility on a range of sites. #2
  • Added splash screen to mirroring receiver application.
  • Added subset of known app names to receiver selector when casting apps instead of "this site's app". Media casting will also display "this media".
  • Added option to enable/disable the backup daemon bridge connection.
  • Added update manifest for automatic extension updates.
  • Added German localization (@rimrul). (PR: #77, #89)
  • Updated Spanish localization (@RAVMN). (PR: #75, #91, #101)
  • Updated Dutch localization (@ThaDaVos). (PR: #100)
  • Fixed issues preventing YouTube from casting entirely and correctly playing videos when casting. #12
  • Fixed Browser receiver selector polluting history. #97
  • Fixed inconsistent options page styling on Linux.
  • Fixed bridge message port not being properly assigned.
  • Fixed browser receiver selector file media type input.
  • Fixed issue causing erroneous bridge initialization.
  • Fixed issues with macOS native receiver selector build.
  • Fixed receiver selector available/default media types not being accurate to the context.
  • Fixed issue where launching the receiver selector after a device was discovered, but before a connection was made to fetch its status, caused an error.
  • Removed unnecessary download permissions.
  • Experimental: Added media overlay (currently unused).

v0.0.4

18 Aug 05:42
Compare
Choose a tag to compare

Expect bugs.

  • Cast framework support. Not re-implemented yet (#3), currently loads Google's implementation which works with the existing shimmed cast API. Should provide much better compatibility for sites using this API (Spotify, Soundcloud, Plex, etc...).
  • Changed bridge application name to fx_cast_bridge to avoid confusing permissions dialogs (#69).
  • Added native (optional) AppKit receiver selector popup application for macOS. Allows for proper file selection dialog and looks nicer.
  • Added daemon mode (#59). Allows extension to work from within a snap. Write a service file that starts the main bridge executable with the --daemon argument.
  • Added file casting from the receiver selector popup ("Browse..." item in dropdown). No method of getting full file paths from within the browser, so only recommended for use with the native selector.
  • Added Spanish translation (by @RAVMN) (#72).
  • Added toolbar button action handling.
  • Various other minor fixes/tweaks...

Beta 3

18 Mar 09:13
Compare
Choose a tag to compare