* Added: Chat actions for modding and un-modding users.
* Fixed: Settings not being removed when an add-on is unloaded.
* Changed: Add a few new icons.
* API Added: Add support for header backgrounds for rich token documents.
* API Added: Methods for adding/updating emotes to and removing emotes from an emote set.
* API Added: Context flag to disable FFZ's chat message processing.
* API Changed: Add-ons can now be hot reloaded for development purposes. This feature may be somewhat unstable.
* Added: Option to change the size of Message Hover actions.
* Added: New chat action appearance type "Emote" that makes it easy to use an emote image for an action.
* Changed: Do not show the "Pin" action on messages with no message body.
* Changed: Use Twitch's API for embeds/tooltips of Twitch URLs. This now makes use of clip embed data being sent via PubSub, notably.
* Fixed: Multiple emotes with the same name being listed in tab-completion.
* Experiment: There's a new chat line render method available. This is not currently enabled for any users, but it will be enabled after more internal testing. The new method is not necessarily faster, though it should not be slower. The main purpose of the rewrite is code de-duplication and making the renderer easier to maintain.
* API Added: `chat.addLinkProvider(provider);` to register a handler for link data.
* API Fixed: Do not allow duplicate registration of tokenizers or rich embed handlers for chat.
* Fixed: The Audio Compressor incorrectly being disabled due to changes in Twitch's player causing FFZ to incorrectly assume a clip is being played.
* Fixed: Twitch emote cards failing to open when clicking an emote. (Hilariously, this is because we were searching for the component that opens emote cards up to 200 entries up the stack. It is now, as of the time of this update, 201 entries up the stack.)
* API Fixed: When adding a new chat action definition or renderer, invalidate message hover, user context, and room actions as well and not only inline.
srcObjects can be defined by webworkers, amazon has pushed support for webworkers setting videos processed by a separate worker thread now that chrome has shipped support in Chrome 108.
Compressor still works if video is defined in this way, so we can check for and allow this.
* Fixed: Certain chat actions (Pin, Reply) not working correctly when assigned as a User Context action.
* Fixed: When editing a setting using the filter editor, settings are saved correctly.
* Changed: When editing chat actions, you can now choose to have a profile not inherit values from other profiles or the default values.
* Added: Options to hide the "Chat Highlight Settings" and "Shield Mode" buttons in the chat input.
* Added: Option to fade the video player when paused or buffering. (Closes#1289)
* Added: Message Hover chat actions! Now you can add custom actions in the style of Twitch's native "Pin Message" and "Reply to Message" buttons. This change also adds default actions for those that behave similarly to Twitch's native behavior. (Note: The Pin Message action is, by default, only visible if you have your mod icons displayed.) (Closes#1284. Closes #1293.)
* Changed: Remove the Reply action from the defaults for In-Line chat actions.
* Fixed: Duplicate words in *in* certain localized strings with human friendly relative times. (Closes#1292)
* Fixed: Bug where the link testing debug component would not collect its event source when being destroyed.
* Fixed: Popup UI elements not appearing with the correct colors. (Closes#1285)
* Fixed: Elements in the FFZ Control Center sometimes failing to display scroll-bars correctly after a Twitch update.
* Fixed: The mouse cursor not hiding correctly when positioned over the player with controls not visible.
* Fixed: Tab-completion sometimes failing to include emotes from add-ons due to improperly cached data. (Closes#1299. Thanks cfinegan)
* Fixed: Rich token rendering not setting alt text or width and height on images.
* Added: "Pin This Message" chat action to allow moderators to pin messages as a quick fix until I can implement the normal vanilla pin button.
* Fixed: FrankerFaceZ failing to load correctly on moderation view pages.
* Added: "Copy Message" chat action for copying a message to your clipboard.
* Added: Setting to pause the player by clicking on it. This is disabled by default, and the pause happens after half a second to avoid pausing as part of a double-click.
* Added: Setting to clear the emote menu's search when closing it.
* Added: Setting to hide the "Elevate Your Message" button in the chat input field.
* Changed: Remove code related to channel hosting.
* Fixed: Do not attempt to load FFZ on `gql` or `passport` subdomains.
* Fixed: Channel leader-boards not being hidden on channels within a specific experiment.
* Fixed: Channel Metadata not appearing over the player in theater mode when hovering with the relevant setting enabled.
* Fixed: Chat on Videos not appearing correctly for some videos due to incorrect channel IDs associated with messages.
* Fixed: When in theater mode, hide the secondary player controls that Twitch displays by mistake.
* Fixed: Certain Twitch badges not appearing correctly for users with high-DPI displays or increased zoom levels. (Note that this may require you to perform a hard refresh due to browser caching.)
* Removed: Don't display a message about the Audio Compressor preventing playback rate changes for Firefox users. Firefox fixed that issue a while back and no users should experience it at this time.
* Added: Setting to hide specific chat token types from rendering in chat, in case you for some reason don't want to see cheers / emotes / whatever.
* Added: Support for the Artist, No Audio, and No Video badges in different badge styles.
* API Added: The `site.player` module now exports CSS rules for the player control containers, so that FS Chat (and maybe other add-ons) won't need updates in the future if the CSS rule changes slightly.
* Added: Option to hide channels from the directory based on their title.
* Fixed: Issue with FrankerFaceZ failing to initialize correctly due to a change in Twitch's JS layout.
* Added: Setting to force the use of legacy audio API constructors for browsers with compatibility issues.
* Changed: Add support for Twitch's inline chat highlights.
* Fixed: Locales failing to load due to missing `day.js` support.
* Fixed: Locales failing to load due to capitalization.
* Changed: Use a slightly newer API for constructing an audio compressor object for better compatibility.
* Added: Formatters for chat action variables. (Closes#1199)
* Changed: By default, open the user card to a badge when clicking a badge in chat. (Closes#1195)
* Fixed: The settings bridge functioning incorrectly for users without a set storage provider, causing pages that rely on the settings bridge including the Stream Dashboard to never correctly load FFZ.
* Fixed: The new announcement feature not rendering correctly in chat.
* Fixed: Metadata failing to render correctly with certain Twitch experiments active.
* Fixed: Some promoted streams appearing when users have chosen to hide promoted streams.
* Fixed: The FFZ Control Center button being positioned incorrectly on streamer dashboard pages.
* Fixed: Profile rules for the current category/title not working on certain pages.
* Fixed: Swap Sidebars causing rendering issues when in theater mode, with the chat below the player, when not using FrankerFaceZ's Portrait Mode option.
* Fixed: The placeholder text being positioned wrong when using Twitch's WYSIWYG chat input.
* Fixed: The entire extension loading when viewing an embedded clip, causing undue load.
* Changed: Add a link to YouTube's Privacy Policy to the legal page.
* Fixed: FFZ no longer working correctly for Safari users owing to poor regex support. Safari users will be unable to use the Emoji Joiner Workaround introduced in 4.32.0.
* Added: Support for combined emoji using a workaround that compensates for Twitch chat eating unicode it shouldn't. (See #1147 for more details)
* Added: Setting to change how emotes are sorted when using tab completion. Applies to the In-Line Tab Completion add-on as well as the default tab completion.
* Added: Setting to disable a browser's "automatic dark theme" features when supported. This primarily applies to Chromium browsers.
* Added: Ability to make emoji larger in addition to emotes using the "Larger Emotes" setting.
* Fixed: Better handling of community introduction messages.
* Fixed: Catch more chat line rendering errors to prevent chat from breaking entirely.
* Fixed: Chat on Videos not appearing with the chat background color.
* API Changed: Rich Tokens now support `ref` tokens in `header` tokens.
* API Changed: Rich Tokens now support `link` tokens with no content, automatically setting their content to their URLs.
* Fixed: Chat crashing due to Twitch's new introduction feature. This is currently done with a patch that converts such messages to the old style 'First Time Chat'.
* Changed: The rich embed testing tool now supports automatic refresh when using a local development server.
* Fixed: Reduce the amount of re-rendering that happens when a mass gift sub happens in chat.
* Fixed: Do not display stream latency metadata when watching non-live content.
* Fixed: Add support for user name overrides to clips and video chat.
* Fixed: Badge tooltips on the clips subdomain.
* API Added: `ffz_user_class`, `ffz_user_props`, and `ffz_user_style` on chat messages for customizing the display of usernames on messages in chat.
* Fixed: Clicking on Twitch emotes to open an information card about the emote not working for emotes at 50% or further down the screen height.
* Fixed: Improve support for the Twitch WYSIWYG chat input experiment.