Commit a2db325e authored by catch's avatar catch
Browse files

Issue #3525388 by acbramley: Trigger a deprecation when using...

Issue #3525388 by acbramley: Trigger a deprecation when using \Drupal\Core\Render\Renderer::addCacheableDependency with a non CacheableDependencyInterface $dependency
parent 64212ca3
Loading
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@
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 @@ public function mergeBubbleableMetadata(array $a, array $b) {
   * {@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);
+4 −2
Original line number Diff line number Diff line
@@ -196,10 +196,12 @@ public function revisionOverview(NodeInterface $node) {
              '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) {
+1 −1
Original line number Diff line number Diff line
@@ -1097,7 +1097,7 @@ public static function providerTestAddCacheableDependency() {
            'max-age' => 600,
          ],
        ],
        new \stdClass(),
        (new CacheableMetadata())->setCacheMaxAge(0),
        [
          '#cache' => [
            'contexts' => ['theme'],