- A
searchUrlandsearchHeadersoption has been added to theimageGallery,videoGallery,audioGallery,fileGallery, andfileBrowserplugins for server-side search. #1651 - A
scriptSrcWhitelistoption has been added to theembedplugin to allow<script src>in raw HTML embeds via an explicit allowlist. #1649
- Fixed a bug where Figure menu actions (alignment, block-inline toggle, preset resize) did not fire
onChange. #1644 - Fixed a bug where
tagStylesentries were ignored when the tag was also matched by a category default (@textor@line) - Fixed an issue in the
embedplugin where the raw HTML path did not validate iframesrcagainst the URL allowlist, allowing arbitrary iframe URLs to bypass sanitization. #1649
- Removed
spanStyles/lineStylesoptions — unified intotagStylesvia the category sentinel keys@text/@line. An explicit tag entry always wins over the category default (e.g.tagStyles.divis used even thoughdivis a line element —@lineis ignored fordiv).- Migration:
// Before { spanStyles: 'color|font-size', lineStyles: 'text-align|margin', tagStyles: { div: 'color' } } // After { tagStyles: { '@text': 'color|font-size', '@line': 'text-align|margin', div: 'color' } }
- Migration:
embedplugin:<script>tags in raw HTML embeds are now rejected by default — add trusted patterns toscriptSrcWhitelistto allow them. #1649- Migration: for Twitter blockquote and similar embeds that require an external script, configure
pluginOptions.embed.scriptSrcWhitelist: [/^https:\/\/platform\.twitter\.com\/widgets\.js$/]
- Migration: for Twitter blockquote and similar embeds that require an external script, configure
embedplugin: iframesrcin raw HTML embeds is now validated against the registered URL patterns (embedQuery); non-matching URLs are rejected. #1649Browsermodule (modules/contract/Browser): renamedparams.searchUrlHeader→params.searchHeaders, internal fieldurlHeader→headers. Custom browser plugins that importBrowserdirectly must update the option name and field reference. #1651