namespace Drupal\filter\Element;
use Drupal\Core\Cache\Cache;
+use Drupal\Core\Cache\CacheableMetadata;
use Drupal\Core\Render\BubbleableMetadata;
use Drupal\Core\Render\Element\RenderElement;
use Drupal\filter\Entity\FilterFormat;
$langcode = $element['#langcode'];
if (!isset($format_id)) {
- $format_id = static::configFactory()->get('filter.settings')->get('fallback_format');
+ $filter_settings = static::configFactory()->get('filter.settings');
+ $format_id = $filter_settings->get('fallback_format');
+ // Ensure 'filter.settings' config's cacheability is respected.
+ CacheableMetadata::createFromRenderArray($element)
+ ->addCacheableDependency($filter_settings)
+ ->applyTo($element);
}
/** @var \Drupal\filter\Entity\FilterFormat $format **/
$format = FilterFormat::load($format_id);
return $element;
}
- $filter_must_be_applied = function(FilterInterface $filter) use ($filter_types_to_skip) {
+ $filter_must_be_applied = function (FilterInterface $filter) use ($filter_types_to_skip) {
$enabled = $filter->status === TRUE;
$type = $filter->getType();
// Prevent FilterInterface::TYPE_HTML_RESTRICTOR from being skipped.