diff --git a/core/assets/vendor/jquery-form/jquery.form.min.js.map b/core/assets/vendor/jquery-form/jquery.form.min.js.map
deleted file mode 100644
index 22226e6e1b..0000000000
--- a/core/assets/vendor/jquery-form/jquery.form.min.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["../src/jquery.form.js"],"names":["factory","define","amd","module","exports","root","jQuery","window","require","$","doAjaxSubmit","e","options","data","isDefaultPrevented","preventDefault","target","closest","ajaxSubmit","captureSubmittingElement","$el","is","t","length","form","clk","type","offsetX","clk_x","clk_y","offsetY","fn","offset","pageX","left","pageY","top","offsetLeft","offsetTop","setTimeout","log","debug","msg","Array","prototype","join","call","arguments","console","opera","postError","rCRLF","feature","fileapi","undefined","get","files","formdata","FormData","hasProp","prop","attr2","this","attr","apply","val","jquery","dataType","onSuccess","deepSerialize","extraData","i","part","serialized","param","traditional","split","len","result","replace","push","decodeURIComponent","fileUploadIframe","a","getDoc","frame","doc","contentWindow","document","err","contentDocument","doSubmit","checkState","state","io","readyState","toLowerCase","name","cb","SERVER_ABORT","timeoutHandle","clearTimeout","$form","et","setAttribute","id","method","test","s","url","skipEncodingOverride","encoding","enctype","timeout","timedOut","CLIENT_TIMEOUT_ABORT","extraInputs","n","hasOwnProperty","isPlainObject","ownerDocument","value","appendTo","iframeTarget","$io","$body","attachEvent","addEventListener","submit","createElement","removeAttr","remove","xhr","aborted","callbackProcessed","abort","deferred","reject","location","href","iframeSrc","detachEvent","removeEventListener","errMsg","status","isXml","XMLDocument","isXMLDoc","body","innerHTML","domCheckCount","docRoot","documentElement","responseText","responseXML","getResponseHeader","header","content-type","Number","getAttribute","statusText","dt","scr","textarea","ta","getElementsByTagName","pre","b","textContent","innerText","toXml","httpData","error","success","context","resolve","g","event","trigger","active","complete","el","sub","Deferred","elements","extend","ajaxSettings","Date","getTime","css","position","getAllResponseHeaders","setRequestHeader","execCommand","ignore","global","beforeSend","disabled","csrf_token","csrf_param","forceSync","parseXML","ActiveXObject","async","loadXML","DOMParser","parseFromString","nodeName","parseJSON","ct","xml","indexOf","dataFilter","globalEval","action","trim","match","veto","beforeSerialize","qx","formToArray","semantic","filtering","optionsData","isFunction","beforeSubmit","q","toUpperCase","callbacks","resetForm","clearForm","includeHidden","oldSuccess","textStatus","jqXHR","successArguments","replaceTarget","each","isArray","merge","max","oldError","oldComplete","hasFileInputs","filter","mp","multipart","fileAPI","jqxhr","shouldUseFrame","iframe","closeKeepAlive","append","serializedData","contentType","processData","cache","uploadProgress","upload","percent","loaded","total","lengthComputable","Math","ceil","o","formData","ajax","removeData","k","ajaxForm","delegation","on","selector","c","isReady","off","ajaxFormUnbind","els2","formId","els","makeArray","navigator","userAgent","concat","map","j","v","jmax","fieldValue","constructor","required","$input","input","formSerialize","fieldSerialize","successful","tag","tagName","checked","selectedIndex","index","ops","one","op","selected","attributes","text","clearFields","clearInputs","re","replaceWith","clone","defaultChecked","defaultValue","select","parents","multiple","defaultSelected","find","forEl","list","unshift","reset","nodeType","enable","$sel","parent"],"mappings":"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","file":"jquery.form.min.js"}
\ No newline at end of file
diff --git a/core/lib/Drupal.php b/core/lib/Drupal.php
index e0b08670b7..61982c3885 100644
--- a/core/lib/Drupal.php
+++ b/core/lib/Drupal.php
@@ -320,20 +320,10 @@ public static function cache($bin = 'default') {
    * One common usecase is to provide a class which contains the actual code
    * of a hook implementation, without having to create a service.
    *
-   * @param string $class
-   *   (optional) A class name to instantiate.
-   *
-   * @return \Drupal\Core\DependencyInjection\ClassResolverInterface|object
-   *   The class resolver or if $class is provided, a class instance with a
-   *   given class definition.
-   *
-   * @throws \InvalidArgumentException
-   *   If $class does not exist.
+   * @return \Drupal\Core\DependencyInjection\ClassResolverInterface
+   *   The class resolver.
    */
-  public static function classResolver($class = NULL) {
-    if ($class) {
-      return static::getContainer()->get('class_resolver')->getInstanceFromDefinition($class);
-    }
+  public static function classResolver() {
     return static::getContainer()->get('class_resolver');
   }
 
diff --git a/core/lib/Drupal/Core/Access/AccessResult.php b/core/lib/Drupal/Core/Access/AccessResult.php
index b0590d0a11..0070e08932 100644
--- a/core/lib/Drupal/Core/Access/AccessResult.php
+++ b/core/lib/Drupal/Core/Access/AccessResult.php
@@ -336,10 +336,10 @@ public function orIf(AccessResultInterface $other) {
         $merge_other = TRUE;
       }
 
-      if ($this->isForbidden() && $this instanceof AccessResultReasonInterface && !is_null($this->getReason())) {
+      if ($this->isForbidden() && $this instanceof AccessResultReasonInterface) {
         $result->setReason($this->getReason());
       }
-      elseif ($other->isForbidden() && $other instanceof AccessResultReasonInterface && !is_null($other->getReason())) {
+      elseif ($other->isForbidden() && $other instanceof AccessResultReasonInterface) {
         $result->setReason($other->getReason());
       }
     }
@@ -353,13 +353,14 @@ public function orIf(AccessResultInterface $other) {
       $result = static::neutral();
       if (!$this->isNeutral() || ($this->getCacheMaxAge() === 0 && $other->isNeutral()) || ($this->getCacheMaxAge() !== 0 && $other instanceof CacheableDependencyInterface && $other->getCacheMaxAge() !== 0)) {
         $merge_other = TRUE;
+        if ($other instanceof AccessResultReasonInterface) {
+          $result->setReason($other->getReason());
+        }
       }
-
-      if ($this instanceof AccessResultReasonInterface && !is_null($this->getReason())) {
-        $result->setReason($this->getReason());
-      }
-      elseif ($other instanceof AccessResultReasonInterface && !is_null($other->getReason())) {
-        $result->setReason($other->getReason());
+      else {
+        if ($this instanceof AccessResultReasonInterface) {
+          $result->setReason($this->getReason());
+        }
       }
     }
     $result->inheritCacheability($this);
diff --git a/core/lib/Drupal/Core/Config/Entity/DraggableListBuilder.php b/core/lib/Drupal/Core/Config/Entity/DraggableListBuilder.php
index d70aee86af..f6bf463b16 100644
--- a/core/lib/Drupal/Core/Config/Entity/DraggableListBuilder.php
+++ b/core/lib/Drupal/Core/Config/Entity/DraggableListBuilder.php
@@ -107,7 +107,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     $form[$this->entitiesKey] = [
       '#type' => 'table',
       '#header' => $this->buildHeader(),
-      '#empty' => t('There are no @label yet.', ['@label' => $this->entityType->getPluralLabel()]),
+      '#empty' => t('There is no @label yet.', ['@label' => $this->entityType->getLabel()]),
       '#tabledrag' => [
         [
           'action' => 'order',
diff --git a/core/lib/Drupal/Core/Entity/EntityListBuilder.php b/core/lib/Drupal/Core/Entity/EntityListBuilder.php
index 91f4d21297..7191fae8d4 100644
--- a/core/lib/Drupal/Core/Entity/EntityListBuilder.php
+++ b/core/lib/Drupal/Core/Entity/EntityListBuilder.php
@@ -223,7 +223,7 @@ public function render() {
       '#header' => $this->buildHeader(),
       '#title' => $this->getTitle(),
       '#rows' => [],
-      '#empty' => $this->t('There are no @label yet.', ['@label' => $this->entityType->getPluralLabel()]),
+      '#empty' => $this->t('There is no @label yet.', ['@label' => $this->entityType->getLabel()]),
       '#cache' => [
         'contexts' => $this->entityType->getListCacheContexts(),
         'tags' => $this->entityType->getListCacheTags(),
diff --git a/core/lib/Drupal/Core/Entity/Sql/DefaultTableMapping.php b/core/lib/Drupal/Core/Entity/Sql/DefaultTableMapping.php
index 14374a5e3f..4b1e313f8c 100644
--- a/core/lib/Drupal/Core/Entity/Sql/DefaultTableMapping.php
+++ b/core/lib/Drupal/Core/Entity/Sql/DefaultTableMapping.php
@@ -269,7 +269,7 @@ public function setExtraColumns($table_name, array $column_names) {
    *   The field storage definition.
    *
    * @return bool
-   *   TRUE if the field can be stored in a shared table, FALSE otherwise.
+   *   TRUE if the field can be stored in a dedicated table, FALSE otherwise.
    */
   public function allowsSharedTableStorage(FieldStorageDefinitionInterface $storage_definition) {
     return !$storage_definition->hasCustomStorage() && $storage_definition->isBaseField() && !$storage_definition->isMultiple() && !$storage_definition->isDeleted();
@@ -282,7 +282,7 @@ public function allowsSharedTableStorage(FieldStorageDefinitionInterface $storag
    *   The field storage definition.
    *
    * @return bool
-   *   TRUE if the field has to be stored in a dedicated table, FALSE otherwise.
+   *   TRUE if the field can be stored in a dedicated table, FALSE otherwise.
    */
   public function requiresDedicatedTableStorage(FieldStorageDefinitionInterface $storage_definition) {
     return !$storage_definition->hasCustomStorage() && !$this->allowsSharedTableStorage($storage_definition);
diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/EntityReferenceEntityFormatter.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/EntityReferenceEntityFormatter.php
index 9333d7e227..a40b56adb3 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/EntityReferenceEntityFormatter.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/EntityReferenceEntityFormatter.php
@@ -47,7 +47,7 @@ class EntityReferenceEntityFormatter extends EntityReferenceFormatterBase implem
   protected $entityTypeManager;
 
   /**
-   * The entity display repository.
+   * The entity type manager.
    *
    * @var \Drupal\Core\Entity\EntityDisplayRepositoryInterface
    */
diff --git a/core/lib/Drupal/Core/Menu/menu.api.php b/core/lib/Drupal/Core/Menu/menu.api.php
index 5cfacec4c2..f932cf9bc4 100644
--- a/core/lib/Drupal/Core/Menu/menu.api.php
+++ b/core/lib/Drupal/Core/Menu/menu.api.php
@@ -302,12 +302,10 @@ function hook_menu_links_discovered_alter(&$links) {
  *   as described above.
  * @param string $route_name
  *   The route name of the page.
- * @param \Drupal\Core\Cache\RefinableCacheableDependencyInterface $cacheability
- *   The cacheability metadata for the current route's local tasks.
  *
  * @ingroup menu
  */
-function hook_menu_local_tasks_alter(&$data, $route_name, \Drupal\Core\Cache\RefinableCacheableDependencyInterface &$cacheability) {
+function hook_menu_local_tasks_alter(&$data, $route_name) {
 
   // Add a tab linking to node/add to all pages.
   $data['tabs'][0]['node.add_page'] = [
@@ -322,8 +320,6 @@ function hook_menu_local_tasks_alter(&$data, $route_name, \Drupal\Core\Cache\Ref
           ],
       ],
   ];
-  // The tab we're adding is dependent on a user's access to add content.
-  $cacheability->addCacheTags(['user.permissions']);
 }
 
 /**
diff --git a/core/modules/action/src/Plugin/Action/EmailAction.php b/core/modules/action/src/Plugin/Action/EmailAction.php
index 1780f3b689..0f469ec6bf 100644
--- a/core/modules/action/src/Plugin/Action/EmailAction.php
+++ b/core/modules/action/src/Plugin/Action/EmailAction.php
@@ -139,11 +139,12 @@ public function execute($entity = NULL) {
     }
     $params = ['context' => $this->configuration];
 
-    $message = $this->mailManager->mail('system', 'action_send_email', $recipient, $langcode, $params);
-    // Error logging is handled by \Drupal\Core\Mail\MailManager::mail().
-    if ($message['result']) {
+    if ($this->mailManager->mail('system', 'action_send_email', $recipient, $langcode, $params)) {
       $this->logger->notice('Sent email to %recipient', ['%recipient' => $recipient]);
     }
+    else {
+      $this->logger->error('Unable to send email to %recipient', ['%recipient' => $recipient]);
+    }
   }
 
   /**
diff --git a/core/modules/action/tests/src/Functional/ActionListTest.php b/core/modules/action/tests/src/Functional/ActionListTest.php
index fc67986e77..309160f4be 100644
--- a/core/modules/action/tests/src/Functional/ActionListTest.php
+++ b/core/modules/action/tests/src/Functional/ActionListTest.php
@@ -31,7 +31,7 @@ public function testEmptyActionList() {
     $actions  = $storage->loadMultiple();
     $storage->delete($actions);
     $this->drupalGet('/admin/config/system/actions');
-    $this->assertRaw('There are no actions yet.');
+    $this->assertRaw('There is no Action yet.');
   }
 
 }
diff --git a/core/modules/action/tests/src/Kernel/Plugin/Action/EmailActionTest.php b/core/modules/action/tests/src/Kernel/Plugin/Action/EmailActionTest.php
deleted file mode 100644
index 925fb3fcd0..0000000000
--- a/core/modules/action/tests/src/Kernel/Plugin/Action/EmailActionTest.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-
-namespace Drupal\Tests\action\Kernel\Plugin\Action;
-
-use Drupal\Core\Test\AssertMailTrait;
-use Drupal\KernelTests\KernelTestBase;
-
-/**
- * Tests for the EmailAction plugin.
- *
- * @group action
- */
-class EmailActionTest extends KernelTestBase {
-  use AssertMailTrait;
-
-  /**
-   * {@inheritdoc}
-   */
-  public static $modules = ['system', 'user', 'action', 'dblog'];
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    parent::setUp();
-    $this->installEntitySchema('user');
-    $this->installSchema('dblog', ['watchdog']);
-  }
-
-  /**
-   * Test the email action plugin.
-   */
-  public function testEmailAction() {
-    /** @var \Drupal\Core\Action\ActionManager $plugin_manager */
-    $plugin_manager = $this->container->get('plugin.manager.action');
-    $configuration = [
-      'recipient' => 'test@example.com',
-      'subject' => 'Test subject',
-      'message' => 'Test message'
-    ];
-    $plugin_manager
-      ->createInstance('action_send_email_action', $configuration)
-      ->execute();
-
-    $mails = $this->getMails();
-    $this->assertCount(1, $this->getMails());
-    $this->assertEquals('test@example.com', $mails[0]['to']);
-    $this->assertEquals('Test subject', $mails[0]['subject']);
-    $this->assertEquals("Test message\n", $mails[0]['body']);
-
-    // Ensure that the email sending is logged.
-    $log = \Drupal::database()
-      ->select('watchdog', 'w')
-      ->fields('w', ['message', 'variables'])
-      ->orderBy('wid', 'DESC')
-      ->range(0, 1)
-      ->execute()
-      ->fetch();
-
-    $this->assertEquals($log->message, 'Sent email to %recipient');
-    $variables = unserialize($log->variables);
-    $this->assertEquals($variables['%recipient'], 'test@example.com');
-  }
-
-}
diff --git a/core/modules/aggregator/src/Entity/Feed.php b/core/modules/aggregator/src/Entity/Feed.php
index 1e33219945..e27450c7a2 100644
--- a/core/modules/aggregator/src/Entity/Feed.php
+++ b/core/modules/aggregator/src/Entity/Feed.php
@@ -14,13 +14,6 @@
  * @ContentEntityType(
  *   id = "aggregator_feed",
  *   label = @Translation("Aggregator feed"),
- *   label_collection = @Translation("Aggregator feeds"),
- *   label_singular = @Translation("aggregator feed"),
- *   label_plural = @Translation("aggregator feeds"),
- *   label_count = @PluralTranslation(
- *     singular = "@count aggregator feed",
- *     plural = "@count aggregator feeds",
- *   ),
  *   handlers = {
  *     "storage" = "Drupal\aggregator\FeedStorage",
  *     "storage_schema" = "Drupal\aggregator\FeedStorageSchema",
diff --git a/core/modules/aggregator/src/Entity/Item.php b/core/modules/aggregator/src/Entity/Item.php
index b637171da1..ef0c6d2451 100644
--- a/core/modules/aggregator/src/Entity/Item.php
+++ b/core/modules/aggregator/src/Entity/Item.php
@@ -16,13 +16,6 @@
  * @ContentEntityType(
  *   id = "aggregator_item",
  *   label = @Translation("Aggregator feed item"),
- *   label_collection = @Translation("Aggregator feed items"),
- *   label_singular = @Translation("aggregator feed item"),
- *   label_plural = @Translation("aggregator feed items"),
- *   label_count = @PluralTranslation(
- *     singular = "@count aggregator feed item",
- *     plural = "@count aggregator feed items",
- *   ),
  *   handlers = {
  *     "storage" = "Drupal\aggregator\ItemStorage",
  *     "storage_schema" = "Drupal\aggregator\ItemStorageSchema",
diff --git a/core/modules/block/src/Entity/Block.php b/core/modules/block/src/Entity/Block.php
index ece8de38ab..a0bbd25c88 100644
--- a/core/modules/block/src/Entity/Block.php
+++ b/core/modules/block/src/Entity/Block.php
@@ -17,13 +17,6 @@
  * @ConfigEntityType(
  *   id = "block",
  *   label = @Translation("Block"),
- *   label_collection = @Translation("Blocks"),
- *   label_singular = @Translation("block"),
- *   label_plural = @Translation("blocks"),
- *   label_count = @PluralTranslation(
- *     singular = "@count block",
- *     plural = "@count blocks",
- *   ),
  *   handlers = {
  *     "access" = "Drupal\block\BlockAccessControlHandler",
  *     "view_builder" = "Drupal\block\BlockViewBuilder",
diff --git a/core/modules/block_content/src/Entity/BlockContent.php b/core/modules/block_content/src/Entity/BlockContent.php
index 7696da091e..3c8858ff88 100644
--- a/core/modules/block_content/src/Entity/BlockContent.php
+++ b/core/modules/block_content/src/Entity/BlockContent.php
@@ -15,13 +15,6 @@
  * @ContentEntityType(
  *   id = "block_content",
  *   label = @Translation("Custom block"),
- *   label_collection = @Translation("Custom blocks"),
- *   label_singular = @Translation("custom block"),
- *   label_plural = @Translation("custom blocks"),
- *   label_count = @PluralTranslation(
- *     singular = "@count custom block",
- *     plural = "@count custom blocks",
- *   ),
  *   bundle_label = @Translation("Custom block type"),
  *   handlers = {
  *     "storage" = "Drupal\Core\Entity\Sql\SqlContentEntityStorage",
diff --git a/core/modules/block_content/src/Entity/BlockContentType.php b/core/modules/block_content/src/Entity/BlockContentType.php
index 20f9593b82..1b63edaa3b 100644
--- a/core/modules/block_content/src/Entity/BlockContentType.php
+++ b/core/modules/block_content/src/Entity/BlockContentType.php
@@ -11,13 +11,6 @@
  * @ConfigEntityType(
  *   id = "block_content_type",
  *   label = @Translation("Custom block type"),
- *   label_collection = @Translation("Custom block types"),
- *   label_singular = @Translation("custom block type"),
- *   label_plural = @Translation("custom block types"),
- *   label_count = @PluralTranslation(
- *     singular = "@count custom block type",
- *     plural = "@count custom block types",
- *   ),
  *   label_collection = @Translation("Custom block library"),
  *   handlers = {
  *     "form" = {
diff --git a/core/modules/block_content/tests/src/Functional/BlockContentListTest.php b/core/modules/block_content/tests/src/Functional/BlockContentListTest.php
index 9a26f1c407..aba60c366c 100644
--- a/core/modules/block_content/tests/src/Functional/BlockContentListTest.php
+++ b/core/modules/block_content/tests/src/Functional/BlockContentListTest.php
@@ -103,7 +103,7 @@ public function testListing() {
     $this->assertNoFieldByXpath('//td', $new_label, 'No label found for deleted custom block.');
 
     // Confirm that the empty text is displayed.
-    $this->assertText(t('There are no custom blocks yet.'));
+    $this->assertText(t('There is no Custom block yet.'));
   }
 
 }
diff --git a/core/modules/block_content/tests/src/Functional/BlockContentTranslationUITest.php b/core/modules/block_content/tests/src/Functional/BlockContentTranslationUITest.php
index c200252b81..2699fcfb69 100644
--- a/core/modules/block_content/tests/src/Functional/BlockContentTranslationUITest.php
+++ b/core/modules/block_content/tests/src/Functional/BlockContentTranslationUITest.php
@@ -5,7 +5,7 @@
 use Drupal\block_content\Entity\BlockContent;
 use Drupal\block_content\Entity\BlockContentType;
 use Drupal\Component\Utility\Unicode;
-use Drupal\Tests\content_translation\Functional\ContentTranslationUITestBase;
+use Drupal\content_translation\Tests\ContentTranslationUITestBase;
 
 /**
  * Tests the block content translation UI.
diff --git a/core/modules/config/tests/src/Functional/ConfigEntityListTest.php b/core/modules/config/tests/src/Functional/ConfigEntityListTest.php
index b92629d197..ae9be133f6 100644
--- a/core/modules/config/tests/src/Functional/ConfigEntityListTest.php
+++ b/core/modules/config/tests/src/Functional/ConfigEntityListTest.php
@@ -243,7 +243,7 @@ public function testListUI() {
     $this->assertNoFieldByXpath('//td', 'dotted.default', "No machine name found for deleted 'Default' entity.");
 
     // Confirm that the empty text is displayed.
-    $this->assertText('There are no test configuration entities yet.');
+    $this->assertText('There is no Test configuration yet.');
   }
 
   /**
diff --git a/core/modules/contact/src/Entity/ContactForm.php b/core/modules/contact/src/Entity/ContactForm.php
index 91364b0428..00e5416bc8 100644
--- a/core/modules/contact/src/Entity/ContactForm.php
+++ b/core/modules/contact/src/Entity/ContactForm.php
@@ -12,13 +12,6 @@
  * @ConfigEntityType(
  *   id = "contact_form",
  *   label = @Translation("Contact form"),
- *   label_collection = @Translation("Contact forms"),
- *   label_singular = @Translation("contact form"),
- *   label_plural = @Translation("contact forms"),
- *   label_count = @PluralTranslation(
- *     singular = "@count contact form",
- *     plural = "@count contact forms",
- *   ),
  *   handlers = {
  *     "access" = "Drupal\contact\ContactFormAccessControlHandler",
  *     "list_builder" = "Drupal\contact\ContactFormListBuilder",
diff --git a/core/modules/contact/src/Entity/Message.php b/core/modules/contact/src/Entity/Message.php
index f41d9f106f..b1086602d8 100644
--- a/core/modules/contact/src/Entity/Message.php
+++ b/core/modules/contact/src/Entity/Message.php
@@ -13,13 +13,6 @@
  * @ContentEntityType(
  *   id = "contact_message",
  *   label = @Translation("Contact message"),
- *   label_collection = @Translation("Contact messages"),
- *   label_singular = @Translation("contact message"),
- *   label_plural = @Translation("contact messages"),
- *   label_count = @PluralTranslation(
- *     singular = "@count contact message",
- *     plural = "@count contact messages",
- *   ),
  *   bundle_label = @Translation("Contact form"),
  *   handlers = {
  *     "access" = "Drupal\contact\ContactMessageAccessControlHandler",
diff --git a/core/modules/content_moderation/tests/src/Functional/ContentModerationWorkflowTypeTest.php b/core/modules/content_moderation/tests/src/Functional/ContentModerationWorkflowTypeTest.php
index 96461ac07a..195718a6fe 100644
--- a/core/modules/content_moderation/tests/src/Functional/ContentModerationWorkflowTypeTest.php
+++ b/core/modules/content_moderation/tests/src/Functional/ContentModerationWorkflowTypeTest.php
@@ -92,7 +92,7 @@ public function testNewWorkflow() {
     $session->fieldDisabled('type_settings[default_revision]');
 
     $this->drupalGet('admin/config/workflow/workflows/manage/test/type/node');
-    $session->pageTextContains('Select the content types for the Test workflow');
+    $session->pageTextContains('Select the content type entities for the Test workflow');
     foreach ($types as $type) {
       $session->pageTextContains($type->label());
     }
diff --git a/core/modules/content_translation/migrations/d6_taxonomy_term_localized_translation.yml b/core/modules/content_translation/migrations/d6_taxonomy_term_localized_translation.yml
new file mode 100644
index 0000000000..a26b3bcd0f
--- /dev/null
+++ b/core/modules/content_translation/migrations/d6_taxonomy_term_localized_translation.yml
@@ -0,0 +1,43 @@
+id: d6_taxonomy_term_localized_translation
+label: Taxonomy vocabularies
+migration_tags:
+  - Drupal 6
+  - Configuration
+source:
+  plugin: d6_term_localized_translation
+  translations: true
+process:
+  # If you are using this file to build a custom migration consider removing
+  # the tid field to allow incremental migrations.
+  tid: tid
+  langcode: language
+  vid:
+    plugin: migration
+    migration: d6_taxonomy_vocabulary
+    source: vid
+  name:
+    -
+      plugin: callback
+      source:
+        - name_translated
+        - name
+      callable: array_filter
+    -
+      plugin: callback
+      callable: current
+  description:
+    -
+      plugin: callback
+      source:
+        - description_translated
+        - description
+      callable: array_filter
+    -
+      plugin: callback
+      callable: current
+destination:
+  plugin: entity:taxonomy_term
+  translations: true
+migration_dependencies:
+  required:
+    - d6_taxonomy_term
diff --git a/core/modules/content_translation/src/Plugin/migrate/source/d6/TermLocalizedTranslation.php b/core/modules/content_translation/src/Plugin/migrate/source/d6/TermLocalizedTranslation.php
new file mode 100644
index 0000000000..ff7563aae3
--- /dev/null
+++ b/core/modules/content_translation/src/Plugin/migrate/source/d6/TermLocalizedTranslation.php
@@ -0,0 +1,93 @@
+<?php
+
+namespace Drupal\content_translation\Plugin\migrate\source\d6;
+
+use Drupal\migrate\Row;
+use Drupal\taxonomy\Plugin\migrate\source\d6\Term;
+
+/**
+ * Gets i18n strings profile field source from database.
+ *
+ * @MigrateSource(
+ *   id = "d6_term_localized_translation",
+ *   source_module = "i18ntaxonomy"
+ * )
+ */
+class TermLocalizedTranslation extends Term {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function query() {
+    // Ideally, the query would return rows for each language for each menu link
+    // with the translations for both the title and description or just the
+    // title translation or just the description translation. That query quickly
+    // became complex and would be difficult to maintain.
+    // Therefore, build a query based on i18nstrings table where each row has
+    // the translation for only one property, either title or description. The
+    // method prepareRow() is then used to obtain the translation for the other
+    // property.
+    $query = parent::query();
+    $query->addField('td', 'language', 'td.language');
+
+    // Add in the property, which is either name or description.
+    $query->leftJoin('i18n_strings', 'i18n', 'td.tid = i18n.objectid');
+    $query->isNotNull('i18n.lid');
+    $query->addField('i18n', 'lid');
+    $query->addField('i18n', 'property');
+
+    // Add in the translation for the property.
+    $query->innerJoin('locales_target', 'lt', 'i18n.lid = lt.lid');
+    $query->addField('lt', 'language');
+    $query->addField('lt', 'translation');
+    return $query;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function prepareRow(Row $row) {
+    parent::prepareRow($row);
+    $language = $row->getSourceProperty('language');
+    $tid = $row->getSourceProperty('tid');
+
+    // Save the translation for this property.
+    $property = $row->getSourceProperty('property');
+    $row->setSourceProperty($property . '_translated', $row->getSourceProperty('translation'));
+
+    // Get the translation, if one exists, for the property not already in the
+    // row.
+    $other_property = ($property == 'name') ? 'description' : 'name';
+    $query = $this->select('i18n_strings', 'i18n')
+      ->fields('i18n', ['lid'])
+      ->condition('i18n.property', $other_property)
+      ->condition('i18n.objectid', $tid);
+    $query->leftJoin('locales_target', 'lt', 'i18n.lid = lt.lid');
+    $query->condition('lt.language', $language);
+    $query->addField('lt', 'translation');
+    $results = $query->execute()->fetchAssoc();
+    $row->setSourceProperty($other_property . '_translated', $results['translation']);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function fields() {
+    $fields = [
+      'language' => $this->t('Language for this menu.'),
+      'name_translated' => $this->t('Term nametranslation.'),
+      'description_translated' => $this->t('Term description translation.'),
+    ];
+    return parent::fields() + $fields;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getIds() {
+    $ids['language']['type'] = 'string';
+    $ids['language']['alias'] = 'lt';
+    return parent::getIds() + $ids;
+  }
+
+}
diff --git a/core/modules/content_translation/tests/src/Kernel/Migrate/d6/MigrateTermLocalizedTranslationTest.php b/core/modules/content_translation/tests/src/Kernel/Migrate/d6/MigrateTermLocalizedTranslationTest.php
new file mode 100644
index 0000000000..d57ab102fb
--- /dev/null
+++ b/core/modules/content_translation/tests/src/Kernel/Migrate/d6/MigrateTermLocalizedTranslationTest.php
@@ -0,0 +1,141 @@
+<?php
+
+namespace modules\content_translation\tests\src\Kernel\Migrate\d6;
+
+use Drupal\taxonomy\Entity\Term;
+use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
+use Drupal\taxonomy\TermInterface;
+
+/**
+ * Test migration of translated localized taxonomy terms.
+ *
+ * @group migrate_drupal_6
+ */
+class MigrateTermLocalizedTranslationTest extends MigrateDrupal6TestBase  {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static $modules = [
+    'content_translation',
+    'language',
+    'menu_ui',
+    'node',
+    'taxonomy',
+  ];
+
+  /**
+   * The cached taxonomy tree items, keyed by vid and tid.
+   *
+   * @var array
+   */
+  protected $treeData = [];
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+    $this->installEntitySchema('taxonomy_term');
+    $this->installConfig(static::$modules);
+    $this->executeMigrations([
+      'language',
+      'd6_node_type',
+      'd6_field',
+      'd6_taxonomy_vocabulary',
+      'd6_field_instance',
+      'd6_taxonomy_term',
+      'd6_taxonomy_term_localized_translation',
+    ]);
+  }
+
+  /**
+   * Validate a migrated term contains the expected values.
+   *
+   * @param int $id
+   *   Entity ID to load and check.
+   * @param string $expected_language
+   *   The language code for this term.
+   * @param string $expected_label
+   *   The label the migrated entity should have.
+   * @param string $expected_vid
+   *   The parent vocabulary the migrated entity should have.
+   * @param string $expected_description
+   *   The description the migrated entity should have.
+   * @param string $expected_format
+   *   The format the migrated entity should have.
+   * @param int $expected_weight
+   *   The weight the migrated entity should have.
+   * @param array $expected_parents
+   *   The parent terms the migrated entity should have.
+   * @param int $expected_field_integer_value
+   *   The value the migrated entity field should have.
+   * @param int $expected_term_reference_tid
+   *   The term reference ID the migrated entity field should have.
+   */
+  protected function assertEntity($id, $expected_language, $expected_label, $expected_vid, $expected_description = '', $expected_format = NULL, $expected_weight = 0, array $expected_parents = [], $expected_field_integer_value = NULL, $expected_term_reference_tid = NULL) {
+    /** @var \Drupal\taxonomy\TermInterface $entity */
+    $entity = Term::load($id);
+    $this->assertInstanceOf(TermInterface::class, $entity);
+    $this->assertSame($expected_language, $entity->language()->getId());
+    $this->assertSame($expected_label, $entity->label());
+    $this->assertSame($expected_vid, $entity->getVocabularyId());
+    $this->assertSame($expected_vid, $entity->bundle());
+    $this->assertSame($expected_description, $entity->getDescription());
+    $this->assertSame($expected_format, $entity->getFormat());
+    $this->assertSame($expected_weight, $entity->getWeight());
+    $this->assertHierarchy($expected_vid, $id, $expected_parents);
+  }
+
+  /**
+   * Assert that a term is present in the tree storage, with the right parents.
+   *
+   * @param string $vid
+   *   Vocabulary ID.
+   * @param int $tid
+   *   ID of the term to check.
+   * @param array $parent_ids
+   *   The expected parent term IDs.
+   */
+  protected function assertHierarchy($vid, $tid, array $parent_ids) {
+    if (!isset($this->treeData[$vid])) {
+      $tree = \Drupal::entityTypeManager()->getStorage('taxonomy_term')->loadTree($vid);
+      $this->treeData[$vid] = [];
+      foreach ($tree as $item) {
+        $this->treeData[$vid][$item->tid] = $item;
+      }
+    }
+
+    $this->assertArrayHasKey($tid, $this->treeData[$vid], "Term $tid exists in taxonomy tree");
+    $term = $this->treeData[$vid][$tid];
+    $this->assertEquals($parent_ids, array_filter($term->parents), "Term $tid has correct parents in taxonomy tree");
+  }
+
+  /**
+   * Tests the Drupal 6 i18n taxonomy term to Drupal 8 migration.
+   */
+  public function testTranslatedLocalizedTaxonomyTerms() {
+    $this->assertEntity(14, 'en', 'Talos IV', 'vocabulary_name_much_longer_than', 'The home of Captain Christopher Pike.' , NULL, '0', []);
+    $this->assertEntity(15, 'en', 'Vulcan', 'vocabulary_name_much_longer_than', NULL, NULL, '0', []);
+
+    /** @var \Drupal\taxonomy\TermInterface $entity */
+    $entity = Term::load(14);
+    $this->assertTrue($entity->hasTranslation('fr'));
+    $translation = $entity->getTranslation('fr');
+    $this->assertSame('fr - Talos IV', $translation->label());
+    $this->assertSame('fr - The home of Captain Christopher Pike.', $translation->getDescription());
+
+    $this->assertTrue($entity->hasTranslation('zu'));
+    $translation = $entity->getTranslation('zu');
+    $this->assertSame('Talos IV', $translation->label());
+    $this->assertSame('zu - The home of Captain Christopher Pike.', $translation->getDescription());
+
+    $entity = Term::load(15);
+    $this->assertFalse($entity->hasTranslation('fr'));
+    $this->assertTrue($entity->hasTranslation('zu'));
+    $translation = $entity->getTranslation('zu');
+    $this->assertSame('zu - Vulcan', $translation->label());
+    $this->assertSame('', $translation->getDescription());
+  }
+
+}
diff --git a/core/modules/content_translation/tests/src/Kernel/Plugin/migrate/source/d6/TermLocalizedTranslationTest.php b/core/modules/content_translation/tests/src/Kernel/Plugin/migrate/source/d6/TermLocalizedTranslationTest.php
new file mode 100644
index 0000000000..48b040877e
--- /dev/null
+++ b/core/modules/content_translation/tests/src/Kernel/Plugin/migrate/source/d6/TermLocalizedTranslationTest.php
@@ -0,0 +1,183 @@
+<?php
+
+namespace Drupal\Tests\content_translation\Kernel\Plugin\migrate\source\d6;
+
+use Drupal\Tests\migrate\Kernel\MigrateSqlSourceTestBase;
+
+/**
+ * Tests D6 i18n term localized source plugin.
+ *
+ * @covers \Drupal\content_translation\Plugin\migrate\source\d6\TermLocalizedTranslation
+ * @group migrate_drupal_6
+ */
+class TermLocalizedTranslationTest extends MigrateSqlSourceTestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static $modules = [
+    'content_translation',
+    'migrate_drupal',
+    'taxonomy',
+  ];
+
+  /**
+   * {@inheritdoc}
+   */
+  public function providerSource() {
+    $tests = [];
+
+    // The source data.
+    $tests[0]['source_data']['term_data'] = [
+      [
+        'tid' => 1,
+        'vid' => 5,
+        'name' => 'name value 1',
+        'description' => 'description value 1',
+        'weight' => 0,
+        'language' => NULL,
+      ],
+      [
+        'tid' => 2,
+        'vid' => 6,
+        'name' => 'name value 2',
+        'description' => 'description value 2',
+        'weight' => 0,
+        'language' => NULL,
+      ],
+      [
+        'tid' => 3,
+        'vid' => 6,
+        'name' => 'name value 3',
+        'description' => 'description value 3',
+        'weight' => 0,
+        'language' => NULL,
+      ],
+      [
+        'tid' => 4,
+        'vid' => 5,
+        'name' => 'name value 4',
+        'description' => 'description value 4',
+        'weight' => 1,
+        'language' => NULL,
+      ],
+    ];
+    $tests[0]['source_data']['term_hierarchy'] = [
+      [
+        'tid' => 1,
+        'parent' => 0,
+      ],
+      [
+        'tid' => 2,
+        'parent' => 0,
+      ],
+      [
+        'tid' => 3,
+        'parent' => 0,
+      ],
+      [
+        'tid' => 4,
+        'parent' => 1,
+      ],
+    ];
+    $tests[0]['source_data']['i18n_strings'] = [
+      [
+        'lid' => 6,
+        'objectid' => 1,
+        'type' => 'term',
+        'property' => 'name',
+        'objectindex' => '1',
+        'format' => 0,
+      ],
+      [
+        'lid' => 7,
+        'objectid' => 1,
+        'type' => 'term',
+        'property' => 'description',
+        'objectindex' => '1',
+        'format' => 0,
+      ],
+      [
+        'lid' => 8,
+        'objectid' => 3,
+        'type' => 'term',
+        'property' => 'name',
+        'objectindex' => '3',
+        'format' => 0,
+      ],
+    ];
+    $tests[0]['source_data']['locales_target'] = [
+      [
+        'lid' => 6,
+        'language' => 'fr',
+        'translation' => 'fr - name value 1 translation',
+        'plid' => 0,
+        'plural' => 0,
+        'i18n_status' => 0,
+      ],
+      [
+        'lid' => 7,
+        'language' => 'fr',
+        'translation' => 'fr - description value 1 translation',
+        'plid' => 0,
+        'plural' => 0,
+        'i18n_status' => 0,
+      ],
+      [
+        'lid' => 8,
+        'language' => 'zu',
+        'translation' => 'zu - description value 2 translation',
+        'plid' => 0,
+        'plural' => 0,
+        'i18n_status' => 0,
+      ],
+    ];
+
+    // The expected results.
+    $tests[0]['expected_data'] = [
+      [
+        'tid' => 1,
+        'vid' => 5,
+        'name' => 'name value 1',
+        'description' => 'description value 1',
+        'weight' => 0,
+        'parent' => [0],
+        'property' => 'name',
+        'language' => 'fr',
+        'name_translated' => 'fr - name value 1 translation',
+        'description_translated' => 'fr - description value 1 translation',
+      ],
+      [
+        'tid' => 1,
+        'vid' => 5,
+        'name' => 'name value 1',
+        'description' => 'description value 1',
+        'weight' => 0,
+        'parent' => [0],
+        'property' => 'description',
+        'language' => 'fr',
+        'name_translated' => 'fr - name value 1 translation',
+        'description_translated' => 'fr - description value 1 translation',
+      ],
+      [
+        'tid' => 3,
+        'vid' => 6,
+        'name' => 'name value 3',
+        'description' => 'description value 3',
+        'weight' => 0,
+        'parent' => [0],
+        'property' => 'name',
+        'language' => 'zu',
+        'name_translated' => 'zu - description value 2 translation',
+        'description_translated' => NULL,
+      ],
+    ];
+
+    $tests[0]['expected_count'] = NULL;
+    // Empty configuration will return terms for all vocabularies.
+    $tests[0]['configuration'] = [];
+
+    return $tests;
+  }
+
+}
diff --git a/core/modules/editor/src/Entity/Editor.php b/core/modules/editor/src/Entity/Editor.php
index 07c9d24aa8..1a417d77a1 100644
--- a/core/modules/editor/src/Entity/Editor.php
+++ b/core/modules/editor/src/Entity/Editor.php
@@ -11,13 +11,6 @@
  * @ConfigEntityType(
  *   id = "editor",
  *   label = @Translation("Text Editor"),
- *   label_collection = @Translation("Text Editors"),
- *   label_singular = @Translation("text editor"),
- *   label_plural = @Translation("text editors"),
- *   label_count = @PluralTranslation(
- *     singular = "@count text editor",
- *     plural = "@count text editors",
- *   ),
  *   handlers = {
  *     "access" = "Drupal\editor\EditorAccessControlHandler",
  *   },
diff --git a/core/modules/field/migrations/d6_field_instance_widget_settings.yml b/core/modules/field/migrations/d6_field_instance_widget_settings.yml
index 4c2f4fd8e3..abdd37167b 100644
--- a/core/modules/field/migrations/d6_field_instance_widget_settings.yml
+++ b/core/modules/field/migrations/d6_field_instance_widget_settings.yml
@@ -57,8 +57,6 @@ process:
         optionwidgets_buttons: options_buttons
         optionwidgets_select: options_select
         nodereference_select: options_select
-        nodereference_buttons: options_buttons
-        nodereference_autocomplete: entity_reference_autocomplete_tags
         userreference_select: options_select
   'options/settings':
     -
diff --git a/core/modules/field/src/Entity/FieldConfig.php b/core/modules/field/src/Entity/FieldConfig.php
index 69be43c2b0..af17eee5b0 100644
--- a/core/modules/field/src/Entity/FieldConfig.php
+++ b/core/modules/field/src/Entity/FieldConfig.php
@@ -15,13 +15,6 @@
  * @ConfigEntityType(
  *   id = "field_config",
  *   label = @Translation("Field"),
- *   label_collection = @Translation("Fields"),
- *   label_singular = @Translation("field"),
- *   label_plural = @Translation("fields"),
- *   label_count = @PluralTranslation(
- *     singular = "@count field",
- *     plural = "@count fields",
- *   ),
  *   handlers = {
  *     "access" = "Drupal\field\FieldConfigAccessControlHandler",
  *     "storage" = "Drupal\field\FieldConfigStorage"
diff --git a/core/modules/field/src/Entity/FieldStorageConfig.php b/core/modules/field/src/Entity/FieldStorageConfig.php
index 4e8ad91380..6ae439ec5a 100644
--- a/core/modules/field/src/Entity/FieldStorageConfig.php
+++ b/core/modules/field/src/Entity/FieldStorageConfig.php
@@ -18,13 +18,6 @@
  * @ConfigEntityType(
  *   id = "field_storage_config",
  *   label = @Translation("Field storage"),
- *   label_collection = @Translation("Field storages"),
- *   label_singular = @Translation("field storage"),
- *   label_plural = @Translation("field storages"),
- *   label_count = @PluralTranslation(
- *     singular = "@count field storage",
- *     plural = "@count field storages",
- *   ),
  *   handlers = {
  *     "access" = "Drupal\field\FieldStorageConfigAccessControlHandler",
  *     "storage" = "Drupal\field\FieldStorageConfigStorage"
diff --git a/core/modules/field/tests/src/Kernel/Migrate/d6/MigrateFieldWidgetSettingsTest.php b/core/modules/field/tests/src/Kernel/Migrate/d6/MigrateFieldWidgetSettingsTest.php
index c6f47fb1bd..6e8e040d94 100644
--- a/core/modules/field/tests/src/Kernel/Migrate/d6/MigrateFieldWidgetSettingsTest.php
+++ b/core/modules/field/tests/src/Kernel/Migrate/d6/MigrateFieldWidgetSettingsTest.php
@@ -108,16 +108,6 @@ public function testWidgetSettings() {
     $this->assertSame('options_select', $component['type']);
 
     $component = entity_get_form_display('node', 'employee', 'default')
-      ->getComponent('field_company_2');
-    $this->assertInternalType('array', $component);
-    $this->assertSame('options_buttons', $component['type']);
-
-    $component = entity_get_form_display('node', 'employee', 'default')
-      ->getComponent('field_company_3');
-    $this->assertInternalType('array', $component);
-    $this->assertSame('entity_reference_autocomplete_tags', $component['type']);
-
-    $component = entity_get_form_display('node', 'employee', 'default')
       ->getComponent('field_commander');
     $this->assertInternalType('array', $component);
     $this->assertSame('options_select', $component['type']);
diff --git a/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldFormatterSettingsTest.php b/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldFormatterSettingsTest.php
index 6773ca8d28..576e86a795 100644
--- a/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldFormatterSettingsTest.php
+++ b/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldFormatterSettingsTest.php
@@ -283,7 +283,6 @@ public function testMigration() {
     $this->assertComponent('node.test_content_type.default', 'field_link', 'link', 'above', 9);
     $this->assertComponent('node.test_content_type.default', 'field_text_list', 'list_default', 'above', 10);
     $this->assertComponent('node.test_content_type.default', 'field_integer_list', 'list_default', 'above', 11);
-    $this->assertComponent('node.test_content_type.default', 'field_float_list', 'list_default', 'above', 19);
     $this->assertComponent('node.test_content_type.default', 'field_long_text', 'text_default', 'above', 12);
     $this->assertComponent('node.test_content_type.default', 'field_node_entityreference', 'entity_reference_label', 'above', 15);
     $this->assertComponent('node.test_content_type.default', 'field_user_entityreference', 'entity_reference_label', 'above', 16);
diff --git a/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldInstanceTest.php b/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldInstanceTest.php
index 77953f71da..24d4116f66 100644
--- a/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldInstanceTest.php
+++ b/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldInstanceTest.php
@@ -122,7 +122,6 @@ public function testFieldInstances() {
     $this->assertEntity('node.test_content_type.field_link', 'Link', 'link', FALSE, FALSE);
     $this->assertEntity('node.test_content_type.field_text_list', 'Text List', 'list_string', FALSE, FALSE);
     $this->assertEntity('node.test_content_type.field_integer_list', 'Integer List', 'list_integer', FALSE, FALSE);
-    $this->assertEntity('node.test_content_type.field_float_list', 'Float List', 'list_float', FALSE, FALSE);
     $this->assertEntity('node.test_content_type.field_long_text', 'Long text', 'text_with_summary', FALSE, FALSE);
     $this->assertEntity('node.test_content_type.field_term_reference', 'Term Reference', 'entity_reference', FALSE, FALSE);
     $this->assertEntity('node.test_content_type.field_text', 'Text', 'string', FALSE, FALSE);
diff --git a/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldInstanceWidgetSettingsTest.php b/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldInstanceWidgetSettingsTest.php
index 86e4f72510..ee4d204af3 100644
--- a/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldInstanceWidgetSettingsTest.php
+++ b/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldInstanceWidgetSettingsTest.php
@@ -141,7 +141,6 @@ public function testWidgetSettings() {
     $this->assertComponent('node.test_content_type.default', 'field_term_entityreference', 'entity_reference_autocomplete_tags', 18);
     $this->assertComponent('node.test_content_type.default', 'field_text', 'string_textfield', 15);
     $this->assertComponent('node.test_content_type.default', 'field_text_list', 'options_select', 11);
-    $this->assertComponent('node.test_content_type.default', 'field_float_list', 'options_select', 20);
 
     $this->assertEntity('user.user.default', 'user', 'user');
     $this->assertComponent('user.user.default', 'field_file', 'file_generic', 8);
diff --git a/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldTest.php b/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldTest.php
index 7be8a7c926..6531fe4d40 100644
--- a/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldTest.php
+++ b/core/modules/field/tests/src/Kernel/Migrate/d7/MigrateFieldTest.php
@@ -93,7 +93,6 @@ public function testFields() {
     $this->assertEntity('node.taxonomy_forums', 'entity_reference', TRUE, 1);
     $this->assertEntity('node.field_text', 'string', TRUE, 1);
     $this->assertEntity('node.field_text_list', 'list_string', TRUE, 3);
-    $this->assertEntity('node.field_float_list', 'list_float', TRUE, 1);
     $this->assertEntity('node.field_boolean', 'boolean', TRUE, 1);
     $this->assertEntity('node.field_email', 'email', TRUE, -1);
     $this->assertEntity('node.field_phone', 'telephone', TRUE, 1);
diff --git a/core/modules/field_layout/field_layout.module b/core/modules/field_layout/field_layout.module
index 713e7e4aac..5a5fa11a49 100644
--- a/core/modules/field_layout/field_layout.module
+++ b/core/modules/field_layout/field_layout.module
@@ -50,7 +50,8 @@ function field_layout_entity_type_alter(array &$entity_types) {
  */
 function field_layout_entity_view_alter(array &$build, EntityInterface $entity, EntityViewDisplayInterface $display) {
   if ($display instanceof EntityDisplayWithLayoutInterface) {
-    \Drupal::classResolver(FieldLayoutBuilder::class)->buildView($build, $display);
+    \Drupal::classResolver()->getInstanceFromDefinition(FieldLayoutBuilder::class)
+      ->buildView($build, $display);
   }
 }
 
@@ -61,7 +62,8 @@ function field_layout_form_alter(&$form, FormStateInterface $form_state, $form_i
   $form_object = $form_state->getFormObject();
   if ($form_object instanceof ContentEntityFormInterface && $display = $form_object->getFormDisplay($form_state)) {
     if ($display instanceof EntityDisplayWithLayoutInterface) {
-      \Drupal::classResolver(FieldLayoutBuilder::class)->buildForm($form, $display);
+      \Drupal::classResolver()->getInstanceFromDefinition(FieldLayoutBuilder::class)
+        ->buildForm($form, $display);
     }
   }
 }
diff --git a/core/modules/field_ui/src/Form/EntityDisplayFormBase.php b/core/modules/field_ui/src/Form/EntityDisplayFormBase.php
index 04b267cd24..06eed1f9ac 100644
--- a/core/modules/field_ui/src/Form/EntityDisplayFormBase.php
+++ b/core/modules/field_ui/src/Form/EntityDisplayFormBase.php
@@ -210,7 +210,6 @@ public function form(array $form, FormStateInterface $form_state) {
         if ($enabled_displays = array_filter($this->getDisplayStatuses())) {
           $default = array_keys(array_intersect_key($display_mode_options, $enabled_displays));
         }
-        natcasesort($display_mode_options);
         $form['modes']['display_modes_custom'] = [
           '#type' => 'checkboxes',
           '#title' => $this->t('Use custom display settings for the following @display_context modes', ['@display_context' => $this->displayContext]),
diff --git a/core/modules/field_ui/tests/src/Functional/EntityDisplayModeTest.php b/core/modules/field_ui/tests/src/Functional/EntityDisplayModeTest.php
index 953684193d..78764fb32d 100644
--- a/core/modules/field_ui/tests/src/Functional/EntityDisplayModeTest.php
+++ b/core/modules/field_ui/tests/src/Functional/EntityDisplayModeTest.php
@@ -19,7 +19,7 @@ class EntityDisplayModeTest extends BrowserTestBase {
    *
    * @var string[]
    */
-  public static $modules = ['block', 'entity_test', 'field_ui', 'node'];
+  public static $modules = ['block', 'entity_test', 'field_ui'];
 
   /**
    * {@inheritdoc}
@@ -27,12 +27,6 @@ class EntityDisplayModeTest extends BrowserTestBase {
   protected function setUp() {
     parent::setUp();
 
-    // Create a node type.
-    $this->drupalCreateContentType([
-      'type' => 'article',
-      'name' => 'Article',
-    ]);
-
     $this->drupalPlaceBlock('local_actions_block');
     $this->drupalPlaceBlock('page_title_block');
   }
@@ -146,62 +140,4 @@ public function testEntityFormModeUI() {
     $this->assertRaw(t('The form mode %label has been deleted.', ['%label' => $edit['label']]));
   }
 
-  /**
-   * Tests if view modes appear in alphabetical order by visible name.
-   *
-   * The machine name should not be used for sorting.
-   *
-   * @see https://www.drupal.org/node/2858569
-   */
-  public function testAlphabeticalDisplaySettings() {
-    $this->drupalLogin($this->drupalCreateUser([
-      'access administration pages',
-      'administer content types',
-      'administer display modes',
-      'administer nodes',
-      'administer node fields',
-      'administer node display',
-      'administer node form display',
-      'view the administration theme',
-    ]));
-    $this->drupalGet('admin/structure/types/manage/article/display');
-    // Verify that the order of view modes is alphabetical by visible label.
-    // Since the default view modes all have machine names which coincide with
-    // the English labels, they should appear in alphabetical order, by default
-    // if viewing the site in English and if no changes have been made. We will
-    // verify this first.
-    $page_text = $this->getTextContent();
-    $start = strpos($page_text, 'view modes');
-    $pos = $start;
-    $list = ['Full content', 'RSS', 'Search index', 'Search result', 'Teaser'];
-    foreach ($list as $name) {
-      $new_pos = strpos($page_text, $name, $start);
-      $this->assertTrue($new_pos > $pos, 'Order of ' . $name . ' is correct on page');
-      $pos = $new_pos;
-    }
-    // Now that we have verified the original display order, we can change the
-    // label for one of the view modes. If we rename "Teaser" to "Breezer", it
-    // should appear as the first of the listed view modes:
-    // Set new values and enable test plugins.
-    $edit = [
-      'label' => 'Breezer',
-    ];
-    $this->drupalPostForm('admin/structure/display-modes/view/manage/node.teaser', $edit, 'Save');
-    $this->assertSession()->pageTextContains('Saved the Breezer view mode.');
-
-    // Re-open the display settings for the article content type and verify
-    // that changing "Teaser" to "Breezer" makes it appear before "Full
-    // content".
-    $this->drupalGet('admin/structure/types/manage/article/display');
-    $page_text = $this->getTextContent();
-    $start = strpos($page_text, 'view modes');
-    $pos = $start;
-    $list = ['Breezer', 'Full content'];
-    foreach ($list as $name) {
-      $new_pos = strpos($page_text, $name, $start);
-      $this->assertTrue($new_pos > $pos, 'Order of ' . $name . ' is correct on page');
-      $pos = $new_pos;
-    }
-  }
-
 }
diff --git a/core/modules/file/src/Entity/File.php b/core/modules/file/src/Entity/File.php
index 33f6d744cc..4060b773ee 100644
--- a/core/modules/file/src/Entity/File.php
+++ b/core/modules/file/src/Entity/File.php
@@ -18,13 +18,6 @@
  * @ContentEntityType(
  *   id = "file",
  *   label = @Translation("File"),
- *   label_collection = @Translation("Files"),
- *   label_singular = @Translation("file"),
- *   label_plural = @Translation("files"),
- *   label_count = @PluralTranslation(
- *     singular = "@count file",
- *     plural = "@count files",
- *   ),
  *   handlers = {
  *     "storage" = "Drupal\file\FileStorage",
  *     "storage_schema" = "Drupal\file\FileStorageSchema",
diff --git a/core/modules/filter/src/Entity/FilterFormat.php b/core/modules/filter/src/Entity/FilterFormat.php
index 604ce01ac2..c757512c77 100644
--- a/core/modules/filter/src/Entity/FilterFormat.php
+++ b/core/modules/filter/src/Entity/FilterFormat.php
@@ -16,13 +16,6 @@
  * @ConfigEntityType(
  *   id = "filter_format",
  *   label = @Translation("Text format"),
- *   label_collection = @Translation("Text formats"),
- *   label_singular = @Translation("text format"),
- *   label_plural = @Translation("text formats"),
- *   label_count = @PluralTranslation(
- *     singular = "@count text format",
- *     plural = "@count text formats",
- *   ),
  *   handlers = {
  *     "form" = {
  *       "add" = "Drupal\filter\FilterFormatAddForm",
diff --git a/core/modules/forum/forum.module b/core/modules/forum/forum.module
index 2833779d96..b668956746 100644
--- a/core/modules/forum/forum.module
+++ b/core/modules/forum/forum.module
@@ -522,7 +522,6 @@ function template_preprocess_forums(&$variables) {
         $table['#rows'][] = $row;
       }
 
-      $variables['topics_original'] = $variables['topics'];
       $variables['topics'] = $table;
       $variables['topics_pager'] = [
         '#type' => 'pager',
diff --git a/core/modules/forum/templates/forums.html.twig b/core/modules/forum/templates/forums.html.twig
index 640686c93e..5116c769a1 100644
--- a/core/modules/forum/templates/forums.html.twig
+++ b/core/modules/forum/templates/forums.html.twig
@@ -8,7 +8,6 @@
  * Available variables:
  * - forums: The forums to display (as processed by forum-list.html.twig).
  * - topics: The topics to display.
- * - topics_original: Original topics data before modification.
  * - topics_pager: The topics pager.
  * - forums_defined: A flag to indicate that the forums are configured.
  *
diff --git a/core/modules/image/src/Entity/ImageStyle.php b/core/modules/image/src/Entity/ImageStyle.php
index da00c7f7d2..dd261248a7 100644
--- a/core/modules/image/src/Entity/ImageStyle.php
+++ b/core/modules/image/src/Entity/ImageStyle.php
@@ -25,13 +25,6 @@
  * @ConfigEntityType(
  *   id = "image_style",
  *   label = @Translation("Image style"),
- *   label_collection = @Translation("Image styles"),
- *   label_singular = @Translation("image style"),
- *   label_plural = @Translation("image styles"),
- *   label_count = @PluralTranslation(
- *     singular = "@count image style",
- *     plural = "@count image styles",
- *   ),
  *   handlers = {
  *     "form" = {
  *       "add" = "Drupal\image\Form\ImageStyleAddForm",
diff --git a/core/modules/inline_form_errors/inline_form_errors.module b/core/modules/inline_form_errors/inline_form_errors.module
index 3bacd37b93..dcb140b7a5 100644
--- a/core/modules/inline_form_errors/inline_form_errors.module
+++ b/core/modules/inline_form_errors/inline_form_errors.module
@@ -59,7 +59,8 @@ function inline_form_errors_preprocess_datetime_wrapper(&$variables) {
  * Implements hook_element_info_alter().
  */
 function inline_form_errors_element_info_alter(array &$info) {
-  \Drupal::classResolver(RenderElementHelper::class)->alterElementInfo($info);
+  \Drupal::classResolver()->getInstanceFromDefinition(RenderElementHelper::class)
+    ->alterElementInfo($info);
 }
 
 /**
diff --git a/core/modules/language/src/Entity/ConfigurableLanguage.php b/core/modules/language/src/Entity/ConfigurableLanguage.php
index 25c588050a..4fecde7707 100644
--- a/core/modules/language/src/Entity/ConfigurableLanguage.php
+++ b/core/modules/language/src/Entity/ConfigurableLanguage.php
@@ -16,13 +16,6 @@
  * @ConfigEntityType(
  *   id = "configurable_language",
  *   label = @Translation("Language"),
- *   label_collection = @Translation("Languages"),
- *   label_singular = @Translation("language"),
- *   label_plural = @Translation("languages"),
- *   label_count = @PluralTranslation(
- *     singular = "@count language",
- *     plural = "@count languages",
- *   ),
  *   handlers = {
  *     "list_builder" = "Drupal\language\LanguageListBuilder",
  *     "access" = "Drupal\language\LanguageAccessControlHandler",
diff --git a/core/modules/language/src/Entity/ContentLanguageSettings.php b/core/modules/language/src/Entity/ContentLanguageSettings.php
index 0012e79994..87ebd21f44 100644
--- a/core/modules/language/src/Entity/ContentLanguageSettings.php
+++ b/core/modules/language/src/Entity/ContentLanguageSettings.php
@@ -14,13 +14,6 @@
  * @ConfigEntityType(
  *   id = "language_content_settings",
  *   label = @Translation("Content Language Settings"),
- *   label_collection = @Translation("Content Language Settings"),
- *   label_singular = @Translation("content language setting"),
- *   label_plural = @Translation("content languages settings"),
- *   label_count = @PluralTranslation(
- *     singular = "@count content language setting",
- *     plural = "@count content languages settings",
- *   ),
  *   admin_permission = "administer languages",
  *   config_prefix = "content_settings",
  *   entity_keys = {
diff --git a/core/modules/layout_builder/src/Plugin/SectionStorage/OverridesSectionStorage.php b/core/modules/layout_builder/src/Plugin/SectionStorage/OverridesSectionStorage.php
index db38b1203e..ef154f1b2b 100644
--- a/core/modules/layout_builder/src/Plugin/SectionStorage/OverridesSectionStorage.php
+++ b/core/modules/layout_builder/src/Plugin/SectionStorage/OverridesSectionStorage.php
@@ -187,9 +187,7 @@ protected function getEntityTypes() {
    * {@inheritdoc}
    */
   public function getDefaultSectionStorage() {
-    // @todo Expand to work for all view modes in
-    //   https://www.drupal.org/node/2907413.
-    return LayoutBuilderEntityViewDisplay::collectRenderDisplay($this->getEntity(), 'full');
+    return LayoutBuilderEntityViewDisplay::collectRenderDisplay($this->getEntity(), 'default');
   }
 
   /**
diff --git a/core/modules/layout_builder/tests/src/Functional/LayoutBuilderTest.php b/core/modules/layout_builder/tests/src/Functional/LayoutBuilderTest.php
index a78e9eeeb7..4dc9a85d0d 100644
--- a/core/modules/layout_builder/tests/src/Functional/LayoutBuilderTest.php
+++ b/core/modules/layout_builder/tests/src/Functional/LayoutBuilderTest.php
@@ -256,67 +256,4 @@ public function testPluginDependencies() {
     $assert_session->elementNotExists('css', '.block.menu--mymenu');
   }
 
-  /**
-   * Tests the interaction between full and default view modes.
-   *
-   * @see \Drupal\layout_builder\Plugin\SectionStorage\OverridesSectionStorage::getDefaultSectionStorage()
-   */
-  public function testLayoutBuilderUiFullViewMode() {
-    $assert_session = $this->assertSession();
-    $page = $this->getSession()->getPage();
-
-    $this->drupalLogin($this->drupalCreateUser([
-      'configure any layout',
-      'administer node display',
-      'administer node fields',
-    ]));
-
-    $field_ui_prefix = 'admin/structure/types/manage/bundle_with_section_field';
-    // Allow overrides for the layout.
-    $this->drupalPostForm("$field_ui_prefix/display/default", ['layout[allow_custom]' => TRUE], 'Save');
-
-    // Customize the default view mode.
-    $this->drupalGet("$field_ui_prefix/display-layout/default");
-    $this->clickLink('Add Block');
-    $this->clickLink('Powered by Drupal');
-    $page->fillField('settings[label]', 'This is the default view mode');
-    $page->checkField('settings[label_display]');
-    $page->pressButton('Add Block');
-    $assert_session->pageTextContains('This is the default view mode');
-    $this->clickLink('Save Layout');
-
-    // The default view mode is used for both the node display and layout UI.
-    $this->drupalGet('node/1');
-    $assert_session->pageTextContains('This is the default view mode');
-    $this->drupalGet('node/1/layout');
-    $assert_session->pageTextContains('This is the default view mode');
-    $this->clickLink('Cancel Layout');
-
-    // Enable the full view mode and customize it.
-    $this->drupalPostForm("$field_ui_prefix/display/default", ['display_modes_custom[full]' => TRUE], 'Save');
-    $this->drupalGet("$field_ui_prefix/display-layout/full");
-    $this->clickLink('Add Block');
-    $this->clickLink('Powered by Drupal');
-    $page->fillField('settings[label]', 'This is the full view mode');
-    $page->checkField('settings[label_display]');
-    $page->pressButton('Add Block');
-    $assert_session->pageTextContains('This is the full view mode');
-    $this->clickLink('Save Layout');
-
-    // The full view mode is now used for both the node display and layout UI.
-    $this->drupalGet('node/1');
-    $assert_session->pageTextContains('This is the full view mode');
-    $this->drupalGet('node/1/layout');
-    $assert_session->pageTextContains('This is the full view mode');
-    $this->clickLink('Cancel Layout');
-
-    // Disable the full view mode, the default should be used again.
-    $this->drupalPostForm("$field_ui_prefix/display/default", ['display_modes_custom[full]' => FALSE], 'Save');
-    $this->drupalGet('node/1');
-    $assert_session->pageTextContains('This is the default view mode');
-    $this->drupalGet('node/1/layout');
-    $assert_session->pageTextContains('This is the default view mode');
-    $this->clickLink('Cancel Layout');
-  }
-
 }
diff --git a/core/modules/menu_link_content/src/Entity/MenuLinkContent.php b/core/modules/menu_link_content/src/Entity/MenuLinkContent.php
index 49235b928d..460c0df0d4 100644
--- a/core/modules/menu_link_content/src/Entity/MenuLinkContent.php
+++ b/core/modules/menu_link_content/src/Entity/MenuLinkContent.php
@@ -19,13 +19,6 @@
  * @ContentEntityType(
  *   id = "menu_link_content",
  *   label = @Translation("Custom menu link"),
- *   label_collection = @Translation("Custom menu links"),
- *   label_singular = @Translation("custom menu link"),
- *   label_plural = @Translation("custom menu links"),
- *   label_count = @PluralTranslation(
- *     singular = "@count custom menu link",
- *     plural = "@count custom menu links",
- *   ),
  *   handlers = {
  *     "storage" = "Drupal\Core\Entity\Sql\SqlContentEntityStorage",
  *     "storage_schema" = "Drupal\menu_link_content\MenuLinkContentStorageSchema",
diff --git a/core/modules/migrate_drupal/tests/fixtures/drupal6.php b/core/modules/migrate_drupal/tests/fixtures/drupal6.php
index de20137606..487b05e961 100644
--- a/core/modules/migrate_drupal/tests/fixtures/drupal6.php
+++ b/core/modules/migrate_drupal/tests/fixtures/drupal6.php
@@ -2717,30 +2717,6 @@
   'locked' => '0',
 ))
 ->values(array(
-  'field_name' => 'field_company_2',
-  'type' => 'nodereference',
-  'global_settings' => 'a:1:{s:19:"referenceable_types";a:10:{s:7:"company";s:7:"company";s:7:"article";i:0;s:8:"employee";i:0;s:5:"forum";i:0;s:10:"test_event";i:0;s:9:"test_page";i:0;s:11:"test_planet";i:0;s:10:"test_story";i:0;s:7:"sponsor";i:0;s:5:"story";i:0;}}',
-  'required' => '0',
-  'multiple' => '0',
-  'db_storage' => '1',
-  'module' => 'nodereference',
-  'db_columns' => 'a:1:{s:3:"nid";a:4:{s:4:"type";s:3:"int";s:8:"unsigned";b:1;s:8:"not null";b:0;s:5:"index";b:1;}}',
-  'active' => '1',
-  'locked' => '0',
-))
-->values(array(
-  'field_name' => 'field_company_3',
-  'type' => 'nodereference',
-  'global_settings' => 'a:1:{s:19:"referenceable_types";a:10:{s:7:"company";s:7:"company";s:7:"article";i:0;s:8:"employee";i:0;s:5:"forum";i:0;s:10:"test_event";i:0;s:9:"test_page";i:0;s:11:"test_planet";i:0;s:10:"test_story";i:0;s:7:"sponsor";i:0;s:5:"story";i:0;}}',
-  'required' => '0',
-  'multiple' => '0',
-  'db_storage' => '1',
-  'module' => 'nodereference',
-  'db_columns' => 'a:1:{s:3:"nid";a:4:{s:4:"type";s:3:"int";s:8:"unsigned";b:1;s:8:"not null";b:0;s:5:"index";b:1;}}',
-  'active' => '1',
-  'locked' => '0',
-))
-->values(array(
   'field_name' => 'field_multivalue',
   'type' => 'number_decimal',
   'global_settings' => 'a:9:{s:6:"prefix";s:0:"";s:6:"suffix";s:0:"";s:3:"min";s:0:"";s:3:"max";s:0:"";s:14:"allowed_values";s:0:"";s:18:"allowed_values_php";s:0:"";s:9:"precision";s:2:"10";s:5:"scale";s:1:"2";s:7:"decimal";s:1:".";}',
@@ -3099,30 +3075,6 @@
   'widget_active' => '1',
 ))
 ->values(array(
-  'field_name' => 'field_company_2',
-  'type_name' => 'employee',
-  'weight' => '33',
-  'label' => 'Company 2',
-  'widget_type' => 'nodereference_buttons',
-  'widget_settings' => 'a:4:{s:18:"autocomplete_match";s:8:"contains";s:4:"size";i:60;s:13:"default_value";a:1:{i:0;a:1:{s:3:"nid";s:0:"";}}s:17:"default_value_php";N;}',
-  'display_settings' => 'a:5:{s:5:"label";a:2:{s:6:"format";s:5:"above";s:7:"exclude";i:0;}i:5;a:2:{s:6:"format";s:7:"default";s:7:"exclude";i:0;}s:6:"teaser";a:2:{s:6:"format";s:7:"default";s:7:"exclude";i:0;}s:4:"full";a:2:{s:6:"format";s:7:"default";s:7:"exclude";i:0;}i:4;a:2:{s:6:"format";s:7:"default";s:7:"exclude";i:0;}}',
-  'description' => '',
-  'widget_module' => 'nodereference',
-  'widget_active' => '1',
-))
-->values(array(
-  'field_name' => 'field_company_3',
-  'type_name' => 'employee',
-  'weight' => '34',
-  'label' => 'Company 3',
-  'widget_type' => 'nodereference_autocomplete',
-  'widget_settings' => 'a:4:{s:18:"autocomplete_match";s:8:"contains";s:4:"size";s:2:"60";s:13:"default_value";a:1:{i:0;a:2:{s:3:"nid";N;s:14:"_error_element";s:50:"default_value_widget][field_company_3][0][nid][nid";}}s:17:"default_value_php";N;}',
-  'display_settings' => 'a:5:{s:5:"label";a:2:{s:6:"format";s:5:"above";s:7:"exclude";i:0;}i:5;a:2:{s:6:"format";s:7:"default";s:7:"exclude";i:0;}s:6:"teaser";a:2:{s:6:"format";s:7:"default";s:7:"exclude";i:0;}s:4:"full";a:2:{s:6:"format";s:7:"default";s:7:"exclude";i:0;}i:4;a:2:{s:6:"format";s:7:"default";s:7:"exclude";i:0;}}',
-  'description' => '',
-  'widget_module' => 'nodereference',
-  'widget_active' => '1',
-))
-->values(array(
   'field_name' => 'field_multivalue',
   'type_name' => 'test_planet',
   'weight' => '2',
@@ -3422,18 +3374,6 @@
       'size' => 'normal',
       'unsigned' => TRUE,
     ),
-    'field_company_2_nid' => array(
-      'type' => 'int',
-      'not null' => FALSE,
-      'size' => 'normal',
-      'unsigned' => TRUE,
-    ),
-    'field_company_3_nid' => array(
-      'type' => 'int',
-      'not null' => FALSE,
-      'size' => 'normal',
-      'unsigned' => TRUE,
-    ),
   ),
   'primary key' => array(
     'vid',
@@ -3445,12 +3385,6 @@
     'field_commander_uid' => array(
       'field_commander_uid',
     ),
-    'field_company_2_nid' => array(
-      'field_company_2_nid',
-    ),
-    'field_company_3_nid' => array(
-      'field_company_3_nid',
-    ),
   ),
   'mysql_character_set' => 'utf8',
 ));
@@ -3460,15 +3394,11 @@
   'vid',
   'nid',
   'field_commander_uid',
-  'field_company_2_nid',
-  'field_company_3_nid',
 ))
 ->values(array(
   'vid' => '21',
   'nid' => '18',
   'field_commander_uid' => '8',
-  'field_company_2_nid' => '15',
-  'field_company_3_nid' => '16',
 ))
 ->execute();
 
@@ -9710,6 +9640,30 @@
   'objectindex' => '7',
   'format' => '0',
 ))
+->values(array(
+  'lid' => '1674',
+  'objectid' => '14',
+  'type' => 'term',
+  'property' => 'name',
+  'objectindex' => '14',
+  'format' => '0',
+))
+->values(array(
+  'lid' => '1675',
+  'objectid' => '15',
+  'type' => 'term',
+  'property' => 'name',
+  'objectindex' => '15',
+  'format' => '0',
+))
+->values(array(
+  'lid' => '1676',
+  'objectid' => '14',
+  'type' => 'term',
+  'property' => 'description',
+  'objectindex' => '14',
+  'format' => '0',
+))
 ->execute();
 
 $connection->schema()->createTable('i18n_variable', array(
@@ -22176,6 +22130,27 @@
   'source' => 'Forums',
   'version' => '1',
 ))
+->values(array(
+  'lid' => '1674',
+  'location' => 'term:14:name',
+  'textgroup' => 'taxonomy',
+  'source' => 'Talos IV',
+  'version' => '1',
+))
+->values(array(
+  'lid' => '1675',
+  'location' => 'term:15:name',
+  'textgroup' => 'taxonomy',
+  'source' => 'Vulcan',
+  'version' => '1',
+))
+->values(array(
+  'lid' => '1676',
+  'location' => 'term:14:description',
+  'textgroup' => 'taxonomy',
+  'source' => 'The home of Captain Christopher Pike.',
+  'version' => '1',
+))
 ->execute();
 
 $connection->schema()->createTable('locales_target', array(
@@ -27221,6 +27196,30 @@
   'i18n_status' => '0',
 ))
 ->values(array(
+  'lid' => '1672',
+  'translation' => 'fr - Type',
+  'language' => 'fr',
+  'plid' => '0',
+  'plural' => '0',
+  'i18n_status' => '0',
+))
+->values(array(
+  'lid' => '1674',
+  'translation' => 'fr - Talos IV',
+  'language' => 'fr',
+  'plid' => '0',
+  'plural' => '0',
+  'i18n_status' => '0',
+))
+->values(array(
+  'lid' => '1676',
+  'translation' => 'fr - The home of Captain Christopher Pike.',
+  'language' => 'fr',
+  'plid' => '0',
+  'plural' => '0',
+  'i18n_status' => '0',
+))
+->values(array(
   'lid' => '66',
   'translation' => 'zu - CCK - Aucune Intégration aux Vues',
   'language' => 'zu',
@@ -27316,6 +27315,30 @@
   'plural' => '0',
   'i18n_status' => '0',
 ))
+->values(array(
+  'lid' => '1672',
+  'translation' => 'zu - Type',
+  'language' => 'zu',
+  'plid' => '0',
+  'plural' => '0',
+  'i18n_status' => '0',
+))
+->values(array(
+  'lid' => '1675',
+  'translation' => 'zu - Vulcan',
+  'language' => 'zu',
+  'plid' => '0',
+  'plural' => '0',
+  'i18n_status' => '0',
+))
+->values(array(
+  'lid' => '1676',
+  'translation' => 'zu - The home of Captain Christopher Pike.',
+  'language' => 'zu',
+  'plid' => '0',
+  'plural' => '0',
+  'i18n_status' => '0',
+))
 ->execute();
 
 $connection->schema()->createTable('menu_custom', array(
@@ -43635,30 +43658,6 @@
   'timestamp' => '1478755314',
 ))
 ->values(array(
-  'nid' => '10',
-  'totalcount' => '5',
-  'daycount' => '1',
-  'timestamp' => '1521137459',
-))
-->values(array(
-  'nid' => '11',
-  'totalcount' => '3',
-  'daycount' => '1',
-  'timestamp' => '1521137463',
-))
-->values(array(
-  'nid' => '12',
-  'totalcount' => '3',
-  'daycount' => '0',
-  'timestamp' => '1521137469',
-))
-->values(array(
-  'nid' => '13',
-  'totalcount' => '2',
-  'daycount' => '1',
-  'timestamp' => '1521137470',
-))
-->values(array(
   'nid' => '14',
   'totalcount' => '1',
   'daycount' => '1',
@@ -46296,6 +46295,69 @@
   'language' => '',
   'trid' => '0',
 ))
+->values(array(
+  'tid' => '9',
+  'vid' => '3',
+  'name' => 'fr - term 4 of vocabulary 3',
+  'description' => '',
+  'weight' => '0',
+  'language' => 'fr',
+  'trid' => '1',
+))
+->values(array(
+  'tid' => '10',
+  'vid' => '3',
+  'name' => 'zu - term 4 of vocabulary 3',
+  'description' => '',
+  'weight' => '0',
+  'language' => 'zu',
+  'trid' => '1',
+))
+->values(array(
+  'tid' => '11',
+  'vid' => '3',
+  'name' => 'term 7 of vocabulary 3',
+  'description' => '',
+  'weight' => '0',
+  'language' => 'en',
+  'trid' => '2',
+))
+->values(array(
+  'tid' => '12',
+  'vid' => '3',
+  'name' => 'fr - term 7 of vocabulary 3',
+  'description' => '',
+  'weight' => '0',
+  'language' => 'fr',
+  'trid' => '2',
+))
+->values(array(
+  'tid' => '13',
+  'vid' => '3',
+  'name' => 'zu - term 7 of vocabulary 3',
+  'description' => '',
+  'weight' => '0',
+  'language' => 'zu',
+  'trid' => '2',
+))
+->values(array(
+  'tid' => '14',
+  'vid' => '5',
+  'name' => 'Talos IV',
+  'description' => 'The home of Captain Christopher Pike.',
+  'weight' => '0',
+  'language' => '',
+  'trid' => '0',
+))
+->values(array(
+  'tid' => '15',
+  'vid' => '5',
+  'name' => 'Vulcan',
+  'description' => '',
+  'weight' => '0',
+  'language' => '',
+  'trid' => '0',
+))
 ->execute();
 
 $connection->schema()->createTable('term_hierarchy', array(
@@ -46348,6 +46410,34 @@
   'parent' => '0',
 ))
 ->values(array(
+  'tid' => '9',
+  'parent' => '0',
+))
+->values(array(
+  'tid' => '10',
+  'parent' => '0',
+))
+->values(array(
+  'tid' => '11',
+  'parent' => '0',
+))
+->values(array(
+  'tid' => '12',
+  'parent' => '0',
+))
+->values(array(
+  'tid' => '13',
+  'parent' => '0',
+))
+->values(array(
+  'tid' => '14',
+  'parent' => '0',
+))
+->values(array(
+  'tid' => '15',
+  'parent' => '0',
+))
+->values(array(
   'tid' => '3',
   'parent' => '2',
 ))
@@ -46875,8 +46965,8 @@
   'signature' => '',
   'signature_format' => '0',
   'created' => '0',
-  'access' => '1494966478',
-  'login' => '1494966280',
+  'access' => '1521324882',
+  'login' => '1521281670',
   'status' => '1',
   'timezone' => NULL,
   'language' => '',
@@ -47945,7 +48035,7 @@
 ))
 ->values(array(
   'name' => 'i18ntaxonomy_vocabulary',
-  'value' => 'a:2:{i:1;s:1:"3";i:2;s:1:"2";}',
+  'value' => 'a:4:{i:1;s:1:"3";i:2;s:1:"2";i:3;s:1:"3";i:5;s:1:"1";}',
 ))
 ->values(array(
   'name' => 'i18n_lock_node_article',
@@ -47961,7 +48051,7 @@
 ))
 ->values(array(
   'name' => 'javascript_parsed',
-  'value' => 'a:16:{i:0;s:14:"misc/jquery.js";i:1;s:14:"misc/drupal.js";i:2;s:19:"misc/tableheader.js";s:10:"refresh:fr";s:7:"waiting";s:10:"refresh:zu";s:7:"waiting";i:3;s:17:"misc/tabledrag.js";i:4;s:32:"sites/all/modules/cck/content.js";i:5;s:16:"misc/textarea.js";i:6;s:16:"misc/collapse.js";i:7;s:12:"misc/form.js";i:8;s:19:"misc/tableselect.js";i:9;s:20:"modules/user/user.js";i:10;s:20:"misc/autocomplete.js";i:11;s:19:"misc/jquery.form.js";i:12;s:12:"misc/ahah.js";i:13;s:14:"misc/teaser.js";}',
+  'value' => 'a:18:{i:0;s:14:"misc/jquery.js";i:1;s:14:"misc/drupal.js";i:2;s:19:"misc/tableheader.js";s:10:"refresh:fr";s:7:"waiting";s:10:"refresh:zu";s:7:"waiting";i:3;s:17:"misc/tabledrag.js";i:4;s:32:"sites/all/modules/cck/content.js";i:5;s:16:"misc/textarea.js";i:6;s:16:"misc/collapse.js";i:7;s:12:"misc/form.js";i:8;s:19:"misc/tableselect.js";i:9;s:20:"modules/user/user.js";i:10;s:20:"misc/autocomplete.js";i:11;s:19:"misc/jquery.form.js";i:12;s:12:"misc/ahah.js";i:13;s:14:"misc/teaser.js";i:14;s:51:"sites/all/modules/i18n/i18ntaxonomy/i18ntaxonomy.js";i:15;s:28:"modules/taxonomy/taxonomy.js";}',
 ))
 ->values(array(
   'name' => 'language_content_type_article',
@@ -48483,7 +48573,7 @@
   'description' => 'description of vocabulary 3 (i=2)',
   'help' => '',
   'relations' => '1',
-  'hierarchy' => '2',
+  'hierarchy' => '1',
   'multiple' => '1',
   'required' => '0',
   'tags' => '0',
@@ -48511,7 +48601,7 @@
   'description' => 'description of vocabulary name much longer than thirty two characters',
   'help' => '',
   'relations' => '1',
-  'hierarchy' => '3',
+  'hierarchy' => '1',
   'multiple' => '1',
   'required' => '0',
   'tags' => '0',
diff --git a/core/modules/migrate_drupal/tests/fixtures/drupal7.php b/core/modules/migrate_drupal/tests/fixtures/drupal7.php
index 85362b362a..e3f025a72b 100644
--- a/core/modules/migrate_drupal/tests/fixtures/drupal7.php
+++ b/core/modules/migrate_drupal/tests/fixtures/drupal7.php
@@ -3634,21 +3634,6 @@
   'translatable' => '0',
   'deleted' => '0',
 ))
-->values(array(
-  'id' => '37',
-  'field_name' => 'field_float_list',
-  'type' => 'list_float',
-  'module' => 'list',
-  'active' => '1',
-  'storage_type' => 'field_sql_storage',
-  'storage_module' => 'field_sql_storage',
-  'storage_active' => '1',
-  'locked' => '0',
-  'data' => 'a:7:{s:12:"translatable";s:1:"0";s:12:"entity_types";a:0:{}s:8:"settings";a:2:{s:14:"allowed_values";a:2:{s:6:"3.1416";s:2:"Pi";s:6:"6.2832";s:3:"Tau";}s:23:"allowed_values_function";s:0:"";}s:7:"storage";a:5:{s:4:"type";s:17:"field_sql_storage";s:8:"settings";a:0:{}s:6:"module";s:17:"field_sql_storage";s:6:"active";s:1:"1";s:7:"details";a:1:{s:3:"sql";a:2:{s:18:"FIELD_LOAD_CURRENT";a:1:{s:27:"field_data_field_float_list";a:1:{s:5:"value";s:22:"field_float_list_value";}}s:19:"FIELD_LOAD_REVISION";a:1:{s:31:"field_revision_field_float_list";a:1:{s:5:"value";s:22:"field_float_list_value";}}}}}s:12:"foreign keys";a:0:{}s:7:"indexes";a:1:{s:5:"value";a:1:{i:0;s:5:"value";}}s:2:"id";s:2:"37";}',
-  'cardinality' => '1',
-  'translatable' => '0',
-  'deleted' => '0',
-))
 ->execute();
 
 $connection->schema()->createTable('field_config_instance', array(
@@ -4249,15 +4234,6 @@
   'data' => 'a:6:{s:5:"label";s:17:"Date without time";s:6:"widget";a:5:{s:6:"weight";s:1:"2";s:4:"type";s:11:"date_select";s:6:"module";s:4:"date";s:6:"active";i:1;s:8:"settings";a:6:{s:12:"input_format";s:13:"m/d/Y - H:i:s";s:19:"input_format_custom";s:0:"";s:10:"year_range";s:5:"-3:+3";s:9:"increment";s:2:"15";s:14:"label_position";s:5:"above";s:10:"text_parts";a:0:{}}}s:8:"settings";a:5:{s:13:"default_value";s:3:"now";s:18:"default_value_code";s:0:"";s:14:"default_value2";s:4:"same";s:19:"default_value_code2";s:0:"";s:18:"user_register_form";b:0;}s:7:"display";a:1:{s:7:"default";a:5:{s:5:"label";s:5:"above";s:4:"type";s:12:"date_default";s:6:"weight";s:1:"3";s:8:"settings";a:5:{s:11:"format_type";s:4:"long";s:15:"multiple_number";s:0:"";s:13:"multiple_from";s:0:"";s:11:"multiple_to";s:0:"";s:6:"fromto";s:4:"both";}s:6:"module";s:4:"date";}}s:8:"required";i:0;s:11:"description";s:0:"";}',
   'deleted' => '0',
 ))
-->values(array(
-  'id' => '63',
-  'field_id' => '37',
-  'field_name' => 'field_float_list',
-  'entity_type' => 'node',
-  'bundle' => 'test_content_type',
-  'data' => 'a:7:{s:5:"label";s:10:"Float List";s:6:"widget";a:5:{s:6:"weight";s:2:"20";s:4:"type";s:14:"options_select";s:6:"module";s:7:"options";s:6:"active";i:1;s:8:"settings";a:0:{}}s:8:"settings";a:1:{s:18:"user_register_form";b:0;}s:7:"display";a:1:{s:7:"default";a:5:{s:5:"label";s:5:"above";s:4:"type";s:12:"list_default";s:8:"settings";a:0:{}s:6:"module";s:4:"list";s:6:"weight";i:19;}}s:8:"required";i:0;s:11:"description";s:0:"";s:13:"default_value";N;}',
-  'deleted' => '0',
-))
 ->execute();
 
 $connection->schema()->createTable('field_data_body', array(
@@ -5172,112 +5148,6 @@
 ))
 ->execute();
 
-$connection->schema()->createTable('field_data_field_float_list', array(
-  'fields' => array(
-    'entity_type' => array(
-      'type' => 'varchar',
-      'not null' => TRUE,
-      'length' => '128',
-      'default' => '',
-    ),
-    'bundle' => array(
-      'type' => 'varchar',
-      'not null' => TRUE,
-      'length' => '128',
-      'default' => '',
-    ),
-    'deleted' => array(
-      'type' => 'int',
-      'not null' => TRUE,
-      'size' => 'tiny',
-      'default' => '0',
-    ),
-    'entity_id' => array(
-      'type' => 'int',
-      'not null' => TRUE,
-      'size' => 'normal',
-      'unsigned' => TRUE,
-    ),
-    'revision_id' => array(
-      'type' => 'int',
-      'not null' => FALSE,
-      'size' => 'normal',
-      'unsigned' => TRUE,
-    ),
-    'language' => array(
-      'type' => 'varchar',
-      'not null' => TRUE,
-      'length' => '32',
-      'default' => '',
-    ),
-    'delta' => array(
-      'type' => 'int',
-      'not null' => TRUE,
-      'size' => 'normal',
-      'unsigned' => TRUE,
-    ),
-    'field_float_list_value' => array(
-      'type' => 'float',
-      'not null' => FALSE,
-      'size' => 'normal',
-    ),
-  ),
-  'primary key' => array(
-    'entity_type',
-    'entity_id',
-    'deleted',
-    'delta',
-    'language',
-  ),
-  'indexes' => array(
-    'entity_type' => array(
-      'entity_type',
-    ),
-    'bundle' => array(
-      'bundle',
-    ),
-    'deleted' => array(
-      'deleted',
-    ),
-    'entity_id' => array(
-      'entity_id',
-    ),
-    'revision_id' => array(
-      'revision_id',
-    ),
-    'language' => array(
-      'language',
-    ),
-    'field_float_list_value' => array(
-      'field_float_list_value',
-    ),
-  ),
-  'mysql_character_set' => 'utf8',
-));
-
-$connection->insert('field_data_field_float_list')
-->fields(array(
-  'entity_type',
-  'bundle',
-  'deleted',
-  'entity_id',
-  'revision_id',
-  'language',
-  'delta',
-  'field_float_list_value',
-))
-->values(array(
-  'entity_type' => 'node',
-  'bundle' => 'test_content_type',
-  'deleted' => '0',
-  'entity_id' => '1',
-  'revision_id' => '1',
-  'language' => 'und',
-  'delta' => '0',
-  'field_float_list_value' => '3.1416',
-))
-->execute();
-
 $connection->schema()->createTable('field_data_field_image', array(
   'fields' => array(
     'entity_type' => array(
@@ -8637,113 +8507,6 @@
 ))
 ->execute();
 
-$connection->schema()->createTable('field_revision_field_float_list', array(
-  'fields' => array(
-    'entity_type' => array(
-      'type' => 'varchar',
-      'not null' => TRUE,
-      'length' => '128',
-      'default' => '',
-    ),
-    'bundle' => array(
-      'type' => 'varchar',
-      'not null' => TRUE,
-      'length' => '128',
-      'default' => '',
-    ),
-    'deleted' => array(
-      'type' => 'int',
-      'not null' => TRUE,
-      'size' => 'tiny',
-      'default' => '0',
-    ),
-    'entity_id' => array(
-      'type' => 'int',
-      'not null' => TRUE,
-      'size' => 'normal',
-      'unsigned' => TRUE,
-    ),
-    'revision_id' => array(
-      'type' => 'int',
-      'not null' => TRUE,
-      'size' => 'normal',
-      'unsigned' => TRUE,
-    ),
-    'language' => array(
-      'type' => 'varchar',
-      'not null' => TRUE,
-      'length' => '32',
-      'default' => '',
-    ),
-    'delta' => array(
-      'type' => 'int',
-      'not null' => TRUE,
-      'size' => 'normal',
-      'unsigned' => TRUE,
-    ),
-    'field_float_list_value' => array(
-      'type' => 'float',
-      'not null' => FALSE,
-      'size' => 'normal',
-    ),
-  ),
-  'primary key' => array(
-    'entity_type',
-    'entity_id',
-    'revision_id',
-    'deleted',
-    'delta',
-    'language',
-  ),
-  'indexes' => array(
-    'entity_type' => array(
-      'entity_type',
-    ),
-    'bundle' => array(
-      'bundle',
-    ),
-    'deleted' => array(
-      'deleted',
-    ),
-    'entity_id' => array(
-      'entity_id',
-    ),
-    'revision_id' => array(
-      'revision_id',
-    ),
-    'language' => array(
-      'language',
-    ),
-    'field_float_list_value' => array(
-      'field_float_list_value',
-    ),
-  ),
-  'mysql_character_set' => 'utf8',
-));
-
-$connection->insert('field_revision_field_float_list')
-->fields(array(
-  'entity_type',
-  'bundle',
-  'deleted',
-  'entity_id',
-  'revision_id',
-  'language',
-  'delta',
-  'field_float_list_value',
-))
-->values(array(
-  'entity_type' => 'node',
-  'bundle' => 'test_content_type',
-  'deleted' => '0',
-  'entity_id' => '1',
-  'revision_id' => '1',
-  'language' => 'und',
-  'delta' => '0',
-  'field_float_list_value' => '3.1416',
-))
-->execute();
-
 $connection->schema()->createTable('field_revision_field_image', array(
   'fields' => array(
     'entity_type' => array(
diff --git a/core/modules/migrate_drupal/tests/src/Kernel/Plugin/migrate/source/ContentEntityTest.php b/core/modules/migrate_drupal/tests/src/Kernel/Plugin/migrate/source/ContentEntityTest.php
index 095de3306e..72372afc2e 100644
--- a/core/modules/migrate_drupal/tests/src/Kernel/Plugin/migrate/source/ContentEntityTest.php
+++ b/core/modules/migrate_drupal/tests/src/Kernel/Plugin/migrate/source/ContentEntityTest.php
@@ -244,7 +244,7 @@ public function testUserSource() {
     ];
     $migration = $this->migrationPluginManager->createStubMigration($this->migrationDefinition('content_entity:user'));
     $user_source = $this->sourcePluginManager->createInstance('content_entity:user', $configuration, $migration);
-    $this->assertSame('users', $user_source->__toString());
+    $this->assertSame('user entities', $user_source->__toString());
     $this->assertEquals(1, $user_source->count());
     $ids = $user_source->getIds();
     $this->assertArrayHasKey('langcode', $ids);
@@ -279,7 +279,7 @@ public function testFileSource() {
     ];
     $migration = $this->migrationPluginManager->createStubMigration($this->migrationDefinition('content_entity:file'));
     $file_source = $this->sourcePluginManager->createInstance('content_entity:file', $configuration, $migration);
-    $this->assertSame('files', $file_source->__toString());
+    $this->assertSame('file entities', $file_source->__toString());
     $this->assertEquals(1, $file_source->count());
     $ids = $file_source->getIds();
     $this->assertArrayHasKey('fid', $ids);
@@ -395,7 +395,7 @@ public function testTermSource() {
     ];
     $migration = $this->migrationPluginManager->createStubMigration($this->migrationDefinition('content_entity:taxonomy_term'));
     $term_source = $this->sourcePluginManager->createInstance('content_entity:taxonomy_term', $configuration, $migration);
-    $this->assertSame('taxonomy terms', $term_source->__toString());
+    $this->assertSame('taxonomy term entities', $term_source->__toString());
     $this->assertEquals(2, $term_source->count());
     $ids = $term_source->getIds();
     $this->assertArrayHasKey('langcode', $ids);
diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeExecuteTestBase.php b/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeExecuteTestBase.php
index 6cb10e4f9b..36925d2b84 100644
--- a/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeExecuteTestBase.php
+++ b/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeExecuteTestBase.php
@@ -121,7 +121,7 @@ public function testMigrateUpgradeExecute() {
     $this->drupalPostForm(NULL, $edits, t('Review upgrade'));
     $session->pageTextContains('WARNING: Content may be overwritten on your new site.');
     $session->pageTextContains('There is conflicting content of these types:');
-    $session->pageTextContains('files');
+    $session->pageTextContains('file entities');
     $session->pageTextContains('content item revisions');
     $session->pageTextContains('There is translated content of these types:');
     $session->pageTextContains('content items');
diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeTestBase.php b/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeTestBase.php
index 73158feef0..c09b7ca723 100644
--- a/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeTestBase.php
+++ b/core/modules/migrate_drupal_ui/tests/src/Functional/MigrateUpgradeTestBase.php
@@ -209,11 +209,11 @@ protected function assertReviewPage(WebAssert $session, array $all_available, ar
   protected function assertIdConflict(WebAssert $session) {
     $session->pageTextContains('WARNING: Content may be overwritten on your new site.');
     $session->pageTextContains('There is conflicting content of these types:');
-    $session->pageTextContains('custom blocks');
-    $session->pageTextContains('custom menu links');
-    $session->pageTextContains('files');
-    $session->pageTextContains('taxonomy terms');
-    $session->pageTextContains('users');
+    $session->pageTextContains('custom block entities');
+    $session->pageTextContains('custom menu link entities');
+    $session->pageTextContains('file entities');
+    $session->pageTextContains('taxonomy term entities');
+    $session->pageTextContains('user entities');
     $session->pageTextContains('comments');
     $session->pageTextContains('content item revisions');
     $session->pageTextContains('content items');
diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6Test.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6Test.php
index 9c4eb7c3fd..71eebe823b 100644
--- a/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6Test.php
+++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d6/MigrateUpgrade6Test.php
@@ -63,8 +63,8 @@ protected function getEntityCounts() {
       'contact_form' => 5,
       'configurable_language' => 5,
       'editor' => 2,
-      'field_config' => 86,
-      'field_storage_config' => 60,
+      'field_config' => 84,
+      'field_storage_config' => 58,
       'file' => 8,
       'filter_format' => 7,
       'image_style' => 5,
diff --git a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7Test.php b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7Test.php
index 884be2b249..49e793cecb 100644
--- a/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7Test.php
+++ b/core/modules/migrate_drupal_ui/tests/src/Functional/d7/MigrateUpgrade7Test.php
@@ -65,8 +65,8 @@ protected function getEntityCounts() {
       'configurable_language' => 4,
       'contact_form' => 3,
       'editor' => 2,
-      'field_config' => 64,
-      'field_storage_config' => 47,
+      'field_config' => 63,
+      'field_storage_config' => 46,
       'file' => 3,
       'filter_format' => 7,
       'image_style' => 6,
diff --git a/core/modules/node/src/Entity/NodeType.php b/core/modules/node/src/Entity/NodeType.php
index 6daa45dad9..e4a4c3b6c1 100644
--- a/core/modules/node/src/Entity/NodeType.php
+++ b/core/modules/node/src/Entity/NodeType.php
@@ -12,13 +12,6 @@
  * @ConfigEntityType(
  *   id = "node_type",
  *   label = @Translation("Content type"),
- *   label_collection = @Translation("Content types"),
- *   label_singular = @Translation("content type"),
- *   label_plural = @Translation("content types"),
- *   label_count = @PluralTranslation(
- *     singular = "@count content type",
- *     plural = "@count content types",
- *   ),
  *   handlers = {
  *     "access" = "Drupal\node\NodeTypeAccessControlHandler",
  *     "form" = {
diff --git a/core/modules/node/tests/src/Kernel/Migrate/d6/MigrateNodeTest.php b/core/modules/node/tests/src/Kernel/Migrate/d6/MigrateNodeTest.php
index 29460d9c74..ce4ce76e96 100644
--- a/core/modules/node/tests/src/Kernel/Migrate/d6/MigrateNodeTest.php
+++ b/core/modules/node/tests/src/Kernel/Migrate/d6/MigrateNodeTest.php
@@ -94,10 +94,6 @@ public function testNode() {
     $this->assertCount(2, $node->field_company);
     $this->assertSame('Klingon Empire', $node->field_company[0]->entity->label());
     $this->assertSame('Romulan Empire', $node->field_company[1]->entity->label());
-    $this->assertCount(1, $node->field_company_2);
-    $this->assertSame('Klingon Empire', $node->field_company_2[0]->entity->label());
-    $this->assertCount(1, $node->field_company_3);
-    $this->assertSame('Romulan Empire', $node->field_company_3[0]->entity->label());
 
     // Test that user reference field values were migrated.
     $this->assertCount(1, $node->field_commander);
diff --git a/core/modules/node/tests/src/Kernel/Migrate/d7/MigrateNodeTest.php b/core/modules/node/tests/src/Kernel/Migrate/d7/MigrateNodeTest.php
index bb62e90e24..dc053a8b9e 100644
--- a/core/modules/node/tests/src/Kernel/Migrate/d7/MigrateNodeTest.php
+++ b/core/modules/node/tests/src/Kernel/Migrate/d7/MigrateNodeTest.php
@@ -164,7 +164,6 @@ public function testNode() {
     $this->assertEquals('default@example.com', $node->field_email->value);
     $this->assertEquals('another@example.com', $node->field_email[1]->value);
     $this->assertEquals(CommentItemInterface::OPEN, $node->comment_node_test_content_type->status);
-    $this->assertEquals('3.1416', $node->field_float_list[0]->value);
 
     $node = Node::load(2);
     $this->assertEquals('en', $node->langcode->value);
diff --git a/core/modules/options/src/Plugin/migrate/field/d7/ListField.php b/core/modules/options/src/Plugin/migrate/field/d7/ListField.php
index d982586a4a..714c364b8f 100644
--- a/core/modules/options/src/Plugin/migrate/field/d7/ListField.php
+++ b/core/modules/options/src/Plugin/migrate/field/d7/ListField.php
@@ -11,7 +11,6 @@
  *     "list_boolean" = "boolean",
  *     "list_integer" = "list_integer",
  *     "list_text" = "list_string",
- *     "list_float" = "list_float",
  *   },
  *   core = {7},
  *   source_module = "list",
diff --git a/core/modules/responsive_image/src/Entity/ResponsiveImageStyle.php b/core/modules/responsive_image/src/Entity/ResponsiveImageStyle.php
index 0b4dfd752f..5ad9d9530b 100644
--- a/core/modules/responsive_image/src/Entity/ResponsiveImageStyle.php
+++ b/core/modules/responsive_image/src/Entity/ResponsiveImageStyle.php
@@ -12,13 +12,6 @@
  * @ConfigEntityType(
  *   id = "responsive_image_style",
  *   label = @Translation("Responsive image style"),
- *   label_collection = @Translation("Responsive image styles"),
- *   label_singular = @Translation("responsive image style"),
- *   label_plural = @Translation("responsive image styles"),
- *   label_count = @PluralTranslation(
- *     singular = "@count responsive image style",
- *     plural = "@count responsive image styles",
- *   ),
  *   handlers = {
  *     "list_builder" = "Drupal\responsive_image\ResponsiveImageStyleListBuilder",
  *     "form" = {
diff --git a/core/modules/responsive_image/tests/src/Functional/ResponsiveImageAdminUITest.php b/core/modules/responsive_image/tests/src/Functional/ResponsiveImageAdminUITest.php
index ce9050e273..eeaf793fa0 100644
--- a/core/modules/responsive_image/tests/src/Functional/ResponsiveImageAdminUITest.php
+++ b/core/modules/responsive_image/tests/src/Functional/ResponsiveImageAdminUITest.php
@@ -35,7 +35,7 @@ protected function setUp() {
   public function testResponsiveImageAdmin() {
     // We start without any default styles.
     $this->drupalGet('admin/config/media/responsive-image-style');
-    $this->assertText('There are no responsive image styles yet.');
+    $this->assertText('There is no Responsive image style yet.');
 
     // Add a responsive image style.
     $this->drupalGet('admin/config/media/responsive-image-style/add');
@@ -54,7 +54,7 @@ public function testResponsiveImageAdmin() {
     // Check if the new group is created.
     $this->assertResponse(200);
     $this->drupalGet('admin/config/media/responsive-image-style');
-    $this->assertNoText('There are no responsive image styles yet.');
+    $this->assertNoText('There is no Responsive image style yet.');
     $this->assertText('Style One');
     $this->assertText('style_one');
 
@@ -137,7 +137,7 @@ public function testResponsiveImageAdmin() {
     $this->drupalGet('admin/config/media/responsive-image-style/style_one/delete');
     $this->drupalPostForm(NULL, [], t('Delete'));
     $this->drupalGet('admin/config/media/responsive-image-style');
-    $this->assertText('There are no responsive image styles yet.');
+    $this->assertText('There is no Responsive image style yet.');
   }
 
 }
diff --git a/core/modules/rest/src/Entity/RestResourceConfig.php b/core/modules/rest/src/Entity/RestResourceConfig.php
index 47faa01e0d..12bd846ea6 100644
--- a/core/modules/rest/src/Entity/RestResourceConfig.php
+++ b/core/modules/rest/src/Entity/RestResourceConfig.php
@@ -13,13 +13,6 @@
  * @ConfigEntityType(
  *   id = "rest_resource_config",
  *   label = @Translation("REST resource configuration"),
- *   label_collection = @Translation("REST resource configurations"),
- *   label_singular = @Translation("REST resource configuration"),
- *   label_plural = @Translation("REST resource configurations"),
- *   label_count = @PluralTranslation(
- *     singular = "@count REST resource configuration",
- *     plural = "@count REST resource configurations",
- *   ),
  *   config_prefix = "resource",
  *   admin_permission = "administer rest resources",
  *   label_callback = "getLabelFromPlugin",
diff --git a/core/modules/search/src/Entity/SearchPage.php b/core/modules/search/src/Entity/SearchPage.php
index 94ae70df1f..85ddc26082 100644
--- a/core/modules/search/src/Entity/SearchPage.php
+++ b/core/modules/search/src/Entity/SearchPage.php
@@ -16,13 +16,6 @@
  * @ConfigEntityType(
  *   id = "search_page",
  *   label = @Translation("Search page"),
- *   label_collection = @Translation("Search pages"),
- *   label_singular = @Translation("search page"),
- *   label_plural = @Translation("search pages"),
- *   label_count = @PluralTranslation(
- *     singular = "@count search page",
- *     plural = "@count search pages",
- *   ),
  *   handlers = {
  *     "access" = "Drupal\search\SearchPageAccessControlHandler",
  *     "list_builder" = "Drupal\search\SearchPageListBuilder",
diff --git a/core/modules/settings_tray/tests/src/FunctionalJavascript/ConfigAccessTest.php b/core/modules/settings_tray/tests/src/FunctionalJavascript/ConfigAccessTest.php
deleted file mode 100644
index 8646b93ec3..0000000000
--- a/core/modules/settings_tray/tests/src/FunctionalJavascript/ConfigAccessTest.php
+++ /dev/null
@@ -1,102 +0,0 @@
-<?php
-
-namespace Drupal\Tests\settings_tray\FunctionalJavascript;
-
-use Drupal\menu_link_content\Entity\MenuLinkContent;
-use Drupal\user\Entity\Role;
-
-/**
- * Tests handling of configuration overrides.
- *
- * @group settings_tray
- */
-class ConfigAccessTest extends SettingsTrayTestBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  public static $modules = [
-    'menu_link_content',
-    'menu_ui',
-  ];
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    parent::setUp();
-
-    $user = $this->createUser([
-      'administer blocks',
-      'access contextual links',
-      'access toolbar',
-    ]);
-    $this->drupalLogin($user);
-  }
-
-  /**
-   * Tests access to block forms with related configuration is correct.
-   */
-  public function testBlockConfigAccess() {
-    $page = $this->getSession()->getPage();
-    $web_assert = $this->assertSession();
-
-    // Confirm that System Branding block does not expose Site Name field
-    // without permission.
-    $block = $this->placeBlock('system_branding_block');
-    $this->drupalGet('user');
-    $this->enableEditMode();
-    $this->openBlockForm($this->getBlockSelector($block));
-    // The site name field should not appear because the user doesn't have
-    // permission.
-    $web_assert->fieldNotExists('settings[site_information][site_name]');
-    $page->pressButton('Save Site branding');
-    $this->assertElementVisibleAfterWait('css', 'div:contains(The block configuration has been saved)');
-    $web_assert->assertWaitOnAjaxRequest();
-    // Confirm we did not save changes to the configuration.
-    $this->assertEquals('Drupal', \Drupal::configFactory()->getEditable('system.site')->get('name'));
-
-    $this->grantPermissions(Role::load(Role::AUTHENTICATED_ID), ['administer site configuration']);
-    $this->drupalGet('user');
-    $this->openBlockForm($this->getBlockSelector($block));
-    // The site name field should appear because the user does have permission.
-    $web_assert->fieldExists('settings[site_information][site_name]');
-
-    // Confirm that the Menu block does not expose menu configuration without
-    // permission.
-    // Add a link or the menu will not render.
-    $menu_link_content = MenuLinkContent::create([
-      'title' => 'This is on the menu',
-      'menu_name' => 'main',
-      'link' => ['uri' => 'route:<front>'],
-    ]);
-    $menu_link_content->save();
-    $this->assertNotEmpty($menu_link_content->isEnabled());
-    $menu_without_overrides = \Drupal::configFactory()->getEditable('system.menu.main')->get();
-    $block = $this->placeBlock('system_menu_block:main');
-    $this->drupalGet('user');
-    $web_assert->pageTextContains('This is on the menu');
-    $this->openBlockForm($this->getBlockSelector($block));
-    // Edit menu form should not appear because the user doesn't have
-    // permission.
-    $web_assert->pageTextNotContains('Edit menu');
-    $page->pressButton('Save Main navigation');
-    $this->assertElementVisibleAfterWait('css', 'div:contains(The block configuration has been saved)');
-    $web_assert->assertWaitOnAjaxRequest();
-    // Confirm we did not save changes to the menu or the menu link.
-    $this->assertEquals($menu_without_overrides, \Drupal::configFactory()->getEditable('system.menu.main')->get());
-    $menu_link_content = MenuLinkContent::load($menu_link_content->id());
-    $this->assertNotEmpty($menu_link_content->isEnabled());
-    // Confirm menu is still on the page.
-    $this->drupalGet('user');
-    $web_assert->pageTextContains('This is on the menu');
-
-    $this->grantPermissions(Role::load(Role::AUTHENTICATED_ID), ['administer menu']);
-    $this->drupalGet('user');
-    $web_assert->pageTextContains('This is on the menu');
-    $this->openBlockForm($this->getBlockSelector($block));
-    // Edit menu form should appear because the user does have permission.
-    $web_assert->pageTextContains('Edit menu');
-  }
-
-}
diff --git a/core/modules/settings_tray/tests/src/FunctionalJavascript/OverriddenConfigurationTest.php b/core/modules/settings_tray/tests/src/FunctionalJavascript/OverriddenConfigurationTest.php
deleted file mode 100644
index 97cd4db18f..0000000000
--- a/core/modules/settings_tray/tests/src/FunctionalJavascript/OverriddenConfigurationTest.php
+++ /dev/null
@@ -1,174 +0,0 @@
-<?php
-
-namespace Drupal\Tests\settings_tray\FunctionalJavascript;
-
-use Drupal\block\Entity\Block;
-use Drupal\menu_link_content\Entity\MenuLinkContent;
-use Drupal\user\Entity\Role;
-
-/**
- * Tests handling of configuration overrides.
- *
- * @group settings_tray
- */
-class OverriddenConfigurationTest extends SettingsTrayTestBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  public static $modules = [
-    'settings_tray_override_test',
-    'menu_ui',
-    'menu_link_content',
-  ];
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    parent::setUp();
-
-    $user = $this->createUser([
-      'administer blocks',
-      'access contextual links',
-      'access toolbar',
-    ]);
-    $this->drupalLogin($user);
-  }
-
-  /**
-   * Test  blocks with overridden related configuration removed when overridden.
-   */
-  public function testOverriddenConfigurationRemoved() {
-    $web_assert = $this->assertSession();
-    $page = $this->getSession()->getPage();
-    $this->grantPermissions(Role::load(Role::AUTHENTICATED_ID), ['administer site configuration', 'administer menu']);
-
-    // Confirm the branding block does include 'site_information' section when
-    // the site name is not overridden.
-    $branding_block = $this->placeBlock('system_branding_block');
-    $this->drupalGet('user');
-    $this->enableEditMode();
-    $this->openBlockForm($this->getBlockSelector($branding_block));
-    $web_assert->fieldExists('settings[site_information][site_name]');
-    // Confirm the branding block does not include 'site_information' section
-    // when the site name is overridden.
-    $this->container->get('state')->set('settings_tray_override_test.site_name', TRUE);
-    $this->drupalGet('user');
-    $this->openBlockForm($this->getBlockSelector($branding_block));
-    $web_assert->fieldNotExists('settings[site_information][site_name]');
-    $page->pressButton('Save Site branding');
-    $this->assertElementVisibleAfterWait('css', 'div:contains(The block configuration has been saved)');
-    $web_assert->assertWaitOnAjaxRequest();
-    // Confirm we did not save changes to the configuration.
-    $this->assertEquals('Llama Fan Club', \Drupal::configFactory()->get('system.site')->get('name'));
-    $this->assertEquals('Drupal', \Drupal::configFactory()->getEditable('system.site')->get('name'));
-
-    // Add a link or the menu will not render.
-    $menu_link_content = MenuLinkContent::create([
-      'title' => 'This is on the menu',
-      'menu_name' => 'main',
-      'link' => ['uri' => 'route:<front>'],
-    ]);
-    $menu_link_content->save();
-    // Confirm the menu block does include menu section when the menu is not
-    // overridden.
-    $menu_block = $this->placeBlock('system_menu_block:main');
-    $web_assert->assertWaitOnAjaxRequest();
-    $this->drupalGet('user');
-    $web_assert->pageTextContains('This is on the menu');
-    $this->openBlockForm($this->getBlockSelector($menu_block));
-    $web_assert->elementExists('css', '#menu-overview');
-
-    // Confirm the menu block does not include menu section when the menu is
-    // overridden.
-    $this->container->get('state')->set('settings_tray_override_test.menu', TRUE);
-    $this->drupalGet('user');
-    $web_assert->pageTextContains('This is on the menu');
-    $menu_with_overrides = \Drupal::configFactory()->get('system.menu.main')->get();
-    $menu_without_overrides = \Drupal::configFactory()->getEditable('system.menu.main')->get();
-    $this->openBlockForm($this->getBlockSelector($menu_block));
-    $web_assert->elementNotExists('css', '#menu-overview');
-    $page->pressButton('Save Main navigation');
-    $this->assertElementVisibleAfterWait('css', 'div:contains(The block configuration has been saved)');
-    $web_assert->assertWaitOnAjaxRequest();
-    // Confirm we did not save changes to the configuration.
-    $this->assertEquals('Labely label', \Drupal::configFactory()->get('system.menu.main')->get('label'));
-    $this->assertEquals('Main navigation', \Drupal::configFactory()->getEditable('system.menu.main')->get('label'));
-    $this->assertEquals($menu_with_overrides, \Drupal::configFactory()->get('system.menu.main')->get());
-    $this->assertEquals($menu_without_overrides, \Drupal::configFactory()->getEditable('system.menu.main')->get());
-    $web_assert->pageTextContains('This is on the menu');
-  }
-
-  /**
-   * Tests that blocks with configuration overrides are disabled.
-   */
-  public function testOverriddenBlock() {
-    $web_assert = $this->assertSession();
-    $page = $this->getSession()->getPage();
-    $overridden_block = $this->placeBlock('system_powered_by_block', [
-      'id' => 'overridden_block',
-      'label_display' => 1,
-      'label' => 'This will be overridden.',
-    ]);
-    $this->drupalGet('user');
-    $block_selector = $this->getBlockSelector($overridden_block);
-    // Confirm the block is marked as Settings Tray editable.
-    $this->assertEquals('editable', $page->find('css', $block_selector)->getAttribute('data-drupal-settingstray'));
-    // Confirm the label is not overridden.
-    $web_assert->elementContains('css', $block_selector, 'This will be overridden.');
-    $this->enableEditMode();
-    $this->openBlockForm($block_selector);
-
-    // Confirm the block Settings Tray functionality is disabled when block is
-    // overridden.
-    $this->container->get('state')->set('settings_tray_override_test.block', TRUE);
-    $overridden_block->save();
-    $block_config = \Drupal::configFactory()->getEditable('block.block.overridden_block');
-    $block_config->set('settings', $block_config->get('settings'))->save();
-
-    $this->drupalGet('user');
-    $this->assertOverriddenBlockDisabled($overridden_block, 'Now this will be the label.');
-
-    // Test a non-overridden block does show the form in the off-canvas dialog.
-    $block = $this->placeBlock('system_powered_by_block', [
-      'label_display' => 1,
-      'label' => 'Labely label',
-    ]);
-    $this->drupalGet('user');
-    $block_selector = $this->getBlockSelector($block);
-    // Confirm the block is marked as Settings Tray editable.
-    $this->assertEquals('editable', $page->find('css', $block_selector)->getAttribute('data-drupal-settingstray'));
-    // Confirm the label is not overridden.
-    $web_assert->elementContains('css', $block_selector, 'Labely label');
-    $this->openBlockForm($block_selector);
-  }
-
-  /**
-   * Asserts that an overridden block has Settings Tray disabled.
-   *
-   * @param \Drupal\block\Entity\Block $overridden_block
-   *   The overridden block.
-   * @param string $override_text
-   *   The override text that should appear in the block.
-   */
-  protected function assertOverriddenBlockDisabled(Block $overridden_block, $override_text) {
-    $web_assert = $this->assertSession();
-    $page = $this->getSession()->getPage();
-    $block_selector = $this->getBlockSelector($overridden_block);
-    $block_id = $overridden_block->id();
-    // Confirm the block does not have a quick edit link.
-    $contextual_links = $page->findAll('css', "$block_selector .contextual-links li a");
-    $this->assertNotEmpty($contextual_links);
-    foreach ($contextual_links as $link) {
-      $this->assertNotContains("/admin/structure/block/manage/$block_id/off-canvas", $link->getAttribute('href'));
-    }
-    // Confirm the block is not marked as Settings Tray editable.
-    $this->assertFalse($page->find('css', $block_selector)
-      ->hasAttribute('data-drupal-settingstray'));
-
-    // Confirm the text is actually overridden.
-    $web_assert->elementContains('css', $this->getBlockSelector($overridden_block), $override_text);
-  }
-
-}
diff --git a/core/modules/settings_tray/tests/src/FunctionalJavascript/QuickEditIntegrationTest.php b/core/modules/settings_tray/tests/src/FunctionalJavascript/QuickEditIntegrationTest.php
deleted file mode 100644
index d30562f71d..0000000000
--- a/core/modules/settings_tray/tests/src/FunctionalJavascript/QuickEditIntegrationTest.php
+++ /dev/null
@@ -1,204 +0,0 @@
-<?php
-
-namespace Drupal\Tests\settings_tray\FunctionalJavascript;
-
-use Drupal\block_content\Entity\BlockContent;
-use Drupal\block_content\Entity\BlockContentType;
-use Drupal\user\Entity\Role;
-
-/**
- * Test Settings Tray and Quick Edit modules integration.
- *
- * @group settings_tray
- */
-class QuickEditIntegrationTest extends SettingsTrayTestBase {
-
-  /**
-   * {@inheritdoc}
-   */
-  public static $modules = [
-    'node',
-    'block_content',
-    'quickedit',
-  ];
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    parent::setUp();
-    $user = $this->createUser([
-      'administer blocks',
-      'access contextual links',
-      'access toolbar',
-      'administer nodes',
-      'access in-place editing',
-    ]);
-    $this->drupalLogin($user);
-
-  }
-
-  /**
-   * Tests QuickEdit links behavior.
-   */
-  public function testQuickEditLinks() {
-    $quick_edit_selector = '#quickedit-entity-toolbar';
-    $node_selector = '[data-quickedit-entity-id="node/1"]';
-    $body_selector = '[data-quickedit-field-id="node/1/body/en/full"]';
-    $web_assert = $this->assertSession();
-    // Create a Content type and two test nodes.
-    $this->createContentType(['type' => 'page']);
-    $auth_role = Role::load(Role::AUTHENTICATED_ID);
-    $this->grantPermissions($auth_role, [
-      'edit any page content',
-      'access content',
-    ]);
-    $node = $this->createNode(
-      [
-        'title' => 'Page One',
-        'type' => 'page',
-        'body' => [
-          [
-            'value' => 'Regular NODE body for the test.',
-            'format' => 'plain_text',
-          ],
-        ],
-      ]
-    );
-    $page = $this->getSession()->getPage();
-    $block_plugin = 'system_powered_by_block';
-
-    foreach ($this->getTestThemes() as $theme) {
-
-      $this->enableTheme($theme);
-
-      $block = $this->placeBlock($block_plugin);
-      $block_selector = $this->getBlockSelector($block);
-      // Load the same page twice.
-      foreach ([1, 2] as $page_load_times) {
-        $this->drupalGet('node/' . $node->id());
-        // The 2nd page load we should already be in edit mode.
-        if ($page_load_times == 1) {
-          $this->enableEditMode();
-        }
-        // In Edit mode clicking field should open QuickEdit toolbar.
-        $page->find('css', $body_selector)->click();
-        $this->assertElementVisibleAfterWait('css', $quick_edit_selector);
-
-        $this->disableEditMode();
-        // Exiting Edit mode should close QuickEdit toolbar.
-        $web_assert->elementNotExists('css', $quick_edit_selector);
-        // When not in Edit mode QuickEdit toolbar should not open.
-        $page->find('css', $body_selector)->click();
-        $web_assert->elementNotExists('css', $quick_edit_selector);
-        $this->enableEditMode();
-        $this->openBlockForm($block_selector);
-        $page->find('css', $body_selector)->click();
-        $this->assertElementVisibleAfterWait('css', $quick_edit_selector);
-        // Off-canvas dialog should be closed when opening QuickEdit toolbar.
-        $this->waitForOffCanvasToClose();
-
-        $this->openBlockForm($block_selector);
-        // QuickEdit toolbar should be closed when opening Off-canvas dialog.
-        $web_assert->elementNotExists('css', $quick_edit_selector);
-      }
-      // Check using contextual links to invoke QuickEdit and open the tray.
-      $this->drupalGet('node/' . $node->id());
-      $web_assert->assertWaitOnAjaxRequest();
-      $this->disableEditMode();
-      // Open QuickEdit toolbar before going into Edit mode.
-      $this->clickContextualLink($node_selector, "Quick edit");
-      $this->assertElementVisibleAfterWait('css', $quick_edit_selector);
-      // Open off-canvas and enter Edit mode via contextual link.
-      $this->clickContextualLink($block_selector, "Quick edit");
-      $this->waitForOffCanvasToOpen();
-      // QuickEdit toolbar should be closed when opening off-canvas dialog.
-      $web_assert->elementNotExists('css', $quick_edit_selector);
-      // Open QuickEdit toolbar via contextual link while in Edit mode.
-      $this->clickContextualLink($node_selector, "Quick edit", FALSE);
-      $this->waitForOffCanvasToClose();
-      $this->assertElementVisibleAfterWait('css', $quick_edit_selector);
-      $this->disableEditMode();
-    }
-  }
-
-  /**
-   * Tests that contextual links in custom blocks are changed.
-   *
-   * "Quick edit" is quickedit.module link.
-   * "Quick edit settings" is settings_tray.module link.
-   */
-  public function testCustomBlockLinks() {
-    $this->createBlockContentType('basic', TRUE);
-    $block_content = $this->createBlockContent('Custom Block', 'basic', TRUE);
-    $this->placeBlock('block_content:' . $block_content->uuid(), ['id' => 'custom']);
-    $this->drupalGet('user');
-    $page = $this->getSession()->getPage();
-    $links = $page->findAll('css', "#block-custom .contextual-links li a");
-    $link_labels = [];
-    /** @var \Behat\Mink\Element\NodeElement $link */
-    foreach ($links as $link) {
-      $link_labels[$link->getAttribute('href')] = $link->getText();
-    }
-    $href = array_search('Quick edit', $link_labels);
-    $this->assertEquals('', $href);
-    $href = array_search('Quick edit settings', $link_labels);
-    $this->assertTrue(strstr($href, '/admin/structure/block/manage/custom/settings-tray?destination=user/2') !== FALSE);
-  }
-
-  /**
-   * Creates a custom block.
-   *
-   * @param bool|string $title
-   *   (optional) Title of block. When no value is given uses a random name.
-   *   Defaults to FALSE.
-   * @param string $bundle
-   *   (optional) Bundle name. Defaults to 'basic'.
-   * @param bool $save
-   *   (optional) Whether to save the block. Defaults to TRUE.
-   *
-   * @return \Drupal\block_content\Entity\BlockContent
-   *   Created custom block.
-   */
-  protected function createBlockContent($title = FALSE, $bundle = 'basic', $save = TRUE) {
-    $title = $title ?: $this->randomName();
-    $block_content = BlockContent::create([
-      'info' => $title,
-      'type' => $bundle,
-      'langcode' => 'en',
-      'body' => [
-        'value' => 'The name "llama" was adopted by European settlers from native Peruvians.',
-        'format' => 'plain_text',
-      ],
-    ]);
-    if ($block_content && $save === TRUE) {
-      $block_content->save();
-    }
-    return $block_content;
-  }
-
-  /**
-   * Creates a custom block type (bundle).
-   *
-   * @param string $label
-   *   The block type label.
-   * @param bool $create_body
-   *   Whether or not to create the body field.
-   *
-   * @return \Drupal\block_content\Entity\BlockContentType
-   *   Created custom block type.
-   */
-  protected function createBlockContentType($label, $create_body = FALSE) {
-    $bundle = BlockContentType::create([
-      'id' => $label,
-      'label' => $label,
-      'revision' => FALSE,
-    ]);
-    $bundle->save();
-    if ($create_body) {
-      block_content_add_body_field($bundle->id());
-    }
-    return $bundle;
-  }
-
-}
diff --git a/core/modules/settings_tray/tests/src/FunctionalJavascript/SettingsTrayBlockFormTest.php b/core/modules/settings_tray/tests/src/FunctionalJavascript/SettingsTrayBlockFormTest.php
index 5e38c1d888..cc87d283b5 100644
--- a/core/modules/settings_tray/tests/src/FunctionalJavascript/SettingsTrayBlockFormTest.php
+++ b/core/modules/settings_tray/tests/src/FunctionalJavascript/SettingsTrayBlockFormTest.php
@@ -2,24 +2,51 @@
 
 namespace Drupal\Tests\settings_tray\FunctionalJavascript;
 
+use Drupal\block\Entity\Block;
+use Drupal\block_content\Entity\BlockContent;
+use Drupal\block_content\Entity\BlockContentType;
+use Drupal\menu_link_content\Entity\MenuLinkContent;
 use Drupal\settings_tray_test\Plugin\Block\SettingsTrayFormAnnotationIsClassBlock;
 use Drupal\settings_tray_test\Plugin\Block\SettingsTrayFormAnnotationNoneBlock;
+use Drupal\Tests\contextual\FunctionalJavascript\ContextualLinkClickTrait;
+use Drupal\Tests\system\FunctionalJavascript\OffCanvasTestBase;
 use Drupal\user\Entity\Role;
+use Drupal\user\RoleInterface;
 
 /**
  * Testing opening and saving block forms in the off-canvas dialog.
  *
  * @group settings_tray
  */
-class SettingsTrayBlockFormTest extends SettingsTrayTestBase {
+class SettingsTrayBlockFormTest extends OffCanvasTestBase {
+
+  use ContextualLinkClickTrait;
+
+  const TOOLBAR_EDIT_LINK_SELECTOR = '#toolbar-bar div.contextual-toolbar-tab button';
+
+  const LABEL_INPUT_SELECTOR = 'input[data-drupal-selector="edit-settings-label"]';
 
   /**
    * {@inheritdoc}
    */
   public static $modules = [
     'node',
+    'block',
+    'system',
+    'breakpoint',
+    'toolbar',
+    'contextual',
+    'settings_tray',
     'search',
+    'block_content',
     'settings_tray_test',
+    // Add test module to override CSS pointer-events properties because they
+    // cause test failures.
+    'settings_tray_test_css',
+    'settings_tray_test',
+    'settings_tray_override_test',
+    'menu_ui',
+    'menu_link_content',
   ];
 
   /**
@@ -28,6 +55,8 @@ class SettingsTrayBlockFormTest extends SettingsTrayTestBase {
   protected function setUp() {
     parent::setUp();
 
+    $this->createBlockContentType('basic', TRUE);
+    $block_content = $this->createBlockContent('Custom Block', 'basic', TRUE);
     $user = $this->createUser([
       'administer blocks',
       'access contextual links',
@@ -36,6 +65,7 @@ protected function setUp() {
       'search content',
     ]);
     $this->drupalLogin($user);
+    $this->placeBlock('block_content:' . $block_content->uuid(), ['id' => 'custom']);
   }
 
   /**
@@ -201,6 +231,160 @@ public function providerTestBlocks() {
   }
 
   /**
+   * Enables edit mode by pressing edit button in the toolbar.
+   */
+  protected function enableEditMode() {
+    $this->pressToolbarEditButton();
+    $this->assertEditModeEnabled();
+  }
+
+  /**
+   * Disables edit mode by pressing edit button in the toolbar.
+   */
+  protected function disableEditMode() {
+    $this->assertSession()->assertWaitOnAjaxRequest();
+    $this->pressToolbarEditButton();
+    $this->assertEditModeDisabled();
+  }
+
+  /**
+   * Asserts that Off-Canvas block form is valid.
+   */
+  protected function assertOffCanvasBlockFormIsValid() {
+    $web_assert = $this->assertSession();
+    // Confirm that Block title display label has been changed.
+    $web_assert->elementTextContains('css', '.form-item-settings-label-display label', 'Display block title');
+    // Confirm Block title label is shown if checkbox is checked.
+    if ($this->getSession()->getPage()->find('css', 'input[name="settings[label_display]"]')->isChecked()) {
+      $this->assertEquals($this->isLabelInputVisible(), TRUE, 'Label is visible');
+      $web_assert->elementTextContains('css', '.form-item-settings-label label', 'Block title');
+    }
+    else {
+      $this->assertEquals($this->isLabelInputVisible(), FALSE, 'Label is not visible');
+    }
+
+    // Check that common block form elements exist.
+    $web_assert->elementExists('css', static::LABEL_INPUT_SELECTOR);
+    $web_assert->elementExists('css', 'input[data-drupal-selector="edit-settings-label-display"]');
+    // Check that advanced block form elements do not exist.
+    $web_assert->elementNotExists('css', 'input[data-drupal-selector="edit-visibility-request-path-pages"]');
+    $web_assert->elementNotExists('css', 'select[data-drupal-selector="edit-region"]');
+  }
+
+  /**
+   * Open block form by clicking the element found with a css selector.
+   *
+   * @param string $block_selector
+   *   A css selector selects the block or an element within it.
+   * @param string $contextual_link_container
+   *   The element that contains the contextual links. If none provide the
+   *   $block_selector will be used.
+   */
+  protected function openBlockForm($block_selector, $contextual_link_container = '') {
+    if (!$contextual_link_container) {
+      $contextual_link_container = $block_selector;
+    }
+    // Ensure that contextual link element is present because this is required
+    // to open the off-canvas dialog in edit mode.
+    $contextual_link = $this->assertSession()->waitForElement('css', "$contextual_link_container .contextual-links a");
+    $this->assertNotEmpty($contextual_link);
+    // When page first loads Edit Mode is not triggered until first contextual
+    // link is added.
+    $this->assertElementVisibleAfterWait('css', '.dialog-off-canvas-main-canvas.js-settings-tray-edit-mode');
+    // Ensure that all other Ajax activity is completed.
+    $this->assertSession()->assertWaitOnAjaxRequest();
+    $this->click($block_selector);
+    $this->waitForOffCanvasToOpen();
+    $this->assertOffCanvasBlockFormIsValid();
+  }
+
+  /**
+   * Tests QuickEdit links behavior.
+   */
+  public function testQuickEditLinks() {
+    $this->container->get('module_installer')->install(['quickedit']);
+    $this->grantPermissions(Role::load(RoleInterface::AUTHENTICATED_ID), ['access in-place editing']);
+    $quick_edit_selector = '#quickedit-entity-toolbar';
+    $node_selector = '[data-quickedit-entity-id="node/1"]';
+    $body_selector = '[data-quickedit-field-id="node/1/body/en/full"]';
+    $web_assert = $this->assertSession();
+    // Create a Content type and two test nodes.
+    $this->createContentType(['type' => 'page']);
+    $auth_role = Role::load(Role::AUTHENTICATED_ID);
+    $this->grantPermissions($auth_role, [
+      'edit any page content',
+      'access content',
+    ]);
+    $node = $this->createNode(
+      [
+        'title' => 'Page One',
+        'type' => 'page',
+        'body' => [
+          [
+            'value' => 'Regular NODE body for the test.',
+            'format' => 'plain_text',
+          ],
+        ],
+      ]
+    );
+    $page = $this->getSession()->getPage();
+    $block_plugin = 'system_powered_by_block';
+
+    foreach ($this->getTestThemes() as $theme) {
+
+      $this->enableTheme($theme);
+
+      $block = $this->placeBlock($block_plugin);
+      $block_selector = $this->getBlockSelector($block);
+      // Load the same page twice.
+      foreach ([1, 2] as $page_load_times) {
+        $this->drupalGet('node/' . $node->id());
+        // The 2nd page load we should already be in edit mode.
+        if ($page_load_times == 1) {
+          $this->enableEditMode();
+        }
+        // In Edit mode clicking field should open QuickEdit toolbar.
+        $page->find('css', $body_selector)->click();
+        $this->assertElementVisibleAfterWait('css', $quick_edit_selector);
+
+        $this->disableEditMode();
+        // Exiting Edit mode should close QuickEdit toolbar.
+        $web_assert->elementNotExists('css', $quick_edit_selector);
+        // When not in Edit mode QuickEdit toolbar should not open.
+        $page->find('css', $body_selector)->click();
+        $web_assert->elementNotExists('css', $quick_edit_selector);
+        $this->enableEditMode();
+        $this->openBlockForm($block_selector);
+        $page->find('css', $body_selector)->click();
+        $this->assertElementVisibleAfterWait('css', $quick_edit_selector);
+        // Off-canvas dialog should be closed when opening QuickEdit toolbar.
+        $this->waitForOffCanvasToClose();
+
+        $this->openBlockForm($block_selector);
+        // QuickEdit toolbar should be closed when opening Off-canvas dialog.
+        $web_assert->elementNotExists('css', $quick_edit_selector);
+      }
+      // Check using contextual links to invoke QuickEdit and open the tray.
+      $this->drupalGet('node/' . $node->id());
+      $web_assert->assertWaitOnAjaxRequest();
+      $this->disableEditMode();
+      // Open QuickEdit toolbar before going into Edit mode.
+      $this->clickContextualLink($node_selector, "Quick edit");
+      $this->assertElementVisibleAfterWait('css', $quick_edit_selector);
+      // Open off-canvas and enter Edit mode via contextual link.
+      $this->clickContextualLink($block_selector, "Quick edit");
+      $this->waitForOffCanvasToOpen();
+      // QuickEdit toolbar should be closed when opening off-canvas dialog.
+      $web_assert->elementNotExists('css', $quick_edit_selector);
+      // Open QuickEdit toolbar via contextual link while in Edit mode.
+      $this->clickContextualLink($node_selector, "Quick edit", FALSE);
+      $this->waitForOffCanvasToClose();
+      $this->assertElementVisibleAfterWait('css', $quick_edit_selector);
+      $this->disableEditMode();
+    }
+  }
+
+  /**
    * Tests enabling and disabling Edit Mode.
    */
   public function testEditModeEnableDisable() {
@@ -236,6 +420,212 @@ public function testEditModeEnableDisable() {
   }
 
   /**
+   * Assert that edit mode has been properly enabled.
+   */
+  protected function assertEditModeEnabled() {
+    $web_assert = $this->assertSession();
+    // No contextual triggers should be hidden.
+    $web_assert->elementNotExists('css', '.contextual .trigger.visually-hidden');
+    // The toolbar edit button should read "Editing".
+    $web_assert->elementContains('css', static::TOOLBAR_EDIT_LINK_SELECTOR, 'Editing');
+    // The main canvas element should have the "js-settings-tray-edit-mode" class.
+    $web_assert->elementExists('css', '.dialog-off-canvas-main-canvas.js-settings-tray-edit-mode');
+  }
+
+  /**
+   * Assert that edit mode has been properly disabled.
+   */
+  protected function assertEditModeDisabled() {
+    $web_assert = $this->assertSession();
+    // Contextual triggers should be hidden.
+    $web_assert->elementExists('css', '.contextual .trigger.visually-hidden');
+    // No contextual triggers should be not hidden.
+    $web_assert->elementNotExists('css', '.contextual .trigger:not(.visually-hidden)');
+    // The toolbar edit button should read "Edit".
+    $web_assert->elementContains('css', static::TOOLBAR_EDIT_LINK_SELECTOR, 'Edit');
+    // The main canvas element should NOT have the "js-settings-tray-edit-mode"
+    // class.
+    $web_assert->elementNotExists('css', '.dialog-off-canvas-main-canvas.js-settings-tray-edit-mode');
+  }
+
+  /**
+   * Press the toolbar Edit button provided by the contextual module.
+   */
+  protected function pressToolbarEditButton() {
+    $this->assertSession()->waitForElement('css', '[data-contextual-id] .contextual-links a');
+    $edit_button = $this->getSession()
+      ->getPage()
+      ->find('css', static::TOOLBAR_EDIT_LINK_SELECTOR);
+    $edit_button->press();
+  }
+
+  /**
+   * Creates a custom block.
+   *
+   * @param bool|string $title
+   *   (optional) Title of block. When no value is given uses a random name.
+   *   Defaults to FALSE.
+   * @param string $bundle
+   *   (optional) Bundle name. Defaults to 'basic'.
+   * @param bool $save
+   *   (optional) Whether to save the block. Defaults to TRUE.
+   *
+   * @return \Drupal\block_content\Entity\BlockContent
+   *   Created custom block.
+   */
+  protected function createBlockContent($title = FALSE, $bundle = 'basic', $save = TRUE) {
+    $title = $title ?: $this->randomName();
+    $block_content = BlockContent::create([
+      'info' => $title,
+      'type' => $bundle,
+      'langcode' => 'en',
+      'body' => [
+        'value' => 'The name "llama" was adopted by European settlers from native Peruvians.',
+        'format' => 'plain_text',
+      ],
+    ]);
+    if ($block_content && $save === TRUE) {
+      $block_content->save();
+    }
+    return $block_content;
+  }
+
+  /**
+   * Creates a custom block type (bundle).
+   *
+   * @param string $label
+   *   The block type label.
+   * @param bool $create_body
+   *   Whether or not to create the body field.
+   *
+   * @return \Drupal\block_content\Entity\BlockContentType
+   *   Created custom block type.
+   */
+  protected function createBlockContentType($label, $create_body = FALSE) {
+    $bundle = BlockContentType::create([
+      'id' => $label,
+      'label' => $label,
+      'revision' => FALSE,
+    ]);
+    $bundle->save();
+    if ($create_body) {
+      block_content_add_body_field($bundle->id());
+    }
+    return $bundle;
+  }
+
+  /**
+   * Tests that contextual links in custom blocks are changed.
+   *
+   * "Quick edit" is quickedit.module link.
+   * "Quick edit settings" is settings_tray.module link.
+   */
+  public function testCustomBlockLinks() {
+    $this->container->get('module_installer')->install(['quickedit']);
+    $this->grantPermissions(Role::load(RoleInterface::AUTHENTICATED_ID), ['access in-place editing']);
+    $this->drupalGet('user');
+    $page = $this->getSession()->getPage();
+    $links = $page->findAll('css', "#block-custom .contextual-links li a");
+    $link_labels = [];
+    /** @var \Behat\Mink\Element\NodeElement $link */
+    foreach ($links as $link) {
+      $link_labels[$link->getAttribute('href')] = $link->getText();
+    }
+    $href = array_search('Quick edit', $link_labels);
+    $this->assertEquals('', $href);
+    $href = array_search('Quick edit settings', $link_labels);
+    $this->assertTrue(strstr($href, '/admin/structure/block/manage/custom/settings-tray?destination=user/2') !== FALSE);
+  }
+
+  /**
+   * Gets the block CSS selector.
+   *
+   * @param \Drupal\block\Entity\Block $block
+   *   The block.
+   *
+   * @return string
+   *   The CSS selector.
+   */
+  public function getBlockSelector(Block $block) {
+    return '#block-' . str_replace('_', '-', $block->id());
+  }
+
+  /**
+   * Determines if the label input is visible.
+   *
+   * @return bool
+   *   TRUE if the label is visible, FALSE if it is not.
+   */
+  protected function isLabelInputVisible() {
+    return $this->getSession()->getPage()->find('css', static::LABEL_INPUT_SELECTOR)->isVisible();
+  }
+
+  /**
+   * Tests access to block forms with related configuration is correct.
+   */
+  public function testBlockConfigAccess() {
+    $page = $this->getSession()->getPage();
+    $web_assert = $this->assertSession();
+
+    // Confirm that System Branding block does not expose Site Name field
+    // without permission.
+    $block = $this->placeBlock('system_branding_block');
+    $this->drupalGet('user');
+    $this->enableEditMode();
+    $this->openBlockForm($this->getBlockSelector($block));
+    // The site name field should not appear because the user doesn't have
+    // permission.
+    $web_assert->fieldNotExists('settings[site_information][site_name]');
+    $page->pressButton('Save Site branding');
+    $this->assertElementVisibleAfterWait('css', 'div:contains(The block configuration has been saved)');
+    $web_assert->assertWaitOnAjaxRequest();
+    // Confirm we did not save changes to the configuration.
+    $this->assertEquals('Drupal', \Drupal::configFactory()->getEditable('system.site')->get('name'));
+
+    $this->grantPermissions(Role::load(Role::AUTHENTICATED_ID), ['administer site configuration']);
+    $this->drupalGet('user');
+    $this->openBlockForm($this->getBlockSelector($block));
+    // The site name field should appear because the user does have permission.
+    $web_assert->fieldExists('settings[site_information][site_name]');
+
+    // Confirm that the Menu block does not expose menu configuration without
+    // permission.
+    // Add a link or the menu will not render.
+    $menu_link_content = MenuLinkContent::create([
+      'title' => 'This is on the menu',
+      'menu_name' => 'main',
+      'link' => ['uri' => 'route:<front>'],
+    ]);
+    $menu_link_content->save();
+    $this->assertNotEmpty($menu_link_content->isEnabled());
+    $menu_without_overrides = \Drupal::configFactory()->getEditable('system.menu.main')->get();
+    $block = $this->placeBlock('system_menu_block:main');
+    $this->drupalGet('user');
+    $web_assert->pageTextContains('This is on the menu');
+    $this->openBlockForm($this->getBlockSelector($block));
+    // Edit menu form should not appear because the user doesn't have
+    // permission.
+    $web_assert->pageTextNotContains('Edit menu');
+    $page->pressButton('Save Main navigation');
+    $this->assertElementVisibleAfterWait('css', 'div:contains(The block configuration has been saved)');
+    $web_assert->assertWaitOnAjaxRequest();
+    // Confirm we did not save changes to the menu or the menu link.
+    $this->assertEquals($menu_without_overrides, \Drupal::configFactory()->getEditable('system.menu.main')->get());
+    $menu_link_content = MenuLinkContent::load($menu_link_content->id());
+    $this->assertNotEmpty($menu_link_content->isEnabled());
+    // Confirm menu is still on the page.
+    $this->drupalGet('user');
+    $web_assert->pageTextContains('This is on the menu');
+
+    $this->grantPermissions(Role::load(Role::AUTHENTICATED_ID), ['administer menu']);
+    $this->drupalGet('user');
+    $web_assert->pageTextContains('This is on the menu');
+    $this->openBlockForm($this->getBlockSelector($block));
+    // Edit menu form should appear because the user does have permission.
+    $web_assert->pageTextContains('Edit menu');
+  }
+
+  /**
    * Test that validation errors appear in the off-canvas dialog.
    */
   public function testValidationMessages() {
@@ -268,4 +658,138 @@ protected function getTestThemes() {
     });
   }
 
+  /**
+   * Tests that blocks with configuration overrides are disabled.
+   */
+  public function testOverriddenBlock() {
+    $web_assert = $this->assertSession();
+    $page = $this->getSession()->getPage();
+    $overridden_block = $this->placeBlock('system_powered_by_block', [
+      'id' => 'overridden_block',
+      'label_display' => 1,
+      'label' => 'This will be overridden.',
+    ]);
+    $this->drupalGet('user');
+    $block_selector = $this->getBlockSelector($overridden_block);
+    // Confirm the block is marked as Settings Tray editable.
+    $this->assertEquals('editable', $page->find('css', $block_selector)->getAttribute('data-drupal-settingstray'));
+    // Confirm the label is not overridden.
+    $web_assert->elementContains('css', $block_selector, 'This will be overridden.');
+    $this->enableEditMode();
+    $this->openBlockForm($block_selector);
+
+    // Confirm the block Settings Tray functionality is disabled when block is
+    // overridden.
+    $this->container->get('state')->set('settings_tray_override_test.block', TRUE);
+    $overridden_block->save();
+    $block_config = \Drupal::configFactory()->getEditable('block.block.overridden_block');
+    $block_config->set('settings', $block_config->get('settings'))->save();
+
+    $this->drupalGet('user');
+    $this->assertOverriddenBlockDisabled($overridden_block, 'Now this will be the label.');
+
+    // Test a non-overridden block does show the form in the off-canvas dialog.
+    $block = $this->placeBlock('system_powered_by_block', [
+      'label_display' => 1,
+      'label' => 'Labely label',
+    ]);
+    $this->drupalGet('user');
+    $block_selector = $this->getBlockSelector($block);
+    // Confirm the block is marked as Settings Tray editable.
+    $this->assertEquals('editable', $page->find('css', $block_selector)->getAttribute('data-drupal-settingstray'));
+    // Confirm the label is not overridden.
+    $web_assert->elementContains('css', $block_selector, 'Labely label');
+    $this->openBlockForm($block_selector);
+  }
+
+  /**
+   * Test  blocks with overridden related configuration removed when overridden.
+   */
+  public function testOverriddenConfigurationRemoved() {
+    $web_assert = $this->assertSession();
+    $page = $this->getSession()->getPage();
+    $this->grantPermissions(Role::load(Role::AUTHENTICATED_ID), ['administer site configuration', 'administer menu']);
+
+    // Confirm the branding block does include 'site_information' section when
+    // the site name is not overridden.
+    $branding_block = $this->placeBlock('system_branding_block');
+    $this->drupalGet('user');
+    $this->enableEditMode();
+    $this->openBlockForm($this->getBlockSelector($branding_block));
+    $web_assert->fieldExists('settings[site_information][site_name]');
+    // Confirm the branding block does not include 'site_information' section
+    // when the site name is overridden.
+    $this->container->get('state')->set('settings_tray_override_test.site_name', TRUE);
+    $this->drupalGet('user');
+    $this->openBlockForm($this->getBlockSelector($branding_block));
+    $web_assert->fieldNotExists('settings[site_information][site_name]');
+    $page->pressButton('Save Site branding');
+    $this->assertElementVisibleAfterWait('css', 'div:contains(The block configuration has been saved)');
+    $web_assert->assertWaitOnAjaxRequest();
+    // Confirm we did not save changes to the configuration.
+    $this->assertEquals('Llama Fan Club', \Drupal::configFactory()->get('system.site')->get('name'));
+    $this->assertEquals('Drupal', \Drupal::configFactory()->getEditable('system.site')->get('name'));
+
+    // Add a link or the menu will not render.
+    $menu_link_content = MenuLinkContent::create([
+      'title' => 'This is on the menu',
+      'menu_name' => 'main',
+      'link' => ['uri' => 'route:<front>'],
+    ]);
+    $menu_link_content->save();
+    // Confirm the menu block does include menu section when the menu is not
+    // overridden.
+    $menu_block = $this->placeBlock('system_menu_block:main');
+    $web_assert->assertWaitOnAjaxRequest();
+    $this->drupalGet('user');
+    $web_assert->pageTextContains('This is on the menu');
+    $this->openBlockForm($this->getBlockSelector($menu_block));
+    $web_assert->elementExists('css', '#menu-overview');
+
+    // Confirm the menu block does not include menu section when the menu is
+    // overridden.
+    $this->container->get('state')->set('settings_tray_override_test.menu', TRUE);
+    $this->drupalGet('user');
+    $web_assert->pageTextContains('This is on the menu');
+    $menu_with_overrides = \Drupal::configFactory()->get('system.menu.main')->get();
+    $menu_without_overrides = \Drupal::configFactory()->getEditable('system.menu.main')->get();
+    $this->openBlockForm($this->getBlockSelector($menu_block));
+    $web_assert->elementNotExists('css', '#menu-overview');
+    $page->pressButton('Save Main navigation');
+    $this->assertElementVisibleAfterWait('css', 'div:contains(The block configuration has been saved)');
+    $web_assert->assertWaitOnAjaxRequest();
+    // Confirm we did not save changes to the configuration.
+    $this->assertEquals('Labely label', \Drupal::configFactory()->get('system.menu.main')->get('label'));
+    $this->assertEquals('Main navigation', \Drupal::configFactory()->getEditable('system.menu.main')->get('label'));
+    $this->assertEquals($menu_with_overrides, \Drupal::configFactory()->get('system.menu.main')->get());
+    $this->assertEquals($menu_without_overrides, \Drupal::configFactory()->getEditable('system.menu.main')->get());
+    $web_assert->pageTextContains('This is on the menu');
+  }
+  /**
+   * Asserts that an overridden block has Settings Tray disabled.
+   *
+   * @param \Drupal\block\Entity\Block $overridden_block
+   *   The overridden block.
+   * @param string $override_text
+   *   The override text that should appear in the block.
+   */
+  protected function assertOverriddenBlockDisabled(Block $overridden_block, $override_text) {
+    $web_assert = $this->assertSession();
+    $page = $this->getSession()->getPage();
+    $block_selector = $this->getBlockSelector($overridden_block);
+    $block_id = $overridden_block->id();
+    // Confirm the block does not have a quick edit link.
+    $contextual_links = $page->findAll('css', "$block_selector .contextual-links li a");
+    $this->assertNotEmpty($contextual_links);
+    foreach ($contextual_links as $link) {
+      $this->assertNotContains("/admin/structure/block/manage/$block_id/off-canvas", $link->getAttribute('href'));
+    }
+    // Confirm the block is not marked as Settings Tray editable.
+    $this->assertFalse($page->find('css', $block_selector)
+      ->hasAttribute('data-drupal-settingstray'));
+
+    // Confirm the text is actually overridden.
+    $web_assert->elementContains('css', $this->getBlockSelector($overridden_block), $override_text);
+  }
+
 }
diff --git a/core/modules/settings_tray/tests/src/FunctionalJavascript/SettingsTrayTestBase.php b/core/modules/settings_tray/tests/src/FunctionalJavascript/SettingsTrayTestBase.php
deleted file mode 100644
index 448fd21836..0000000000
--- a/core/modules/settings_tray/tests/src/FunctionalJavascript/SettingsTrayTestBase.php
+++ /dev/null
@@ -1,172 +0,0 @@
-<?php
-
-namespace Drupal\Tests\settings_tray\FunctionalJavascript;
-
-use Drupal\block\Entity\Block;
-use Drupal\Tests\contextual\FunctionalJavascript\ContextualLinkClickTrait;
-use Drupal\Tests\system\FunctionalJavascript\OffCanvasTestBase;
-
-/**
- * Base class for Settings Tray tests.
- */
-class SettingsTrayTestBase extends OffCanvasTestBase {
-
-  use ContextualLinkClickTrait;
-
-  /**
-   * {@inheritdoc}
-   */
-  public static $modules = [
-    'settings_tray',
-    // Add test module to override CSS pointer-events properties because they
-    // cause test failures.
-    'settings_tray_test_css',
-  ];
-
-  const TOOLBAR_EDIT_LINK_SELECTOR = '#toolbar-bar div.contextual-toolbar-tab button';
-
-  const LABEL_INPUT_SELECTOR = 'input[data-drupal-selector="edit-settings-label"]';
-
-  /**
-   * Open block form by clicking the element found with a css selector.
-   *
-   * @param string $block_selector
-   *   A css selector selects the block or an element within it.
-   * @param string $contextual_link_container
-   *   The element that contains the contextual links. If none provide the
-   *   $block_selector will be used.
-   */
-  protected function openBlockForm($block_selector, $contextual_link_container = '') {
-    if (!$contextual_link_container) {
-      $contextual_link_container = $block_selector;
-    }
-    // Ensure that contextual link element is present because this is required
-    // to open the off-canvas dialog in edit mode.
-    $contextual_link = $this->assertSession()->waitForElement('css', "$contextual_link_container .contextual-links a");
-    $this->assertNotEmpty($contextual_link);
-    // When page first loads Edit Mode is not triggered until first contextual
-    // link is added.
-    $this->assertElementVisibleAfterWait('css', '.dialog-off-canvas-main-canvas.js-settings-tray-edit-mode');
-    // Ensure that all other Ajax activity is completed.
-    $this->assertSession()->assertWaitOnAjaxRequest();
-    $this->click($block_selector);
-    $this->waitForOffCanvasToOpen();
-    $this->assertOffCanvasBlockFormIsValid();
-  }
-
-  /**
-   * Enables edit mode by pressing edit button in the toolbar.
-   */
-  protected function enableEditMode() {
-    $this->pressToolbarEditButton();
-    $this->assertEditModeEnabled();
-  }
-
-  /**
-   * Disables edit mode by pressing edit button in the toolbar.
-   */
-  protected function disableEditMode() {
-    $this->assertSession()->assertWaitOnAjaxRequest();
-    $this->pressToolbarEditButton();
-    $this->assertEditModeDisabled();
-  }
-
-  /**
-   * Press the toolbar Edit button provided by the contextual module.
-   */
-  protected function pressToolbarEditButton() {
-    $this->assertSession()->waitForElement('css', '[data-contextual-id] .contextual-links a');
-    $edit_button = $this->getSession()
-      ->getPage()
-      ->find('css', static::TOOLBAR_EDIT_LINK_SELECTOR);
-    $edit_button->press();
-  }
-
-  /**
-   * Assert that edit mode has been properly disabled.
-   */
-  protected function assertEditModeDisabled() {
-    $web_assert = $this->assertSession();
-    // Contextual triggers should be hidden.
-    $web_assert->elementExists('css', '.contextual .trigger.visually-hidden');
-    // No contextual triggers should be not hidden.
-    $web_assert->elementNotExists('css', '.contextual .trigger:not(.visually-hidden)');
-    // The toolbar edit button should read "Edit".
-    $web_assert->elementContains('css', static::TOOLBAR_EDIT_LINK_SELECTOR, 'Edit');
-    // The main canvas element should NOT have the "js-settings-tray-edit-mode"
-    // class.
-    $web_assert->elementNotExists('css', '.dialog-off-canvas-main-canvas.js-settings-tray-edit-mode');
-  }
-
-  /**
-   * Assert that edit mode has been properly enabled.
-   */
-  protected function assertEditModeEnabled() {
-    $web_assert = $this->assertSession();
-    // No contextual triggers should be hidden.
-    $web_assert->elementNotExists('css', '.contextual .trigger.visually-hidden');
-    // The toolbar edit button should read "Editing".
-    $web_assert->elementContains('css', static::TOOLBAR_EDIT_LINK_SELECTOR, 'Editing');
-    // The main canvas element should have the "js-settings-tray-edit-mode" class.
-    $web_assert->elementExists('css', '.dialog-off-canvas-main-canvas.js-settings-tray-edit-mode');
-  }
-
-  /**
-   * Asserts that Off-Canvas block form is valid.
-   */
-  protected function assertOffCanvasBlockFormIsValid() {
-    $web_assert = $this->assertSession();
-    // Confirm that Block title display label has been changed.
-    $web_assert->elementTextContains('css', '.form-item-settings-label-display label', 'Display block title');
-    // Confirm Block title label is shown if checkbox is checked.
-    if ($this->getSession()->getPage()->find('css', 'input[name="settings[label_display]"]')->isChecked()) {
-      $this->assertEquals($this->isLabelInputVisible(), TRUE, 'Label is visible');
-      $web_assert->elementTextContains('css', '.form-item-settings-label label', 'Block title');
-    }
-    else {
-      $this->assertEquals($this->isLabelInputVisible(), FALSE, 'Label is not visible');
-    }
-
-    // Check that common block form elements exist.
-    $web_assert->elementExists('css', static::LABEL_INPUT_SELECTOR);
-    $web_assert->elementExists('css', 'input[data-drupal-selector="edit-settings-label-display"]');
-    // Check that advanced block form elements do not exist.
-    $web_assert->elementNotExists('css', 'input[data-drupal-selector="edit-visibility-request-path-pages"]');
-    $web_assert->elementNotExists('css', 'select[data-drupal-selector="edit-region"]');
-  }
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function getTestThemes() {
-    // Remove 'seven' theme. Settings Tray "Edit Mode" will not work with
-    // 'seven' because it removes all contextual links.
-    return array_filter(parent::getTestThemes(), function ($theme) {
-      return $theme !== 'seven';
-    });
-  }
-
-  /**
-   * Gets the block CSS selector.
-   *
-   * @param \Drupal\block\Entity\Block $block
-   *   The block.
-   *
-   * @return string
-   *   The CSS selector.
-   */
-  public function getBlockSelector(Block $block) {
-    return '#block-' . str_replace('_', '-', $block->id());
-  }
-
-  /**
-   * Determines if the label input is visible.
-   *
-   * @return bool
-   *   TRUE if the label is visible, FALSE if it is not.
-   */
-  protected function isLabelInputVisible() {
-    return $this->getSession()->getPage()->find('css', static::LABEL_INPUT_SELECTOR)->isVisible();
-  }
-
-}
diff --git a/core/modules/shortcut/src/Entity/Shortcut.php b/core/modules/shortcut/src/Entity/Shortcut.php
index 92e59fb53f..bba393acf1 100644
--- a/core/modules/shortcut/src/Entity/Shortcut.php
+++ b/core/modules/shortcut/src/Entity/Shortcut.php
@@ -18,13 +18,6 @@
  * @ContentEntityType(
  *   id = "shortcut",
  *   label = @Translation("Shortcut link"),
- *   label_collection = @Translation("Shortcut links"),
- *   label_singular = @Translation("shortcut link"),
- *   label_plural = @Translation("shortcut links"),
- *   label_count = @PluralTranslation(
- *     singular = "@count shortcut link",
- *     plural = "@count shortcut links",
- *   ),
  *   bundle_label = @Translation("Shortcut set"),
  *   handlers = {
  *     "access" = "Drupal\shortcut\ShortcutAccessControlHandler",
diff --git a/core/modules/shortcut/src/Entity/ShortcutSet.php b/core/modules/shortcut/src/Entity/ShortcutSet.php
index 819f6475dd..3d3815db79 100644
--- a/core/modules/shortcut/src/Entity/ShortcutSet.php
+++ b/core/modules/shortcut/src/Entity/ShortcutSet.php
@@ -12,13 +12,6 @@
  * @ConfigEntityType(
  *   id = "shortcut_set",
  *   label = @Translation("Shortcut set"),
- *   label_collection = @Translation("Shortcut sets"),
- *   label_singular = @Translation("shortcut set"),
- *   label_plural = @Translation("shortcut sets"),
- *   label_count = @PluralTranslation(
- *     singular = "@count shortcut set",
- *     plural = "@count shortcut sets",
- *   ),
  *   handlers = {
  *     "storage" = "Drupal\shortcut\ShortcutSetStorage",
  *     "access" = "Drupal\shortcut\ShortcutSetAccessControlHandler",
diff --git a/core/modules/shortcut/tests/src/Functional/ShortcutTranslationUITest.php b/core/modules/shortcut/tests/src/Functional/ShortcutTranslationUITest.php
index a1e01e64e5..83bf47a495 100644
--- a/core/modules/shortcut/tests/src/Functional/ShortcutTranslationUITest.php
+++ b/core/modules/shortcut/tests/src/Functional/ShortcutTranslationUITest.php
@@ -2,7 +2,7 @@
 
 namespace Drupal\Tests\shortcut\Functional;
 
-use Drupal\Tests\content_translation\Functional\ContentTranslationUITestBase;
+use Drupal\content_translation\Tests\ContentTranslationUITestBase;
 use Drupal\Core\Entity\EntityChangedInterface;
 use Drupal\Core\Language\Language;
 
diff --git a/core/modules/statistics/migrations/statistics_node_translation_counter.yml b/core/modules/statistics/migrations/statistics_node_translation_counter.yml
deleted file mode 100644
index bf8cde4092..0000000000
--- a/core/modules/statistics/migrations/statistics_node_translation_counter.yml
+++ /dev/null
@@ -1,34 +0,0 @@
-id: statistics_node_translation_counter
-label: Node translation counter
-migration_tags:
-  - Drupal 6
-  - Drupal 7
-  - Content
-source:
-  plugin: node_counter
-process:
-  nid:
-    -
-      plugin: migration_lookup
-      migration:
-        - d6_node_translation
-        - d7_node_translation
-      source: nid
-    -
-      plugin: skip_on_empty
-      method: row
-    -
-      plugin: extract
-      index:
-        - 0
-  totalcount: totalcount
-  daycount: daycount
-  timestamp: timestamp
-destination:
-  plugin: node_counter
-migration_dependencies:
-  required:
-    - statistics_node_counter
-  optional:
-    - d6_node_translation
-    - d7_node_translation
diff --git a/core/modules/statistics/src/Plugin/migrate/destination/NodeCounter.php b/core/modules/statistics/src/Plugin/migrate/destination/NodeCounter.php
index eee23bff5f..e9771f3d98 100644
--- a/core/modules/statistics/src/Plugin/migrate/destination/NodeCounter.php
+++ b/core/modules/statistics/src/Plugin/migrate/destination/NodeCounter.php
@@ -81,24 +81,15 @@ public function fields(MigrationInterface $migration = NULL) {
    * {@inheritdoc}
    */
   public function import(Row $row, array $old_destination_id_values = []) {
-    $nid = $row->getDestinationProperty('nid');
-    $daycount = $row->getDestinationProperty('daycount');
-    $totalcount = $row->getDestinationProperty('totalcount');
-    $timestamp = $row->getDestinationProperty('timestamp');
-
     $this->connection
-      ->merge('node_counter')
-      ->key('nid', $nid)
+      ->insert('node_counter')
       ->fields([
-        'daycount' => $daycount,
-        'totalcount' => $totalcount,
-        'timestamp' => $timestamp,
+        'nid' => $row->getDestinationProperty('nid'),
+        'daycount' => $row->getDestinationProperty('daycount'),
+        'totalcount' => $row->getDestinationProperty('totalcount'),
+        'timestamp' => $row->getDestinationProperty('timestamp'),
       ])
-      ->expression('daycount', 'daycount + :daycount', [':daycount' => $daycount])
-      ->expression('totalcount', 'totalcount + :totalcount', [':totalcount' => $totalcount])
-      ->expression('timestamp', 'CASE WHEN timestamp > :timestamp THEN timestamp ELSE :timestamp END', [':timestamp' => $timestamp])
       ->execute();
-
     return [$row->getDestinationProperty('nid')];
   }
 
diff --git a/core/modules/statistics/tests/src/Kernel/Migrate/d6/MigrateNodeCounterTest.php b/core/modules/statistics/tests/src/Kernel/Migrate/d6/MigrateNodeCounterTest.php
index ea917f51a4..ebd7766386 100644
--- a/core/modules/statistics/tests/src/Kernel/Migrate/d6/MigrateNodeCounterTest.php
+++ b/core/modules/statistics/tests/src/Kernel/Migrate/d6/MigrateNodeCounterTest.php
@@ -15,8 +15,6 @@ class MigrateNodeCounterTest extends MigrateDrupal6TestBase {
    * {@inheritdoc}
    */
   public static $modules = [
-    'content_translation',
-    'language',
     'menu_ui',
     'node',
     'statistics',
@@ -31,20 +29,16 @@ protected function setUp() {
 
     $this->installEntitySchema('node');
     $this->installConfig('node');
-    $this->installSchema('node', ['node_access']);
     $this->installSchema('statistics', ['node_counter']);
 
     $this->executeMigrations([
-      'language',
       'd6_filter_format',
       'd6_user_role',
       'd6_node_settings',
       'd6_user',
       'd6_node_type',
-      'd6_language_content_settings',
       'd6_node',
-      'd6_node_translation',
-      'statistics_node_counter',
+      'statistics_node_counter'
     ]);
   }
 
@@ -57,13 +51,6 @@ public function testStatisticsSettings() {
     $this->assertNodeCounter(3, 1, 0, 1471428153);
     $this->assertNodeCounter(4, 1, 1, 1478755275);
     $this->assertNodeCounter(5, 1, 1, 1478755314);
-    $this->assertNodeCounter(10, 5, 1, 1521137459);
-    $this->assertNodeCounter(12, 3, 0, 1521137469);
-
-    // Tests that translated node counts include all translation counts.
-    $this->executeMigration('statistics_node_translation_counter');
-    $this->assertNodeCounter(10, 8, 2, 1521137463);
-    $this->assertNodeCounter(12, 5, 1, 1521137470);
   }
 
   /**
diff --git a/core/modules/statistics/tests/src/Kernel/Migrate/d7/MigrateNodeCounterTest.php b/core/modules/statistics/tests/src/Kernel/Migrate/d7/MigrateNodeCounterTest.php
index 9a7317fada..8cdb9e7073 100644
--- a/core/modules/statistics/tests/src/Kernel/Migrate/d7/MigrateNodeCounterTest.php
+++ b/core/modules/statistics/tests/src/Kernel/Migrate/d7/MigrateNodeCounterTest.php
@@ -15,8 +15,6 @@ class MigrateNodeCounterTest extends MigrateDrupal7TestBase {
    * {@inheritdoc}
    */
   public static $modules = [
-    'content_translation',
-    'language',
     'menu_ui',
     'node',
     'statistics',
@@ -31,18 +29,14 @@ protected function setUp() {
 
     $this->installEntitySchema('node');
     $this->installConfig('node');
-    $this->installSchema('node', ['node_access']);
     $this->installSchema('statistics', ['node_counter']);
 
     $this->executeMigrations([
-      'language',
       'd7_user_role',
       'd7_user',
       'd7_node_type',
-      'd7_language_content_settings',
       'd7_node',
-      'd7_node_translation',
-      'statistics_node_counter',
+      'statistics_node_counter'
     ]);
   }
 
@@ -53,11 +47,6 @@ public function testStatisticsSettings() {
     $this->assertNodeCounter(1, 2, 0, 1421727536);
     $this->assertNodeCounter(2, 1, 0, 1471428059);
     $this->assertNodeCounter(4, 1, 1, 1478755275);
-
-    // Tests that translated node counts include all translation counts.
-    $this->executeMigration('statistics_node_translation_counter');
-    $this->assertNodeCounter(2, 2, 0, 1471428153);
-    $this->assertNodeCounter(4, 2, 2, 1478755314);
   }
 
   /**
diff --git a/core/modules/system/src/Entity/Action.php b/core/modules/system/src/Entity/Action.php
index 964a64e97e..a4128384e2 100644
--- a/core/modules/system/src/Entity/Action.php
+++ b/core/modules/system/src/Entity/Action.php
@@ -15,13 +15,6 @@
  * @ConfigEntityType(
  *   id = "action",
  *   label = @Translation("Action"),
- *   label_collection = @Translation("Actions"),
- *   label_singular = @Translation("action"),
- *   label_plural = @Translation("actions"),
- *   label_count = @PluralTranslation(
- *     singular = "@count action",
- *     plural = "@count actions",
- *   ),
  *   admin_permission = "administer actions",
  *   entity_keys = {
  *     "id" = "id",
diff --git a/core/modules/system/src/Entity/Menu.php b/core/modules/system/src/Entity/Menu.php
index 9547d42da2..e7fbb47fbf 100644
--- a/core/modules/system/src/Entity/Menu.php
+++ b/core/modules/system/src/Entity/Menu.php
@@ -11,13 +11,6 @@
  * @ConfigEntityType(
  *   id = "menu",
  *   label = @Translation("Menu"),
- *   label_collection = @Translation("Menus"),
- *   label_singular = @Translation("menu"),
- *   label_plural = @Translation("menus"),
- *   label_count = @PluralTranslation(
- *     singular = "@count menu",
- *     plural = "@count menus",
- *   ),
  *   handlers = {
  *     "access" = "Drupal\system\MenuAccessControlHandler"
  *   },
diff --git a/core/modules/system/src/Tests/Entity/EntityUnitTestBase.php b/core/modules/system/src/Tests/Entity/EntityUnitTestBase.php
index 9997ca5650..5d7dc6fd5d 100644
--- a/core/modules/system/src/Tests/Entity/EntityUnitTestBase.php
+++ b/core/modules/system/src/Tests/Entity/EntityUnitTestBase.php
@@ -2,8 +2,6 @@
 
 namespace Drupal\system\Tests\Entity;
 
-@trigger_error(__FILE__ . ' is deprecated in Drupal 8.1.0 and will be removed before Drupal 9.0.0. Use \Drupal\KernelTests\Core\Entity\EntityKernelTestBase instead.', E_USER_DEPRECATED);
-
 use Drupal\simpletest\KernelTestBase;
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\user\Entity\Role;
@@ -12,7 +10,7 @@
 /**
  * Defines an abstract test base for entity unit tests.
  *
- * @deprecated in Drupal 8.1.0, will be removed before Drupal 9.0.0. Use
+ * @deprecated in Drupal 8.1.x, will be removed before Drupal 8.2.x. Use
  *   \Drupal\KernelTests\Core\Entity\EntityKernelTestBase instead.
  */
 abstract class EntityUnitTestBase extends KernelTestBase {
diff --git a/core/modules/system/tests/src/Functional/Module/PrepareUninstallTest.php b/core/modules/system/tests/src/Functional/Module/PrepareUninstallTest.php
index cf57770972..86d06e35ee 100644
--- a/core/modules/system/tests/src/Functional/Module/PrepareUninstallTest.php
+++ b/core/modules/system/tests/src/Functional/Module/PrepareUninstallTest.php
@@ -78,15 +78,15 @@ public function testUninstall() {
       $this->assertText($this->terms[$term_count - $i]->label());
     }
     $term_count = $term_count - 10;
-    $this->assertText("And $term_count more taxonomy terms.");
+    $this->assertText("And $term_count more taxonomy term entities.");
     $this->assertText('This action cannot be undone.');
     $this->assertText('Make a backup of your database if you want to be able to restore these items.');
-    $this->drupalPostForm(NULL, [], t('Delete all taxonomy terms'));
+    $this->drupalPostForm(NULL, [], t('Delete all taxonomy term entities'));
 
     // Check that we are redirected to the uninstall page and data has been
     // removed.
     $this->assertUrl('admin/modules/uninstall', []);
-    $this->assertText('All taxonomy terms have been deleted.');
+    $this->assertText('All taxonomy term entities have been deleted.');
 
     // Check that there is no more data to be deleted, Taxonomy is ready to be
     // uninstalled.
diff --git a/core/modules/system/tests/src/Functional/Module/RequiredTest.php b/core/modules/system/tests/src/Functional/Module/RequiredTest.php
new file mode 100644
index 0000000000..00c7cbe703
--- /dev/null
+++ b/core/modules/system/tests/src/Functional/Module/RequiredTest.php
@@ -0,0 +1,32 @@
+<?php
+
+namespace Drupal\Tests\system\Functional\Module;
+
+/**
+ * Attempt disabling of required modules.
+ *
+ * @group Module
+ */
+class RequiredTest extends ModuleTestBase {
+  /**
+   * Assert that core required modules cannot be disabled.
+   */
+  public function testDisableRequired() {
+    $module_info = system_get_info('module');
+    $this->drupalGet('admin/modules');
+    foreach ($module_info as $module => $info) {
+      // Check to make sure the checkbox for each required module is disabled
+      // and checked (or absent from the page if the module is also hidden).
+      if (!empty($info['required'])) {
+        $field_name = 'modules[' . $module . '][enable]';
+        if (empty($info['hidden'])) {
+          $this->assertFieldByXPath("//input[@name='$field_name' and @disabled='disabled' and @checked='checked']", '', format_string('Field @name was disabled and checked.', ['@name' => $field_name]));
+        }
+        else {
+          $this->assertNoFieldByName($field_name);
+        }
+      }
+    }
+  }
+
+}
diff --git a/core/modules/system/tests/src/Functional/Module/UninstallTest.php b/core/modules/system/tests/src/Functional/Module/UninstallTest.php
index 41df4172c2..2b17b8fcf6 100644
--- a/core/modules/system/tests/src/Functional/Module/UninstallTest.php
+++ b/core/modules/system/tests/src/Functional/Module/UninstallTest.php
@@ -57,17 +57,6 @@ public function testUninstallPage() {
     $this->drupalGet('admin/modules/uninstall');
     $this->assertTitle(t('Uninstall') . ' | Drupal');
 
-    foreach (\Drupal::service('extension.list.module')->getAllInstalledInfo() as $module => $info) {
-      $field_name = "uninstall[$module]";
-      if (!empty($info['required'])) {
-        // A required module should not be listed on the uninstall page.
-        $this->assertSession()->fieldNotExists($field_name);
-      }
-      else {
-        $this->assertSession()->fieldExists($field_name);
-      }
-    }
-
     // Be sure labels are rendered properly.
     // @see regression https://www.drupal.org/node/2512106
     $this->assertRaw('<label for="edit-uninstall-node" class="module-name table-filter-text-source">Node</label>');
diff --git a/core/modules/system/tests/src/FunctionalJavascript/OffCanvasTest.php b/core/modules/system/tests/src/FunctionalJavascript/OffCanvasTest.php
index 0cadecee5b..567919c3ee 100644
--- a/core/modules/system/tests/src/FunctionalJavascript/OffCanvasTest.php
+++ b/core/modules/system/tests/src/FunctionalJavascript/OffCanvasTest.php
@@ -5,7 +5,7 @@
 /**
  * Tests the off-canvas dialog functionality.
  *
- * @group system
+ * @group settings_tray
  */
 class OffCanvasTest extends OffCanvasTestBase {
 
diff --git a/core/modules/taxonomy/src/Entity/Term.php b/core/modules/taxonomy/src/Entity/Term.php
index 51e295a517..66ef3f1d72 100644
--- a/core/modules/taxonomy/src/Entity/Term.php
+++ b/core/modules/taxonomy/src/Entity/Term.php
@@ -15,13 +15,6 @@
  * @ContentEntityType(
  *   id = "taxonomy_term",
  *   label = @Translation("Taxonomy term"),
- *   label_collection = @Translation("Taxonomy terms"),
- *   label_singular = @Translation("taxonomy term"),
- *   label_plural = @Translation("taxonomy terms"),
- *   label_count = @PluralTranslation(
- *     singular = "@count taxonomy term",
- *     plural = "@count taxonomy terms",
- *   ),
  *   bundle_label = @Translation("Vocabulary"),
  *   handlers = {
  *     "storage" = "Drupal\taxonomy\TermStorage",
diff --git a/core/modules/taxonomy/src/Form/OverviewTerms.php b/core/modules/taxonomy/src/Form/OverviewTerms.php
index 8c0f390d3b..df80a47035 100644
--- a/core/modules/taxonomy/src/Form/OverviewTerms.php
+++ b/core/modules/taxonomy/src/Form/OverviewTerms.php
@@ -241,11 +241,6 @@ public function buildForm(array $form, FormStateInterface $form_state, Vocabular
     $form['terms'] = [
       '#type' => 'table',
       '#empty' => $empty,
-      '#header' => [
-        'term' => $this->t('Name'),
-        'operations' => $this->t('Operations'),
-        'weight' => $this->t('Weight'),
-      ],
       '#attributes' => [
         'id' => 'taxonomy',
       ],
@@ -256,11 +251,6 @@ public function buildForm(array $form, FormStateInterface $form_state, Vocabular
     // all terms.
     $change_weight_access = AccessResult::allowed();
     foreach ($current_page as $key => $term) {
-      $form['terms'][$key] = [
-        'term' => [],
-        'operations' => [],
-        'weight' => [],
-      ];
       /** @var $term \Drupal\Core\Entity\EntityInterface */
       $term = $this->entityManager->getTranslationFromContext($term);
       $form['terms'][$key]['#term'] = $term;
@@ -354,8 +344,11 @@ public function buildForm(array $form, FormStateInterface $form_state, Vocabular
       $row_position++;
     }
 
+    $form['terms']['#header'] = [$this->t('Name')];
+
     $this->renderer->addCacheableDependency($form['terms'], $change_weight_access);
     if ($change_weight_access->isAllowed()) {
+      $form['terms']['#header'][] = $this->t('Weight');
       if ($parent_fields) {
         $form['terms']['#tabledrag'][] = [
           'action' => 'match',
@@ -384,6 +377,8 @@ public function buildForm(array $form, FormStateInterface $form_state, Vocabular
       ];
     }
 
+    $form['terms']['#header'][] = $this->t('Operations');
+
     if (($taxonomy_vocabulary->getHierarchy() !== VocabularyInterface::HIERARCHY_MULTIPLE && count($tree) > 1) && $change_weight_access->isAllowed()) {
       $form['actions'] = ['#type' => 'actions', '#tree' => FALSE];
       $form['actions']['submit'] = [
diff --git a/core/modules/taxonomy/src/TermInterface.php b/core/modules/taxonomy/src/TermInterface.php
index 4cde8f45f6..3087a56ecb 100644
--- a/core/modules/taxonomy/src/TermInterface.php
+++ b/core/modules/taxonomy/src/TermInterface.php
@@ -57,7 +57,7 @@ public function getName();
   /**
    * Sets the name of the term.
    *
-   * @param string $name
+   * @param int $name
    *   The term's name.
    *
    * @return $this
diff --git a/core/modules/taxonomy/src/VocabularyListBuilder.php b/core/modules/taxonomy/src/VocabularyListBuilder.php
index 645ebd161d..e7c021b4d7 100644
--- a/core/modules/taxonomy/src/VocabularyListBuilder.php
+++ b/core/modules/taxonomy/src/VocabularyListBuilder.php
@@ -123,7 +123,7 @@ public function buildHeader() {
     $header['label'] = t('Vocabulary name');
     $header['description'] = t('Description');
 
-    if ($this->currentUser->hasPermission('administer vocabularies') && !empty($this->weightKey)) {
+    if ($this->currentUser->hasPermission('administer vocabularies')) {
       $header['weight'] = t('Weight');
     }
 
diff --git a/core/modules/taxonomy/tests/src/Functional/VocabularyPermissionsTest.php b/core/modules/taxonomy/tests/src/Functional/VocabularyPermissionsTest.php
index bb94a96da6..989398e62f 100644
--- a/core/modules/taxonomy/tests/src/Functional/VocabularyPermissionsTest.php
+++ b/core/modules/taxonomy/tests/src/Functional/VocabularyPermissionsTest.php
@@ -83,7 +83,6 @@ public function testTaxonomyVocabularyOverviewPermissions() {
     $assert_session->linkExists('Add term');
     $assert_session->buttonExists('Save');
     $assert_session->pageTextContains('Weight');
-    $assert_session->fieldExists('Weight');
     $assert_session->pageTextContains($edit_help_text);
 
     // Visit vocabulary overview without terms. 'Add term' should be shown.
@@ -109,8 +108,7 @@ public function testTaxonomyVocabularyOverviewPermissions() {
     $assert_session->linkNotExists('Edit');
     $assert_session->linkNotExists('Delete');
     $assert_session->buttonNotExists('Save');
-    $assert_session->pageTextContains('Weight');
-    $assert_session->fieldNotExists('Weight');
+    $assert_session->pageTextNotContains('Weight');
     $assert_session->linkNotExists('Add term');
     $assert_session->pageTextContains($no_edit_help_text);
 
@@ -134,7 +132,6 @@ public function testTaxonomyVocabularyOverviewPermissions() {
     $assert_session->linkNotExists('Delete');
     $assert_session->buttonExists('Save');
     $assert_session->pageTextContains('Weight');
-    $assert_session->fieldExists('Weight');
     $assert_session->linkNotExists('Add term');
     $assert_session->pageTextContains($edit_help_text);
 
@@ -157,8 +154,7 @@ public function testTaxonomyVocabularyOverviewPermissions() {
     $assert_session->linkExists('Delete');
     $assert_session->linkNotExists('Add term');
     $assert_session->buttonNotExists('Save');
-    $assert_session->pageTextContains('Weight');
-    $assert_session->fieldNotExists('Weight');
+    $assert_session->pageTextNotContains('Weight');
     $assert_session->pageTextContains($no_edit_help_text);
 
     // Visit vocabulary overview without terms. 'Add term' should not be shown.
@@ -183,7 +179,6 @@ public function testTaxonomyVocabularyOverviewPermissions() {
     $assert_session->linkNotExists('Add term');
     $assert_session->buttonExists('Save');
     $assert_session->pageTextContains('Weight');
-    $assert_session->fieldExists('Weight');
     $assert_session->pageTextContains($edit_help_text);
 
     // Visit vocabulary overview without terms. 'Add term' should not be shown.
@@ -206,8 +201,7 @@ public function testTaxonomyVocabularyOverviewPermissions() {
     $assert_session->linkNotExists('Delete');
     $assert_session->linkExists('Add term');
     $assert_session->buttonNotExists('Save');
-    $assert_session->pageTextContains('Weight');
-    $assert_session->fieldNotExists('Weight');
+    $assert_session->pageTextNotContains('Weight');
     $assert_session->pageTextContains($no_edit_help_text);
 
     // Visit vocabulary overview without terms. 'Add term' should not be shown.
diff --git a/core/modules/tour/src/Entity/Tour.php b/core/modules/tour/src/Entity/Tour.php
index feca0585b0..9a8e1666ac 100644
--- a/core/modules/tour/src/Entity/Tour.php
+++ b/core/modules/tour/src/Entity/Tour.php
@@ -12,13 +12,6 @@
  * @ConfigEntityType(
  *   id = "tour",
  *   label = @Translation("Tour"),
- *   label_collection = @Translation("Tours"),
- *   label_singular = @Translation("tour"),
- *   label_plural = @Translation("tours"),
- *   label_count = @PluralTranslation(
- *     singular = "@count tour",
- *     plural = "@count tours",
- *   ),
  *   handlers = {
  *     "view_builder" = "Drupal\tour\TourViewBuilder",
  *     "access" = "Drupal\tour\TourAccessControlHandler",
diff --git a/core/modules/user/src/Entity/Role.php b/core/modules/user/src/Entity/Role.php
index 3512fee03e..0226f94b78 100644
--- a/core/modules/user/src/Entity/Role.php
+++ b/core/modules/user/src/Entity/Role.php
@@ -12,13 +12,6 @@
  * @ConfigEntityType(
  *   id = "user_role",
  *   label = @Translation("Role"),
- *   label_collection = @Translation("Roles"),
- *   label_singular = @Translation("role"),
- *   label_plural = @Translation("roles"),
- *   label_count = @PluralTranslation(
- *     singular = "@count role",
- *     plural = "@count roles",
- *   ),
  *   handlers = {
  *     "storage" = "Drupal\user\RoleStorage",
  *     "access" = "Drupal\user\RoleAccessControlHandler",
diff --git a/core/modules/user/src/Entity/User.php b/core/modules/user/src/Entity/User.php
index 979819fc8c..54439cff93 100644
--- a/core/modules/user/src/Entity/User.php
+++ b/core/modules/user/src/Entity/User.php
@@ -22,13 +22,6 @@
  * @ContentEntityType(
  *   id = "user",
  *   label = @Translation("User"),
- *   label_collection = @Translation("Users"),
- *   label_singular = @Translation("user"),
- *   label_plural = @Translation("users"),
- *   label_count = @PluralTranslation(
- *     singular = "@count user",
- *     plural = "@count users",
- *   ),
  *   handlers = {
  *     "storage" = "Drupal\user\UserStorage",
  *     "storage_schema" = "Drupal\user\UserStorageSchema",
diff --git a/core/modules/views/src/Entity/View.php b/core/modules/views/src/Entity/View.php
index 3877cc2921..44007eb7fc 100644
--- a/core/modules/views/src/Entity/View.php
+++ b/core/modules/views/src/Entity/View.php
@@ -19,14 +19,6 @@
  * @ConfigEntityType(
  *   id = "view",
  *   label = @Translation("View", context = "View entity type"),
- *   label_collection = @Translation("Views", context = "View entity type"),
- *   label_singular = @Translation("view", context = "View entity type"),
- *   label_plural = @Translation("views", context = "View entity type"),
- *   label_count = @PluralTranslation(
- *     singular = "@count view",
- *     plural = "@count views",
- *     context = "View entity type",
- *   ),
  *   admin_permission = "administer views",
  *   entity_keys = {
  *     "id" = "id",
diff --git a/core/modules/views/src/Form/ViewsExposedForm.php b/core/modules/views/src/Form/ViewsExposedForm.php
index 125cd1fe48..459708a7bc 100644
--- a/core/modules/views/src/Form/ViewsExposedForm.php
+++ b/core/modules/views/src/Form/ViewsExposedForm.php
@@ -183,7 +183,7 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
           //   https://www.drupal.org/node/342316 is resolved.
           $checked = Checkboxes::getCheckedCheckboxes($value);
           foreach ($checked as $option_id) {
-            $view->exposed_raw_input[$key][] = $value[$option_id];
+            $view->exposed_raw_input[$option_id] = $value[$option_id];
           }
         }
         else {
diff --git a/core/modules/views/tests/src/Kernel/Plugin/ExposedFormRenderTest.php b/core/modules/views/tests/src/Kernel/Plugin/ExposedFormRenderTest.php
index aa7b3cb335..6767fffe3c 100644
--- a/core/modules/views/tests/src/Kernel/Plugin/ExposedFormRenderTest.php
+++ b/core/modules/views/tests/src/Kernel/Plugin/ExposedFormRenderTest.php
@@ -3,12 +3,11 @@
 namespace Drupal\Tests\views\Kernel\Plugin;
 
 use Drupal\Component\Utility\Html;
-use Drupal\node\Entity\NodeType;
 use Drupal\Tests\views\Kernel\ViewsKernelTestBase;
 use Drupal\views\Views;
 
 /**
- * Tests the exposed form.
+ * Tests the exposed form markup.
  *
  * @group views
  * @see \Drupal\views_test_data\Plugin\views\display_extender\DisplayExtenderTest
@@ -53,92 +52,4 @@ public function testExposedFormRender() {
     $this->assertEqual(count($result), 1, 'Filter description was found.');
   }
 
-  /**
-   * Tests the exposed form raw input.
-   */
-  public function testExposedFormRawInput() {
-    $node_type = NodeType::create(['type' => 'article']);
-    $node_type->save();
-
-    $view = Views::getView('test_exposed_form_buttons');
-    $view->setDisplay();
-    $view->displayHandlers->get('default')->overrideOption('filters', [
-      'type' => [
-        'exposed' => TRUE,
-        'field' => 'type',
-        'id' => 'type',
-        'table' => 'node_field_data',
-        'plugin_id' => 'in_operator',
-        'entity_type' => 'node',
-        'entity_field' => 'type',
-        'expose' => [
-          'identifier' => 'type',
-          'label' => 'Content: Type',
-          'operator_id' => 'type_op',
-          'reduce' => FALSE,
-          'multiple' => FALSE,
-        ],
-      ],
-      'type_with_default_value' => [
-        'exposed' => TRUE,
-        'field' => 'type',
-        'id' => 'type_with_default_value',
-        'table' => 'node_field_data',
-        'plugin_id' => 'in_operator',
-        'entity_type' => 'node',
-        'entity_field' => 'type',
-        'value' => ['article', 'article'],
-        'expose' => [
-          'identifier' => 'type_with_default_value',
-          'label' => 'Content: Type with value',
-          'operator_id' => 'type_op',
-          'reduce' => FALSE,
-          'multiple' => FALSE,
-        ],
-      ],
-      'multiple_types' => [
-        'exposed' => TRUE,
-        'field' => 'type',
-        'id' => 'multiple_types',
-        'table' => 'node_field_data',
-        'plugin_id' => 'in_operator',
-        'entity_type' => 'node',
-        'entity_field' => 'type',
-        'expose' => [
-          'identifier' => 'multiple_types',
-          'label' => 'Content: Type (multiple)',
-          'operator_id' => 'type_op',
-          'reduce' => FALSE,
-          'multiple' => TRUE,
-        ],
-      ],
-      'multiple_types_with_default_value' => [
-        'exposed' => TRUE,
-        'field' => 'type',
-        'id' => 'multiple_types_with_default_value',
-        'table' => 'node_field_data',
-        'plugin_id' => 'in_operator',
-        'entity_type' => 'node',
-        'entity_field' => 'type',
-        'value' => ['article', 'article'],
-        'expose' => [
-          'identifier' => 'multiple_types_with_default_value',
-          'label' => 'Content: Type with default value (multiple)',
-          'operator_id' => 'type_op',
-          'reduce' => FALSE,
-          'multiple' => TRUE,
-        ],
-      ],
-    ]);
-    $view->save();
-    $this->executeView($view);
-
-    $expected = [
-      'type' => 'All',
-      'type_with_default_value' => 'article',
-      'multiple_types_with_default_value' => ['article'],
-    ];
-    $this->assertSame($view->exposed_raw_input, $expected);
-  }
-
 }
diff --git a/core/modules/workflows/src/Entity/Workflow.php b/core/modules/workflows/src/Entity/Workflow.php
index 3c7b06bcc9..2450fb7847 100644
--- a/core/modules/workflows/src/Entity/Workflow.php
+++ b/core/modules/workflows/src/Entity/Workflow.php
@@ -16,12 +16,6 @@
  *   id = "workflow",
  *   label = @Translation("Workflow"),
  *   label_collection = @Translation("Workflows"),
- *   label_singular = @Translation("workflow"),
- *   label_plural = @Translation("workflows"),
- *   label_count = @PluralTranslation(
- *     singular = "@count workflow",
- *     plural = "@count workflows",
- *   ),
  *   handlers = {
  *     "access" = "Drupal\workflows\WorkflowAccessControlHandler",
  *     "list_builder" = "Drupal\workflows\WorkflowListBuilder",
diff --git a/core/modules/workflows/tests/src/Functional/WorkflowUiNoTypeTest.php b/core/modules/workflows/tests/src/Functional/WorkflowUiNoTypeTest.php
index 01c61ac6b0..197386ebd0 100644
--- a/core/modules/workflows/tests/src/Functional/WorkflowUiNoTypeTest.php
+++ b/core/modules/workflows/tests/src/Functional/WorkflowUiNoTypeTest.php
@@ -49,7 +49,7 @@ public function testWorkflowUiWithNoType() {
     $this->drupalGet('admin/config/workflow/workflows');
     $this->assertSession()->pageTextNotContains('There are no workflow types available. In order to create workflows you need to install a module that provides a workflow type. For example, the Content Moderation module provides a workflow type that enables workflows for content entities.');
     $this->assertSession()->linkExists('Add workflow');
-    $this->assertSession()->pageTextContains('There are no workflows yet.');
+    $this->assertSession()->pageTextContains('There is no Workflow yet.');
   }
 
 }
diff --git a/core/modules/workflows/tests/src/Functional/WorkflowUiTest.php b/core/modules/workflows/tests/src/Functional/WorkflowUiTest.php
index d3492201dd..b15b24099c 100644
--- a/core/modules/workflows/tests/src/Functional/WorkflowUiTest.php
+++ b/core/modules/workflows/tests/src/Functional/WorkflowUiTest.php
@@ -109,7 +109,7 @@ public function testWorkflowCreation() {
     $this->assertSession()->linkByHrefExists('admin/config/workflow/workflows');
     $this->clickLink('Workflows');
     $this->assertSession()->pageTextContains('Workflows');
-    $this->assertSession()->pageTextContains('There are no workflows yet.');
+    $this->assertSession()->pageTextContains('There is no Workflow yet.');
     $this->clickLink('Add workflow');
     $this->submitForm(['label' => 'Test', 'id' => 'test', 'workflow_type' => 'workflow_type_test'], 'Save');
     $this->assertSession()->pageTextContains('Created the Test Workflow.');
@@ -253,7 +253,7 @@ public function testWorkflowCreation() {
     $this->assertSession()->pageTextContains('Are you sure you want to delete Test?');
     $this->submitForm([], 'Delete');
     $this->assertSession()->pageTextContains('Workflow Test deleted.');
-    $this->assertSession()->pageTextContains('There are no workflows yet.');
+    $this->assertSession()->pageTextContains('There is no Workflow yet.');
     $this->assertNull($workflow_storage->loadUnchanged('test'), 'The test workflow has been deleted');
 
     // Ensure that workflow types with default configuration are initialized
diff --git a/core/profiles/demo_umami/modules/demo_umami_content/demo_umami_content.install b/core/profiles/demo_umami/modules/demo_umami_content/demo_umami_content.install
index 8b94cc82f5..99ea0d1be5 100644
--- a/core/profiles/demo_umami/modules/demo_umami_content/demo_umami_content.install
+++ b/core/profiles/demo_umami/modules/demo_umami_content/demo_umami_content.install
@@ -12,7 +12,7 @@
  */
 function demo_umami_content_install() {
   if (!\Drupal::service('config.installer')->isSyncing()) {
-    \Drupal::classResolver(InstallHelper::class)->importContent();
+    \Drupal::classResolver()->getInstanceFromDefinition(InstallHelper::class)->importContent();
   }
 }
 
@@ -21,6 +21,6 @@ function demo_umami_content_install() {
  */
 function demo_umami_content_uninstall() {
   if (!\Drupal::service('config.installer')->isSyncing()) {
-    \Drupal::classResolver(InstallHelper::class)->deleteImportedContent();
+    \Drupal::classResolver()->getInstanceFromDefinition(InstallHelper::class)->deleteImportedContent();
   }
 }
diff --git a/core/tests/Drupal/FunctionalJavascriptTests/JavascriptTestBase.php b/core/tests/Drupal/FunctionalJavascriptTests/JavascriptTestBase.php
index 44b83c1633..55b1284f70 100644
--- a/core/tests/Drupal/FunctionalJavascriptTests/JavascriptTestBase.php
+++ b/core/tests/Drupal/FunctionalJavascriptTests/JavascriptTestBase.php
@@ -92,12 +92,11 @@ protected function getMinkDriverArgs() {
    * @param string $message
    *   Optional message to show alongside the assertion.
    *
-   * @deprecated in Drupal 8.1.0, will be removed before Drupal 9.0.0. Use
+   * @deprecated in Drupal 8.1.x, will be removed before Drupal 8.3.x. Use
    *   \Behat\Mink\Element\NodeElement::isVisible() instead.
    */
   protected function assertElementVisible($css_selector, $message = '') {
     $this->assertTrue($this->getSession()->getDriver()->isVisible($this->cssSelectToXpath($css_selector)), $message);
-    @trigger_error('The ' . __METHOD__ . ' method is deprecated since version 8.1.0 and will be removed in 9.0.0. Use \Behat\Mink\Element\NodeElement::isVisible() instead.', E_USER_DEPRECATED);
   }
 
   /**
@@ -108,12 +107,11 @@ protected function assertElementVisible($css_selector, $message = '') {
    * @param string $message
    *   Optional message to show alongside the assertion.
    *
-   * @deprecated in Drupal 8.1.0, will be removed before Drupal 9.0.0. Use
+   * @deprecated in Drupal 8.1.x, will be removed before Drupal 8.3.x. Use
    *   \Behat\Mink\Element\NodeElement::isVisible() instead.
    */
   protected function assertElementNotVisible($css_selector, $message = '') {
     $this->assertFalse($this->getSession()->getDriver()->isVisible($this->cssSelectToXpath($css_selector)), $message);
-    @trigger_error('The ' . __METHOD__ . ' method is deprecated since version 8.1.0 and will be removed in 9.0.0. Use \Behat\Mink\Element\NodeElement::isVisible() instead.', E_USER_DEPRECATED);
   }
 
   /**
diff --git a/core/tests/Drupal/KernelTests/KernelTestBase.php b/core/tests/Drupal/KernelTests/KernelTestBase.php
index 4eeed6e6b2..69cce6cd00 100644
--- a/core/tests/Drupal/KernelTests/KernelTestBase.php
+++ b/core/tests/Drupal/KernelTests/KernelTestBase.php
@@ -1025,7 +1025,7 @@ protected function isTestInIsolation() {
    * Test authors should follow the provided instructions and adjust their tests
    * accordingly.
    *
-   * @deprecated in Drupal 8.0.0, will be removed before Drupal 9.0.0.
+   * @deprecated in Drupal 8.0.x, will be removed before Drupal 8.2.0.
    */
   public function __get($name) {
     if (in_array($name, [
diff --git a/core/tests/Drupal/Tests/BrowserTestBase.php b/core/tests/Drupal/Tests/BrowserTestBase.php
index 313b2036d9..25756bf36d 100644
--- a/core/tests/Drupal/Tests/BrowserTestBase.php
+++ b/core/tests/Drupal/Tests/BrowserTestBase.php
@@ -1054,20 +1054,7 @@ protected function drupalUserIsLoggedIn(AccountInterface $account) {
    *   The CSS selector identifying the element to click.
    */
   protected function click($css_selector) {
-    $starting_url = $this->getSession()->getCurrentUrl();
     $this->getSession()->getDriver()->click($this->cssSelectToXpath($css_selector));
-    // Log only for JavascriptTestBase tests because for Goutte we log with
-    // ::getResponseLogHandler.
-    if ($this->htmlOutputEnabled && !($this->getSession()->getDriver() instanceof GoutteDriver)) {
-      $out = $this->getSession()->getPage()->getContent();
-      $html_output =
-        'Clicked element with CSS selector: ' . $css_selector .
-        '<hr />Starting URL: ' . $starting_url .
-        '<hr />Ending URL: ' . $this->getSession()->getCurrentUrl();
-      $html_output .= '<hr />' . $out;
-      $html_output .= $this->getHtmlOutputHeaders();
-      $this->htmlOutput($html_output);
-    }
   }
 
   /**
@@ -1093,9 +1080,8 @@ public function __sleep() {
    *
    * The link to the HTML output message will be printed by the results printer.
    *
-   * @param string|null $message
-   *   (optional) The HTML output message to be stored. If not supplied the
-   *   current page content is used.
+   * @param string $message
+   *   The HTML output message to be stored.
    *
    * @see \Drupal\Tests\Listeners\VerbosePrinter::printResult()
    */
@@ -1103,7 +1089,6 @@ protected function htmlOutput($message) {
     if (!$this->htmlOutputEnabled) {
       return;
     }
-    $message = $message ?: $this->getSession()->getPage()->getContent();
     $message = '<hr />ID #' . $this->htmlOutputCounter . ' (<a href="' . $this->htmlOutputClassName . '-' . ($this->htmlOutputCounter - 1) . '-' . $this->htmlOutputTestId . '.html">Previous</a> | <a href="' . $this->htmlOutputClassName . '-' . ($this->htmlOutputCounter + 1) . '-' . $this->htmlOutputTestId . '.html">Next</a>)<hr />' . $message;
     $html_output_filename = $this->htmlOutputClassName . '-' . $this->htmlOutputCounter . '-' . $this->htmlOutputTestId . '.html';
     file_put_contents($this->htmlOutputDirectory . '/' . $html_output_filename, $message);
diff --git a/core/tests/Drupal/Tests/Core/Access/AccessResultTest.php b/core/tests/Drupal/Tests/Core/Access/AccessResultTest.php
index 4467e79cbc..60a17a0fb6 100644
--- a/core/tests/Drupal/Tests/Core/Access/AccessResultTest.php
+++ b/core/tests/Drupal/Tests/Core/Access/AccessResultTest.php
@@ -269,12 +269,8 @@ public function testAndIf() {
    */
   public function testOrIf() {
     $neutral = AccessResult::neutral('neutral message');
-    $neutral_other = AccessResult::neutral('other neutral message');
-    $neutral_reasonless = AccessResult::neutral();
     $allowed = AccessResult::allowed();
     $forbidden = AccessResult::forbidden('forbidden message');
-    $forbidden_other = AccessResult::forbidden('other forbidden message');
-    $forbidden_reasonless = AccessResult::forbidden();
     $unused_access_result_due_to_lazy_evaluation = $this->getMock('\Drupal\Core\Access\AccessResultInterface');
     $unused_access_result_due_to_lazy_evaluation->expects($this->never())
       ->method($this->anything());
@@ -308,18 +304,6 @@ public function testOrIf() {
     $this->assertTrue($access->isNeutral());
     $this->assertEquals('neutral message', $access->getReason());
     $this->assertDefaultCacheability($access);
-    // Reason inheritance edge case: first reason is kept.
-    $access = $neutral->orIf($neutral_other);
-    $this->assertEquals('neutral message', $access->getReason());
-    $access = $neutral_other->orIf($neutral);
-    $this->assertEquals('other neutral message', $access->getReason());
-    // Reason inheritance edge case: one of the operands is reasonless.
-    $access = $neutral->orIf($neutral_reasonless);
-    $this->assertEquals('neutral message', $access->getReason());
-    $access = $neutral_reasonless->orIf($neutral);
-    $this->assertEquals('neutral message', $access->getReason());
-    $access = $neutral_reasonless->orIf($neutral_reasonless);
-    $this->assertNull($access->getReason());
 
     // NEUTRAL || ALLOWED === ALLOWED.
     $access = $neutral->orIf($allowed);
@@ -345,7 +329,7 @@ public function testOrIf() {
     $this->assertDefaultCacheability($access);
 
     // FORBIDDEN || NEUTRAL === FORBIDDEN.
-    $access = $forbidden->orIf($neutral);
+    $access = $forbidden->orIf($allowed);
     $this->assertFalse($access->isAllowed());
     $this->assertTrue($access->isForbidden());
     $this->assertFalse($access->isNeutral());
@@ -353,24 +337,12 @@ public function testOrIf() {
     $this->assertDefaultCacheability($access);
 
     // FORBIDDEN || FORBIDDEN === FORBIDDEN.
-    $access = $forbidden->orIf($forbidden);
+    $access = $forbidden->orIf($allowed);
     $this->assertFalse($access->isAllowed());
     $this->assertTrue($access->isForbidden());
     $this->assertFalse($access->isNeutral());
     $this->assertEquals('forbidden message', $access->getReason());
     $this->assertDefaultCacheability($access);
-    // Reason inheritance edge case: first reason is kept.
-    $access = $forbidden->orIf($forbidden_other);
-    $this->assertEquals('forbidden message', $access->getReason());
-    $access = $forbidden_other->orIf($forbidden);
-    $this->assertEquals('other forbidden message', $access->getReason());
-    // Reason inheritance edge case: one of the operands is reasonless.
-    $access = $forbidden->orIf($forbidden_reasonless);
-    $this->assertEquals('forbidden message', $access->getReason());
-    $access = $forbidden_reasonless->orIf($forbidden);
-    $this->assertEquals('forbidden message', $access->getReason());
-    $access = $forbidden_reasonless->orIf($forbidden_reasonless);
-    $this->assertNull($access->getReason());
 
     // FORBIDDEN || * === FORBIDDEN.
     $access = $forbidden->orIf($unused_access_result_due_to_lazy_evaluation);
diff --git a/core/tests/Drupal/Tests/Core/DrupalTest.php b/core/tests/Drupal/Tests/Core/DrupalTest.php
index 53f40af8f3..2ff6ebf666 100644
--- a/core/tests/Drupal/Tests/Core/DrupalTest.php
+++ b/core/tests/Drupal/Tests/Core/DrupalTest.php
@@ -2,7 +2,6 @@
 
 namespace Drupal\Tests\Core;
 
-use Drupal\Core\DependencyInjection\ClassResolverInterface;
 use Drupal\Core\DependencyInjection\ContainerNotInitializedException;
 use Drupal\Core\Entity\EntityStorageInterface;
 use Drupal\Core\Entity\EntityTypeManagerInterface;
@@ -121,21 +120,8 @@ public function testCache() {
    * @covers ::classResolver
    */
   public function testClassResolver() {
-    $class_resolver = $this->prophesize(ClassResolverInterface::class);
-    $this->setMockContainerService('class_resolver', $class_resolver->reveal());
-    $this->assertInstanceOf(ClassResolverInterface::class, \Drupal::classResolver());
-  }
-
-  /**
-   * Tests the classResolver method when called with a class.
-   *
-   * @covers ::classResolver
-   */
-  public function testClassResolverWithClass() {
-    $class_resolver = $this->prophesize(ClassResolverInterface::class);
-    $class_resolver->getInstanceFromDefinition(static::class)->willReturn($this);
-    $this->setMockContainerService('class_resolver', $class_resolver->reveal());
-    $this->assertSame($this, \Drupal::classResolver(static::class));
+    $this->setMockContainerService('class_resolver');
+    $this->assertNotNull(\Drupal::classResolver());
   }
 
   /**
