reverted: --- b/core/lib/Drupal/Core/Entity/Field/FieldItemList.php +++ a/core/lib/Drupal/Core/Entity/Field/FieldItemList.php @@ -7,9 +7,7 @@ namespace Drupal\Core\Entity\Field; -use Drupal\Component\Utility\NestedArray; use Drupal\Core\Entity\Field\FieldItemListInterface; -use Drupal\Core\Entity\Field\FieldDefinition; use Drupal\Core\Session\AccountInterface; use Drupal\Core\TypedData\TypedDataInterface; use Drupal\Core\TypedData\ItemList; @@ -82,7 +80,7 @@ * {@inheritdoc} */ public function getFieldDefinition() { + return new FieldDefinition($this->definition); - return new FieldDefinition(NestedArray::mergeDeep($this->getPluginDefinition(), $this->definition)); } /** reverted: --- b/core/lib/Drupal/Core/Entity/Plugin/DataType/Deriver/FieldItemDeriver.php +++ a/core/lib/Drupal/Core/Entity/Plugin/DataType/Deriver/FieldItemDeriver.php @@ -77,16 +77,6 @@ */ public function getDerivativeDefinitions(array $base_plugin_definition) { foreach ($this->fieldTypePluginManager->getDefinitions() as $plugin_id => $definition) { - // Provide easy access to the field type without requiring consuming code - // to parse it from the full data type. - $definition['field_type'] = $plugin_id; - - // The distinction between 'settings' and 'instance_settings' is only - // meaningful at the field type plugin level. At the Typed data API level, - // merge them. - $definition['settings'] = $definition['instance_settings'] + $definition['settings']; - unset($definition['instance_settings']); - $this->derivatives[$plugin_id] = $definition; } return $this->derivatives; diff -u b/core/modules/edit/lib/Drupal/edit/EditController.php b/core/modules/edit/lib/Drupal/edit/EditController.php --- b/core/modules/edit/lib/Drupal/edit/EditController.php +++ b/core/modules/edit/lib/Drupal/edit/EditController.php @@ -134,15 +134,12 @@ } // Validate the field name and language. - if (!$field_name) { + if (!$field_name || || !$entity->getPropertyDefinition($field_name)) { throw new NotFoundHttpException(); } if (!$langcode || (field_valid_language($langcode) !== $langcode)) { throw new NotFoundHttpException(); } - if (!($field_definition = $entity->getTranslation($langcode)->get($field_name)->getFieldDefinition())) { - throw new NotFoundHttpException(); - } // If the entity information for this field is requested, include it. $entity_id = $entity->entityType() . '/' . $entity_id; @@ -150,6 +147,7 @@ $metadata[$entity_id] = $this->metadataGenerator->generateEntity($entity, $langcode); } + $field_definition = $entity->get($field_name)->getFieldDefinition(); $metadata[$field] = $this->metadataGenerator->generateField($entity, $field_definition, $langcode, $view_mode); } diff -u b/core/modules/node/lib/Drupal/node/Entity/Node.php b/core/modules/node/lib/Drupal/node/Entity/Node.php --- b/core/modules/node/lib/Drupal/node/Entity/Node.php +++ b/core/modules/node/lib/Drupal/node/Entity/Node.php @@ -363,6 +363,8 @@ 'required' => TRUE, 'settings' => array( 'default_value' => '', + 'max_length' => 255, + 'text_processing' => 0, ), 'translatable' => TRUE, );