diff -u b/core/lib/Drupal/Core/Entity/EntityViewBuilder.php b/core/lib/Drupal/Core/Entity/EntityViewBuilder.php --- b/core/lib/Drupal/Core/Entity/EntityViewBuilder.php +++ b/core/lib/Drupal/Core/Entity/EntityViewBuilder.php @@ -175,15 +175,6 @@ 'bin' => $this->cacheBin, ); - // Run field formatters. - $display = EntityViewDisplay::collectRenderDisplay($entity, $view_mode); - foreach ($entity->getFieldDefinitions() as $field_name => $definition) { - if ($formatter = $display->getRenderer($field_name)) { - $items = $entity->get($field_name); - $return[$field_name] = $formatter->getDefaults($items); - } - } - if ($entity instanceof TranslatableInterface && count($entity->getTranslationLanguages()) > 1) { $return['#cache']['keys'][] = $langcode; } diff -u b/core/lib/Drupal/Core/Field/FormatterBase.php b/core/lib/Drupal/Core/Field/FormatterBase.php --- b/core/lib/Drupal/Core/Field/FormatterBase.php +++ b/core/lib/Drupal/Core/Field/FormatterBase.php @@ -66,27 +66,6 @@ } /** - * @needsdoc - */ - public function getDefaults(FieldItemListInterface $items) { - $info = array( - '#cache' => array('tags' => array()), - ); - // Gather cache tags from reference fields. - foreach ($items as $item) { - if (isset($item->format)) { - $info['#cache']['tags']['filter_format'] = $item->format; - } - - if (isset($item->entity)) { - $info['#cache']['tags'][$item->entity->getEntityTypeId()][] = $item->entity->id(); - $info['#cache']['tags'][$item->entity->getEntityTypeId() . '_view'] = TRUE; - } - } - return $info; - } - - /** * {@inheritdoc} */ public function view(FieldItemListInterface $items) { reverted: --- b/core/lib/Drupal/Core/Field/FormatterInterface.php +++ a/core/lib/Drupal/Core/Field/FormatterInterface.php @@ -41,11 +41,6 @@ public function settingsSummary(); /** - * @needsdoc - */ - public function getDefaults(FieldItemListInterface $items); - - /** * Allows formatters to load information for field values being displayed. * * This should be used when a formatter needs to load additional information diff -u b/core/modules/node/tests/modules/node_test/node_test.module b/core/modules/node/tests/modules/node_test/node_test.module --- b/core/modules/node/tests/modules/node_test/node_test.module +++ b/core/modules/node/tests/modules/node_test/node_test.module @@ -38,7 +38,7 @@ } /** - * @needsdoc + * Implements hook_node_defaults_alter(). */ function node_test_node_defaults_alter(array &$build, NodeInterface &$node, $view_mode = 'full', $langcode = NULL) { if ($view_mode == 'rss') { only in patch2: unchanged: --- a/core/modules/comment/lib/Drupal/comment/Tests/CommentCacheTagsTest.php +++ b/core/modules/comment/lib/Drupal/comment/Tests/CommentCacheTagsTest.php @@ -7,6 +7,7 @@ namespace Drupal\comment\Tests; +use Drupal\Core\Entity\EntityInterface; use Drupal\system\Tests\Entity\EntityWithUriCacheTagsTestBase; /** @@ -71,4 +72,7 @@ protected function createEntity() { return $comment; } + protected function getAdditionalCacheTagsForEntity(EntityInterface $entity) { + return array('filter_format:'); + } } only in patch2: unchanged: --- a/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/Field/FieldFormatter/EntityReferenceIdFormatter.php +++ b/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/Field/FieldFormatter/EntityReferenceIdFormatter.php @@ -35,7 +35,15 @@ public function viewElements(FieldItemListInterface $items) { continue; } if (!empty($item->entity) && !empty($item->target_id)) { - $elements[$delta] = array('#markup' => check_plain($item->target_id)); + $elements[$delta] = array( + '#markup' => check_plain($item->target_id), + '#cache' => array( + 'tags' => array( + $referenced_entity->getEntityTypeID() => $referenced_entity->id(), + $referenced_entity->getEntityTypeID() . '_view' => $referenced_entity->id(), + ), + ), + ); } } only in patch2: unchanged: --- a/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/Field/FieldFormatter/EntityReferenceLabelFormatter.php +++ b/core/modules/entity_reference/lib/Drupal/entity_reference/Plugin/Field/FieldFormatter/EntityReferenceLabelFormatter.php @@ -79,6 +79,10 @@ public function viewElements(FieldItemListInterface $items) { else { $elements[$delta] = array('#markup' => check_plain($label)); } + $elements[$delta]['#cache']['tags'] = array( + $referenced_entity->getEntityTypeID() => $referenced_entity->id(), + $referenced_entity->getEntityTypeID() . '_view' => $referenced_entity->id(), + ); } } only in patch2: unchanged: --- a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldFormatter/TextDefaultFormatter.php +++ b/core/modules/text/lib/Drupal/text/Plugin/Field/FieldFormatter/TextDefaultFormatter.php @@ -35,7 +35,14 @@ public function viewElements(FieldItemListInterface $items) { $elements = array(); foreach ($items as $delta => $item) { - $elements[$delta] = array('#markup' => $item->processed); + $elements[$delta] = array( + '#markup' => $item->processed, + '#cache' => array( + 'tags' => array( + 'filter_format' => $item->format, + ), + ), + ); } return $elements; only in patch2: unchanged: --- a/core/modules/text/lib/Drupal/text/Plugin/Field/FieldFormatter/TextTrimmedFormatter.php +++ b/core/modules/text/lib/Drupal/text/Plugin/Field/FieldFormatter/TextTrimmedFormatter.php @@ -79,7 +79,14 @@ public function viewElements(FieldItemListInterface $items) { $output = $item->processed; $output = text_summary($output, $text_processing ? $item->format : NULL, $this->getSetting('trim_length')); } - $elements[$delta] = array('#markup' => $output); + $elements[$delta] = array( + '#markup' => $output, + '#cache' => array( + 'tags' => array( + 'filter_format' => $item->format, + ), + ), + ); } return $elements;