diff options
-rw-r--r-- | core/lib/Drupal/Core/Render/Renderer.php | 4 | ||||
-rw-r--r-- | core/modules/node/src/Controller/NodeController.php | 6 | ||||
-rw-r--r-- | core/tests/Drupal/Tests/Core/Render/RendererTest.php | 2 |
3 files changed, 9 insertions, 3 deletions
diff --git a/core/lib/Drupal/Core/Render/Renderer.php b/core/lib/Drupal/Core/Render/Renderer.php index fe3f29ea696..1f26381bb18 100644 --- a/core/lib/Drupal/Core/Render/Renderer.php +++ b/core/lib/Drupal/Core/Render/Renderer.php @@ -8,6 +8,7 @@ use Drupal\Component\Utility\Variable; use Drupal\Component\Utility\Xss; use Drupal\Core\Access\AccessResultInterface; use Drupal\Core\Cache\Cache; +use Drupal\Core\Cache\CacheableDependencyInterface; use Drupal\Core\Cache\CacheableMetadata; use Drupal\Core\Form\FormHelper; use Drupal\Core\Render\Element\RenderCallbackInterface; @@ -778,6 +779,9 @@ class Renderer implements RendererInterface { * {@inheritdoc} */ public function addCacheableDependency(array &$elements, $dependency) { + if (!$dependency instanceof CacheableDependencyInterface) { + @trigger_error(sprintf("Calling %s() with an object that doesn't implement %s is deprecated in drupal:11.3.0 and will throw an error in drupal:13.0.0. See https://www.drupal.org/node/3525389", __METHOD__, CacheableDependencyInterface::class), E_USER_DEPRECATED); + } $meta_a = CacheableMetadata::createFromRenderArray($elements); $meta_b = CacheableMetadata::createFromObject($dependency); $meta_a->merge($meta_b)->applyTo($elements); diff --git a/core/modules/node/src/Controller/NodeController.php b/core/modules/node/src/Controller/NodeController.php index 87c9586daee..d5a35f64285 100644 --- a/core/modules/node/src/Controller/NodeController.php +++ b/core/modules/node/src/Controller/NodeController.php @@ -196,10 +196,12 @@ class NodeController extends ControllerBase implements ContainerInjectionInterfa 'username' => $this->renderer->renderInIsolation($username), 'message' => ['#markup' => $revision->revision_log->value, '#allowed_tags' => Xss::getHtmlTagList()], ], + // @todo Fix this properly in https://www.drupal.org/project/drupal/issues/3227637. + '#cache' => [ + 'max-age' => 0, + ], ], ]; - // @todo Simplify once https://www.drupal.org/node/2334319 lands. - $this->renderer->addCacheableDependency($column['data'], $username); $row[] = $column; if ($is_current_revision) { diff --git a/core/tests/Drupal/Tests/Core/Render/RendererTest.php b/core/tests/Drupal/Tests/Core/Render/RendererTest.php index 69301eae9bb..9c68273365b 100644 --- a/core/tests/Drupal/Tests/Core/Render/RendererTest.php +++ b/core/tests/Drupal/Tests/Core/Render/RendererTest.php @@ -1097,7 +1097,7 @@ class RendererTest extends RendererTestBase { 'max-age' => 600, ], ], - new \stdClass(), + (new CacheableMetadata())->setCacheMaxAge(0), [ '#cache' => [ 'contexts' => ['theme'], |