* Added: Automatically reprocess chat messages when loading a channel for the first time. (Closes#1333)
* Fixed: Random emotes being insert into chat when using the emote menu in some situations. (Closes#1337)
* Fixed: When tokenizing messages, ignore fake emotes injected into Twitch's chat handler for the purpose of auto-completion and WYSIWYG support.
* Changed: Switch to a better method for how to get `require` from webpack.
* Changed: Update the logic used to calculate the container size when overlaying emotes.
* API Added: `load_tracker` module for waiting for multiple events to finish. This is used to reprocess chat lines once every data source has finished loading to avoid multiple unnecessary updates.
* API Added: Add-ons can now set a `load_events` array in their manifest to have the add-on loader register them with `load_tracker`, ensuring events don't fire before the add-on is able to execute.
* Fixed: Navigating between channels with the audio compressor enabled (or having previously been enabled) causing the player to become stuck loading infinitely. (Closes#1317)
* Fixed: Features on the `clips` and `player` subdomains not working correctly. (Closes#1336)
* Changed: Finish implementing the initial emote effects.
This update includes a dependency update to version 2 of PopperJS, the library we use for tool-tips. Hopefully this fixes flickering issues with tool-tips. Some tool-tips may have issues after the update. If something doesn't look right, please ask.
* Fixed: Chat lines not showing replies.
* API Fixed: `setChildren` now supports variables that are not `Node`s or `string`s, and does so by casting other types to `string`s. Makes it easy to include numbers and other variables when using JSX.
* Maintenance: Update to PopperJS v2.
* Added: Setting to hide the "Discover Luna" link in the top navigation.
* Changed: Hide blocked categories from the directory's category list.
* Fixed: Stream up-times not appearing in the directory.
* Fixed: Error in error handler for PubSub.
* API Added: `Dialog` now supports prepending its element to its container, rather than appending.
* API Added: `tip.add_class` for adding additional classes to rich tooltips that may now have had their element created yet.
* Changed: The settings for Animated Emotes and chat user color correction now default to enabled or disabled based on your vanilla Twitch settings.
* Changed: Strip automatic error reporting from builds till it can be fixed.
* Fixed: Native viewer count and uptime not hiding correctly when a stream goes live.
* API Added: Settings can now depend on `localStorage` values by using `ls.{name}` keys for JSON or `ls.raw.{name}` for raw strings.
* Maintenance: Update dependencies.
* Added: Support for custom VIP Badge images.
* Fixed: Certain emotes breaking when `Large Emotes` is combined with `Fix bad Twitch emotes`. (Closes#1020)
* Fixed: Remember the Compressor state, if it was toggled, when resetting the player. (Closes#1024)
* API Added: The `chat` module has two methods for maintaining a list of possible message highlight reasons, for use populating UI. Accessible via methods `addHighlightReason(key, data)` and `getHighlightReasons()`.
* API Added: `basic_array_merge` setting type.
* API Added: Logs now include the initial URL that the script was loaded into.
* API Changed: `<select>` settings can now support multiple selected values.
* Added: Better options for highlight / block terms, letting you make rules case sensitive, match whole words, and highlight in chat or not.
* Added: Documentation of glob syntax.
* Changed: Split `Chat > Filtering` into several sub-categories to make it easier to find specific options.
* Changed: Display seconds with the up-time metadata by default, matching Twitch.
* Fixed: The Unfollow button not hiding on the standalone player.
* Fixed: Loading issue for graphs on the dashboard.
* API Added: Allow add-ons to target the `player` flavor.
The Embedded Player Update! Adds support for the Compressor, Reset Button, and metadata to the embedded / pop-out player using a minimal build of FFZ.
* Added: Support for the embedded player.
* Fixed: Update the regex for clip URLs to match new extended slugs.
* Fixed: Bugs in `experiments` and `raven` when the `site` module cannot be loaded or does not provide `getCore()`.
* Fixed: Bug in the main menu where the menu may sometimes become unresponsive when opening to a page with no settings.
* Fixed: Attempting to initialize the Compressor when a user has not yet interacted with a page may result in a broken audio stack.
* Fixed: Setting Profile filters that are unknown would always match, rather than always failing. This is problematic if an add-on that provides a filter type has not yet loaded.
This was a small update until Twitch ripped out half their CSS.
* Added: Cross-Origin Storage Bridge for settings, better synchronizing settings on sub-domains with support for binary blobs at the cost of slightly increased start-up time.
* Fixed: Rendering issues caused by missing CSS.
* Fixed: FFZ Control Center button not appearing on dashboard pages, and appearing in the incorrect place.
* Changed: Work towards splitting modules into their own JS files for a faster, more asynchronous startup.
* API Added: Methods for serializing and deserializing Blobs for transmission across postMessage.