* Added: Option to hide Twitch's native stream uptime. Enabled by default when using FFZ's own stream uptime.
* Fixed: Implement stream metadata for the new Twitch layout.
* Fixed: Display the subscription tier in badge tool-tips for Tier 2 and Tier 3 subscriber badges.
This release involves significant changes under the hood. Due to Twitch's heavy use of functional React components and effects in recent updates to their site, we need to start listening for DOM nodes rather than components in many cases. To that end, I've implemented the Elemental module to grab elements using MutationObservers. I didn't want to, but this is where we're at. In a future release I'll be using Elemental to add support back to the directory for certain features.
* Added: Emote Visibility Control for Emote Menu. You can now hide emotes you don't want from your emote menu. You still have them, and they'll still appear in chat if someone else uses them, but it helps keep the clutter down in your menu. (Closes#811)
* Added: Setting to toggle mute for the player when middle-clicking it. (Closes#812)
* Added: Setting to toggle the bold style applied to chat mentions. (Closes#816)
* Fixed: No background color being applied to Highlight My Message chat messages when using the new Twitch layout. Now, the default Twitch purple will be used when FFZ hasn't yet extracted the color for the current channel. Extracting the channel color is still broken at this time. (Closes#821)
* Fixed: The player volume resetting to 100% when changing channels. (Closes#820)
* Fixed: Chat appearing incorrectly when a custom width smaller than 340 pixels is set. (Closes#819)
**Note**: This update does not fix all issues with features not working on Twitch's new channel page layout. Due to changes Twitch has been making to their coding practices, it is significantly harder to support their newer pages. We are still trying to determine the best way to support things going forward.
* Added: Chat Actions can be copied as JSON and imported from JSON. (Closes#782)
* Fixed: The player stuttering when attempting to play a clip when the Audio Compressor is set to be enabled by default.
* Fixed: Custom chat widths, swapping sidebars, and portrait mode not working correctly with the new channel page layout. (Closes#799, Affects #794)
* Fixed: Square Avatars not working correctly on the new channel page layout.
* Fixed: Searching settings would not properly search for items in Experiments.
* Fixed: Emotes ending in punctuation (specifically: `.`, `,`, and `!`) were not being displayed correctly.
* Fixed: The order of actions reversing after an inheritance point. (Closes#791)
* Changed: Rename `Chat > Bits and Cheering > Display Top Cheerers` to `Chat > Appearance > Display Leaderboard` to bring it in line with the current state of the feature.
* Removed: Option to hide offline channels from sidebar. This is no longer trivial to implement due to Twitch changes. (Closes#801)
* Added: Support for the new Mod View.
* Fixed: Changes to chat room state not updating room actions correctly.
* Fixed: Chat room state not being detected correctly when the client loads.
* Fixed: Error loading bits configuration after a Twitch update changed the format, causing an exception that prevents the add-on from initializing fully.
* Added: Setting to disallow polls from being displayed in chat.
* Fixed: Polls not being displayed in chat. (Somehow, the setting got erased from the previous release.)
* Added: Setting to stop Hype Trains from appearing in chat.
* Changed: Megacheer messages will be disabled when bits UI has been hidden.
* Fixed: Mass subscription messages displaying an empty square in chat when attempting to hide them.
* Added: Setting for disabling the highlight on messages highlighted with channel points.
* Fixed: Badges not appearing correctly in chat. (Fixed detection of the `chat-container` component.)
* Fixed: Partially fixed rendering of subscription messages in Chat on Videos. Twitch's data format is broken and doesn't distinguish between the system message (Example: `X resubscribed for 3 months ...`) and the actual user message (Example: `Hi thanks for three months`) so rendering them properly is difficult.
* Changed: Replace a few unnecessary menu components that only display markdown with a generic component.
* Changed: Initial work for letting users override display names and user colors in chat.
* Changed: The FFZ menu button no longer depends on add-ons being loaded to load itself.
* Fixed: Rendering of highlighted messages in Chat on Videos.
* Fixed: Featured channels menu not working when a bad channel is in the list.
* Added: High-DPI badge support for Firefox using `@media` queries since they still don't support `image-set()` after 5+ years.
* Added: Display the date videos were uploaded in a tool-tip when hovering over the human readable duration (such as '3 months ago').
* Added: Setting to hide all the Community Highlight pop-ups at the top of chat. They are the latest pop-up style Twitch is trying. As usual, they fail to include a way to dismiss them and they obscure chat. Unfortunately, this also hides polls which have some value.
* Fixed: Inverted Portrait Mode.
* Fixed: Normalize white-space when sending messages. This matches the behavior of Twitch's servers when normalizing chat messages and fixes client-side rendering issues with FrankerFaceZ.
* Added: Support for Twitch's redesigned badges.
* Added: Version selector to choose between the new vs old badge designs.
* Added: Option to adjust badge colors for visibility depending on the current background color.
* Changed: Use the channel accent color for the border on re-subscription messages and other notices.
* Fixed: Update `dayjs` dependency for upstream i18n fixes.
* Fixed: Hiding Side Navigation not functioning with a certain Twitch experiment.
* Fixed: Certain player settings, such as hiding extensions, not functioning.
* Maintenance: Update a few dependencies.
* Added: Setting to hide the mass gift sub banner at the top of chat.
* Changed: Messages for redeeming Channel Points now have custom rendering with less padding and background colors to properly highlight them.
* Fixed: Moderation profiles not always applying when navigating between channels.
* Fixed: Settings to disable auto-play not working.
* Fixed: Remove debug logging when importing a profile.
* Added: `Current Category` rule type for profile rules. (Ironically, does not currently apply when on the directory page for a category.)
* Fixed: Various chat input related features breaking, including Room Actions and tab-completion of emotes.
* Fixed: Alignment of certain chat settings menu elements.
* Maintenance: Update our copy of the `CHAT_TYPES` enum with new types from Twitch's client.
* Fixed: Inconsistent localized string for active profiles.
* Fixed: Hide mega-cheer recipient call-outs in chat when the relevant setting is enabled.
* Fixed: Styling of the chat settings menu modifications.
* Fixed: The FFZ menu button in the navigation bar not applying its loading state.
* Fixed: Incompatibility with BetterTTV menu options.
* Added: Additional settings for controlling the behavior of Twitch's native Chat Filters.
* Added: Upload strings directly from the Translation Tester UI. (This is for me only, but I like it.)
* Changed: Allow resizing text entry boxes in the Translation Tester UI.
* Fixed: Emoji categories were not being localized.
* Added: Picture-in-Picture button for the player, when supported by your browser.
* Added: Option to disable the `Reset Player` button for the player.
* Fixed: Smooth scrolling not functioning once the chat buffer fills. It's still a bit peculiar, but at least it's somewhat working now. Please disable the feature for now if the behavior is bothering you or causing issues.
* Fixed: The Featured channels menu not loading, for channels using that FFZ feature.
* Fixed: Certain add-on emotes appearing in the emote tab-completion menu multiple times.
* Fixed: Cheers not rendering correctly in chat.
* Added: Room Actions can now be filtered based on the chat being in Followers-Only Mode or R9K Mode.
* Changed: Custom tool-tips for actions now support variables. Time-out and ban reasons do as well. Text labels do not.
* Fixed: Chat messages from Twitch Extensions not displaying.
* Changed: Changing the font size of chat now affects the chat input box.
* Fixed: The Block and Hide Thumbnails buttons not appearing in the directory pages for games.
* Fixed: Handling of certain types of chat messages causing chat to fail to render anymore.
* Fixed: Clicking hosted channels in the Following Directory not showing the Host menu.
* Apply custom chat Font Size on chat input as well
* Move `ChatInput` updates to the corresponding module
With that, also emit an event on the chat when the CSS changes
* Fix not listening to the correct `update-chat-css` event
* Also make sure the font size get's applied to vod / clips input, too
Fixed: The Add Action menu for Chat Actions being too tall to fit within the FFZ Control Center at some resolutions.
Fixed: Styling for various hover-able UI elements.
Fixed: User Context Chat Actions set to show/hide based upon a message's deleted state not properly doing so.
Fixed: The FFZ emote menu appearing too tall at times.
Fixed: Remove debug logging.
Changed: The `Delete All` button in the Chat Actions editors will now not immediately clear all actions, but rather show another button asking the user to confirm.
Changed: Add a page rule for dashboard pop-out chat so that profiles can be made for it.
Changed: Update `CHAT_TYPES` from Twitch.
* Added: Option to set a default custom color for highlighted messages, overriding the default red color.
* Added: Recent Messages for Chat Input. Press up and down to recall previously sent messages.
* Added: Option to prioritize favorited emotes and emoji in tab-completion.
* Fixed: Extensions not being hidden correctly.
* Fixed: Change tab-completion sorting to act more similarly to vanilla Twitch.
* Fixed: Color inputs in settings updating too frequently, causing performance issues.
* Fixed: Chat-related code breaking on popped out viewer cards and spamming the automated error reporting service with errors.
The Great Maintenance Update. No new features here. Instead, we've updated the build system to webpack 4, updated all our dependencies, and cleaned up a lot of linting issues.
* Added: Option to automatically opt-out of getting redirected to a Squad Stream page when viewing a channel using Squad Streaming.
* Added: Option to automatically pin the chat message that allows you to share a re-subscription.
* Added: `Current Channel` rule for profiles, to match all pages associated with a certain channel without needing many page rules.
* Fixed: Unreadable text in light theme when importing a profile.
* Changed: Display a matching page URL in the `Current Page` rule for profiles.
* Changed: Do not display an inactive profile warning on the Add-Ons settings page, since those are not affected by profiles.
* Changed: Update Vue to a more recent version.
* Maintenance: Update the chat types enum based on the latest version of Twitch.
* API Added: `TwitchData` module (`site.twitch_data`) for querying Twitch's API for data.
The Profile Update! Now, it's possible to create custom settings profiles. The important thing about profiles is that you can have different profiles run according to different rules. Want some settings to only apply on your dashboard? Use a Current Page rule set to Dashboard. Want your chat wider in theater mode? Create a profile for Theater Mode.
* Added: Profile Editor.
* Added: Ability to import and export specific profiles.
* Added: Ability to update profiles from JSON files for more advanced users.
* Fixed: Update `sortablejs` dependency to fix issue with sorting behavior.
* Fixed: Several issues in the settings profile system which never came up because custom profiles weren't available.
* Fixed: Hotkeys freezing chat when they shouldn't, up until the first time the mouse hovers over chat.
* API Added: `deep_equals(object, other, ignore_undefined = false)` method of `FrankerFaceZ.utilities.object` for comparing two objects, deeply.
* API Changed: `<setting-check-box />` controls can now display their indeterminate state.
* API Fixed: `deep_copy()` eating Promises and Functions.
This is a fairly hefty update, behind the scenes. We've rewritten all code that deals with chat scrolling in order to integrate with Twitch's last batch of changes that made chat pausing accessible for moderators. This update also enables the Add-Ons System for all users.
* Added: Setting to allow you to pause chat with a hot key, even when the mouse isn't hovering over chat.
* Added: Setting to control how long chat remains paused due to move movement.
* Fixed: Chat row backgrounds changing when messages are removed from chat.
* Changed: Integrate with Twitch's own chat pausing code, where it makes sense.
* Changed: Remove the experiment locking down access to the Add-Ons Loader.
* Changed: When using the current time as a cache buster, truncate it to the nearest 5 second interval.
* Added: Option to highlight messages from a user when their viewer card is open.
* Fixed: Every word in whisper messages being highlighted as a mention.
* Added: Option to open viewer cards when clicking a mention in chat.
* Fixed: Mention matching in chat. (Now using the same regular expression as vanilla Twitch.)
* Added: Button to mark all settings as seen to the main menu, only visible when there are new settings.
* Fixed: Formatting of metadata.
* Fixed: Custom Chat Width and Theater Mode.
* Added: In-Line Chat Actions can now be set to display with specific modifier keys being held. This feature currently requires that Freeze Chat Scrolling is enabled. (Though, why you'd want to use this without that feature is beyond me.)
* Fixed: Bug with custom chat width in theater mode.
* Fixed: The `Get Bits` button appearing when disabled.
* Fixed: Issue with highlighting chat usernames when using Firefox.
* Fixed: Misc minor bugs.
* Fixed: In-Line Chat Actions appearing when Visibilty: Mod Icons is set to True while in a channel where the user is not a moderator.
* Fixed: When looking up badge data and data has not been pulled from chat yet, try pulling data from chat immediately.
* Added: Room Actions for Chat. Easily send canned messages or open relevant links.
* Changed: Refactor how action data is passed to in-line chat actions. Should perform better now, and also allow using the message text in actions.
* Changed: Blacklist a few errors from automatic error reporting.
* Fixed: Include the Squad Bar when calculating the player height for Portrait Mode.
* Fixed: Issue with rich content embeds breaking chat rendering when an error occurs loading their data.
* Fixed: Duplicate icon keys in chat action editor.
* Changed: Better DOM scanning performance by giving up faster.
* Fixed: More stupid changes in order to force events to fire on the component we grab badge data from.
* Added: Option to hide Squad Streaming banners on channel pages.
* Changed: Rewrite the entire i18n system to use the standard ICU message format.
* Changed: Render the context menu for chat messages in Chat on Videos.
* Fixed: Badges not appearing correctly in chat.
* Fixed: Messages in Chat on Videos with embeds appearing too wide.
More performance!
* Changed: Push the chat scroll to bottom into a new animation frame to avoid costly recalculations as much as possible.
* Fixed: Runaway performance issue when using FontAwesome icons for in-line chat actions due to an overabundance of CSS.
* Fixed: Emitting updated events for settings that haven't changed, resulting in frequent re-rendering of all chat lines.
* Added: Reason context menus for in-line timeout and ban actions.
* Fixed: Certain FFZ tool-tips using the wrong input handlers.
* Fixed: Do not update CSS whenever bits configuration changes, only when necessary. (Performance fix for the bleed purple campaign.)
* Changed: Mark certain page elements with a flag to avoid crawling them with MutationObservers. (More performance~~)
* Added: More settings under Chat > Behavior >> Deleted Messages to control the display of moderated messages.
* Fixed: Deleted messages displaying for non-moderated users using the settings that would be applied were that user a moderator.
* Changed: In-line Chat Actions that only display when you are a moderator now only display when you have moderation powers over that user. Moderators will no longer see those actions next to other moderators.
* Fixed: Add initial support for Twitch's new message moderation display styles.
* Fixed: Tooltips in pop-out chat not appearing correctly.
* Fixed: Opening the FFZ Control Center from pop-out chat.
* Fixed: Chat not appearing if a window is too thin with Portrait Mode enabled.
* Added: Data Management > Backup and Restore
* Added: Option to expand merged mass sub gift messages by default.
* Added: Option to hide the Discover link in the top navigation bar.
* Changed: Use icons for navigation of the emote menu. Fix padding as well.
* Fixed: Player problems on Squad Streams pages.
* Fixed: Option to hide Live indicators on channels in the directory.