core/modules/system/src/Form/PerformanceForm.php | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/core/modules/system/src/Form/PerformanceForm.php b/core/modules/system/src/Form/PerformanceForm.php index de6912b..a2e8592 100644 --- a/core/modules/system/src/Form/PerformanceForm.php +++ b/core/modules/system/src/Form/PerformanceForm.php @@ -16,6 +16,13 @@ class PerformanceForm extends ConfigFormBase { /** + * The render cache bin. + * + * @var \Drupal\Core\Cache\CacheBackendInterface + */ + protected $renderCache; + + /** * The date formatter service. * * @var \Drupal\Core\Datetime\DateFormatterInterface @@ -41,6 +48,7 @@ class PerformanceForm extends ConfigFormBase { * * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory * The factory for configuration objects. + * @param \Drupal\Core\Cache\CacheBackendInterface $render_cache * @param \Drupal\Core\Datetime\DateFormatterInterface $date_formatter * The date formatter service. * @param \Drupal\Core\Asset\AssetCollectionOptimizerInterface $css_collection_optimizer @@ -48,9 +56,10 @@ class PerformanceForm extends ConfigFormBase { * @param \Drupal\Core\Asset\AssetCollectionOptimizerInterface $js_collection_optimizer * The JavaScript asset collection optimizer service. */ - public function __construct(ConfigFactoryInterface $config_factory, DateFormatterInterface $date_formatter, AssetCollectionOptimizerInterface $css_collection_optimizer, AssetCollectionOptimizerInterface $js_collection_optimizer) { + public function __construct(ConfigFactoryInterface $config_factory, CacheBackendInterface $render_cache, DateFormatterInterface $date_formatter, AssetCollectionOptimizerInterface $css_collection_optimizer, AssetCollectionOptimizerInterface $js_collection_optimizer) { parent::__construct($config_factory); + $this->renderCache = $render_cache; $this->dateFormatter = $date_formatter; $this->cssCollectionOptimizer = $css_collection_optimizer; $this->jsCollectionOptimizer = $js_collection_optimizer; @@ -62,6 +71,7 @@ public function __construct(ConfigFactoryInterface $config_factory, DateFormatte public static function create(ContainerInterface $container) { return new static( $container->get('config.factory'), + $container->get('cache.render'), $container->get('date.formatter'), $container->get('asset.css.collection_optimizer'), $container->get('asset.js.collection_optimizer') @@ -158,6 +168,10 @@ public function buildForm(array $form, FormStateInterface $form_state) { public function submitForm(array &$form, FormStateInterface $form_state) { $this->cssCollectionOptimizer->deleteAll(); $this->jsCollectionOptimizer->deleteAll(); + // This form allows page compression settings to be changed, which can + // invalidate cached pages in the render cache, so it needs to be cleared on + // form submit. + $this->renderCache->deleteAll(); $this->config('system.performance') ->set('cache.page.max_age', $form_state->getValue('page_cache_maximum_age'))