diff --git a/composer.json b/composer.json
index 9b8fa8c6304ba73949d74676d65e2fb13e35ca6e..ff79da4a42158d1d845f2a3294e8b34a04a1b00a 100644
--- a/composer.json
+++ b/composer.json
@@ -111,7 +111,7 @@
         "drupal/editor_advanced_link": "1.8",
         "drupal/embed": "1.4",
         "drupal/entity": "1.2",
-        "drupal/entity_browser": "1.10",
+        "drupal/entity_browser": "2.6",
         "drupal/entity_clone": "1.0.0-beta5",
         "drupal/entity_embed": "1.1",
         "drupal/entity_reference_revisions": "1.9",
@@ -297,4 +297,4 @@
             "php": "7.3"
         }
     }
-}
\ No newline at end of file
+}
diff --git a/composer.lock b/composer.lock
index a6998f9407383128cfe3cd6be3baee4d12c68aa9..544f3cf2595db706c346133f9c51376d23fba7d4 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
         "This file is @generated automatically"
     ],
-    "content-hash": "b66a2b43b306587d15fdf11ea2858c8e",
+    "content-hash": "645bbe82bd778fc34efc567bb3d8b766",
     "packages": [
         {
             "name": "alchemy/zippy",
@@ -4094,36 +4094,35 @@
         },
         {
             "name": "drupal/entity_browser",
-            "version": "1.10.0",
+            "version": "2.6.0",
             "source": {
                 "type": "git",
                 "url": "https://git.drupalcode.org/project/entity_browser.git",
-                "reference": "8.x-1.10"
+                "reference": "8.x-2.6"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://ftp.drupal.org/files/projects/entity_browser-8.x-1.10.zip",
-                "reference": "8.x-1.10",
-                "shasum": "1a6b9f293f4763759fee2362ed7566f270829356"
+                "url": "https://ftp.drupal.org/files/projects/entity_browser-8.x-2.6.zip",
+                "reference": "8.x-2.6",
+                "shasum": "95cad4ce9620ccb4f02afa0e8b8bbf7c73fc5aac"
             },
             "require": {
-                "drupal/core": "^8.7.7 || ^9"
+                "drupal/core": "^8.8 || ^9"
             },
             "require-dev": {
                 "drupal/embed": "~1.0",
-                "drupal/entity": "~1.0",
-                "drupal/entity_embed": "~1.0",
-                "drupal/entityqueue": "~1.0",
-                "drupal/inline_entity_form": "~1.0",
-                "drupal/media_entity": "~1.0",
-                "drupal/paragraphs": "~1.0",
+                "drupal/entity_embed": "1.x-dev",
+                "drupal/entity_reference_revisions": "1.x-dev",
+                "drupal/entityqueue": "1.x-dev",
+                "drupal/inline_entity_form": "1.x-dev",
+                "drupal/paragraphs": "1.x-dev",
                 "drupal/token": "~1.0"
             },
             "type": "drupal-module",
             "extra": {
                 "drupal": {
-                    "version": "8.x-1.10",
-                    "datestamp": "1579563787",
+                    "version": "8.x-2.6",
+                    "datestamp": "1624401306",
                     "security-coverage": {
                         "status": "covered",
                         "message": "Covered by Drupal's security advisory policy"
diff --git a/vendor/composer/InstalledVersions.php b/vendor/composer/InstalledVersions.php
index d10cf1dfe638af1c3084458ed964d208e446c1b7..191152d918c46e75026532b8dd085aa2eaf4817b 100644
--- a/vendor/composer/InstalledVersions.php
+++ b/vendor/composer/InstalledVersions.php
@@ -20,8 +20,6 @@
 
 
 
-
-
 class InstalledVersions
 {
 private static $installed = array (
@@ -32,7 +30,7 @@ class InstalledVersions
     'aliases' => 
     array (
     ),
-    'reference' => 'a971e84acff6246067d76e462156e6664731e864',
+    'reference' => 'f4d37384d45bb2889df4d388c99bdb1a8deae5f9',
     'name' => 'osu-asc-webservices/d8-upstream',
   ),
   'versions' => 
@@ -975,12 +973,12 @@ class InstalledVersions
     ),
     'drupal/entity_browser' => 
     array (
-      'pretty_version' => '1.10.0',
-      'version' => '1.10.0.0',
+      'pretty_version' => '2.6.0',
+      'version' => '2.6.0.0',
       'aliases' => 
       array (
       ),
-      'reference' => '8.x-1.10',
+      'reference' => '8.x-2.6',
     ),
     'drupal/entity_browser_entity_form' => 
     array (
@@ -2262,7 +2260,7 @@ class InstalledVersions
       'aliases' => 
       array (
       ),
-      'reference' => 'a971e84acff6246067d76e462156e6664731e864',
+      'reference' => 'f4d37384d45bb2889df4d388c99bdb1a8deae5f9',
     ),
     'pantheon-systems/quicksilver-pushback' => 
     array (
@@ -3118,6 +3116,7 @@ public static function getInstalledPackages()
 $packages[] = array_keys($installed['versions']);
 }
 
+
 if (1 === \count($packages)) {
 return $packages[0];
 }
@@ -3281,11 +3280,8 @@ public static function getRootPackage()
 
 
 
-
 public static function getRawData()
 {
-@trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
-
 return self::$installed;
 }
 
@@ -3295,17 +3291,6 @@ public static function getRawData()
 
 
 
-public static function getAllRawData()
-{
-return self::getInstalled();
-}
-
-
-
-
-
-
-
 
 
 
@@ -3327,7 +3312,6 @@ public static function reload($data)
 
 
 
-
 private static function getInstalled()
 {
 if (null === self::$canGetVendors) {
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index 4d3c1db90ad69f89b5c3a45bc5be757306f418a2..ec92c95018fed230fd1d6c1dece7cf68389ad659 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -4159,40 +4159,36 @@
         },
         {
             "name": "drupal/entity_browser",
-            "version": "1.10.0",
-            "version_normalized": "1.10.0.0",
+            "version": "2.6.0",
+            "version_normalized": "2.6.0.0",
             "source": {
                 "type": "git",
                 "url": "https://git.drupalcode.org/project/entity_browser.git",
-                "reference": "8.x-1.10"
+                "reference": "8.x-2.6"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://ftp.drupal.org/files/projects/entity_browser-8.x-1.10.zip",
-                "reference": "8.x-1.10",
-                "shasum": "1a6b9f293f4763759fee2362ed7566f270829356"
+                "url": "https://ftp.drupal.org/files/projects/entity_browser-8.x-2.6.zip",
+                "reference": "8.x-2.6",
+                "shasum": "95cad4ce9620ccb4f02afa0e8b8bbf7c73fc5aac"
             },
             "require": {
-                "drupal/core": "^8.7.7 || ^9"
+                "drupal/core": "^8.8 || ^9"
             },
             "require-dev": {
                 "drupal/embed": "~1.0",
-                "drupal/entity": "~1.0",
-                "drupal/entity_embed": "~1.0",
-                "drupal/entityqueue": "~1.0",
-                "drupal/inline_entity_form": "~1.0",
-                "drupal/media_entity": "~1.0",
-                "drupal/paragraphs": "~1.0",
+                "drupal/entity_embed": "1.x-dev",
+                "drupal/entity_reference_revisions": "1.x-dev",
+                "drupal/entityqueue": "1.x-dev",
+                "drupal/inline_entity_form": "1.x-dev",
+                "drupal/paragraphs": "1.x-dev",
                 "drupal/token": "~1.0"
             },
             "type": "drupal-module",
             "extra": {
-                "branch-alias": {
-                    "dev-1.x": "1.x-dev"
-                },
                 "drupal": {
-                    "version": "8.x-1.10",
-                    "datestamp": "1579563787",
+                    "version": "8.x-2.6",
+                    "datestamp": "1624401306",
                     "security-coverage": {
                         "status": "covered",
                         "message": "Covered by Drupal's security advisory policy"
diff --git a/vendor/composer/installed.php b/vendor/composer/installed.php
index 3616e8059dec3af568f6a1a8b21c7261b86c3851..10671559eb10a27b54d4788ed2782ee5b0f389e9 100644
--- a/vendor/composer/installed.php
+++ b/vendor/composer/installed.php
@@ -6,7 +6,7 @@
     'aliases' => 
     array (
     ),
-    'reference' => 'a971e84acff6246067d76e462156e6664731e864',
+    'reference' => 'f4d37384d45bb2889df4d388c99bdb1a8deae5f9',
     'name' => 'osu-asc-webservices/d8-upstream',
   ),
   'versions' => 
@@ -949,12 +949,12 @@
     ),
     'drupal/entity_browser' => 
     array (
-      'pretty_version' => '1.10.0',
-      'version' => '1.10.0.0',
+      'pretty_version' => '2.6.0',
+      'version' => '2.6.0.0',
       'aliases' => 
       array (
       ),
-      'reference' => '8.x-1.10',
+      'reference' => '8.x-2.6',
     ),
     'drupal/entity_browser_entity_form' => 
     array (
@@ -2236,7 +2236,7 @@
       'aliases' => 
       array (
       ),
-      'reference' => 'a971e84acff6246067d76e462156e6664731e864',
+      'reference' => 'f4d37384d45bb2889df4d388c99bdb1a8deae5f9',
     ),
     'pantheon-systems/quicksilver-pushback' => 
     array (
diff --git a/web/modules/entity_browser/composer.json b/web/modules/entity_browser/composer.json
index 2b970368df5517ca92ba9e9e68cd1f37a90db5f8..d57e461de646552ae18d76bc7ec1876f452c8f96 100644
--- a/web/modules/entity_browser/composer.json
+++ b/web/modules/entity_browser/composer.json
@@ -28,16 +28,15 @@
   "license": "GPL-2.0+",
   "minimum-stability": "dev",
   "require": {
-    "drupal/core": "^8.7.7 || ^9"
+    "drupal/core": "^8.8 || ^9"
   },
   "require-dev": {
     "drupal/token": "~1.0",
-    "drupal/inline_entity_form": "~1.0",
-    "drupal/paragraphs": "~1.0",
-    "drupal/entity": "~1.0",
-    "drupal/media_entity": "~1.0",
+    "drupal/inline_entity_form": "1.x-dev",
+    "drupal/paragraphs": "1.x-dev",
     "drupal/embed": "~1.0",
-    "drupal/entity_embed": "~1.0",
-    "drupal/entityqueue": "~1.0"
+    "drupal/entity_embed": "1.x-dev",
+    "drupal/entityqueue": "1.x-dev",
+    "drupal/entity_reference_revisions": "1.x-dev"
   }
 }
diff --git a/web/modules/entity_browser/entity_browser.info.yml b/web/modules/entity_browser/entity_browser.info.yml
index 6a4e303bca0d76f525b79417c14b0024644c6088..db2ac484e6ed2e70a48e12ec7c35c3d18de2be91 100644
--- a/web/modules/entity_browser/entity_browser.info.yml
+++ b/web/modules/entity_browser/entity_browser.info.yml
@@ -2,17 +2,10 @@ name: Entity Browser
 description: 'Provide a generic entity browser/picker/selector.'
 type: module
 package: Media
-core_version_requirement: ^8.7.7 || ^9
-test_dependencies:
-  - token:token
-  - inline_entity_form:inline_entity_form
-  - media_entity:media_entity
-  - paragraphs:paragraphs
-  - embed:embed
-  - entity_embed:entity_embed
+core_version_requirement: ^8.8 || ^9
 configure: entity.entity_browser.collection
 
-# Information added by Drupal.org packaging script on 2020-01-20
-version: '8.x-1.10'
+# Information added by Drupal.org packaging script on 2021-06-22
+version: '8.x-2.6'
 project: 'entity_browser'
-datestamp: 1579563796
+datestamp: 1624401308
diff --git a/web/modules/entity_browser/entity_browser.install b/web/modules/entity_browser/entity_browser.install
index dce49e213608e6d843db76990534fa83f9b6ded1..7d43698b0d8d3d5fec2180aa75cfd154e839f1ee 100644
--- a/web/modules/entity_browser/entity_browser.install
+++ b/web/modules/entity_browser/entity_browser.install
@@ -5,6 +5,42 @@
  * Update hooks for the Entity browser module.
  */
 
+/**
+ * Implements hook_requirements().
+ */
+function entity_browser_requirements($phase) {
+  $requirements = [];
+
+  // This branch of Entity Browser shouldn't be used with core < 8.4.x or with
+  // media_entity 1.x enabled.
+  $incompatible = FALSE;
+  if (\Drupal::moduleHandler()->moduleExists('media_entity')) {
+    $info = \Drupal::service('extension.list.module')->getExtensionInfo('media_entity');
+    if (empty($info['version'])) {
+      // If the version being used is -dev, $info['version'] will be empty. Try
+      // an alternative method to detect if we are using the 2.x branch in that
+      // case.
+      if (!file_exists(DRUPAL_ROOT . '/' . drupal_get_path('module', 'media_entity') . '/src/CliService.php')) {
+        $incompatible = TRUE;
+      }
+    }
+    elseif (version_compare($info['version'], '8.x-2') < 0) {
+      $incompatible = TRUE;
+    }
+  }
+
+  if ($incompatible) {
+    $requirements['entity_browser_media'] = [
+      'title' => t('Entity Browser'),
+      'value' => t('This branch of Entity Browser is not compatible with the version of Media Entity installed.'),
+      'description' => t('This branch of Entity Browser is not compatible with the version of Media Entity installed.'),
+      'severity' => REQUIREMENT_ERROR,
+    ];
+  }
+
+  return $requirements;
+}
+
 /**
  * Updates submit text for existing Entity browsers.
  */
@@ -59,3 +95,26 @@ function entity_browser_update_8002() {
     }
   }
 }
+
+/**
+ * Updates entity browsers to use the new media image upload widget plugin.
+ */
+function entity_browser_update_8201() {
+  $config_factory = \Drupal::configFactory();
+  foreach ($config_factory->listAll('entity_browser.browser.') as $name) {
+    $config = $config_factory->getEditable($name);
+    $widgets = $config->get('widgets');
+    $changed = FALSE;
+    foreach ($widgets as &$widget) {
+      if ($widget['id'] === 'media_entity_image_upload') {
+        $widget['id'] = 'media_image_upload';
+        $widget['settings']['media_type'] = $widget['settings']['media_bundle'];
+        unset($widget['settings']['media_bundle']);
+        $changed = TRUE;
+      }
+    }
+    if ($changed) {
+      $config->set('widgets', $widgets)->save(TRUE);
+    }
+  }
+}
diff --git a/web/modules/entity_browser/entity_browser.libraries.yml b/web/modules/entity_browser/entity_browser.libraries.yml
index 3bb86c86175766609a3506bec71ce60f9fc4e097..d128e9b3e7fd7661822f87a56a3fcd22bf9489eb 100644
--- a/web/modules/entity_browser/entity_browser.libraries.yml
+++ b/web/modules/entity_browser/entity_browser.libraries.yml
@@ -51,7 +51,7 @@ entity_reference:
   dependencies:
     - entity_browser/common
     - entity_browser/entity_list
-    - core/jquery.ui.sortable
+    - core/sortable
 
 file_browser:
   version: VERSION
@@ -105,4 +105,4 @@ multi_step_display:
     js/entity_browser.multi_step_display.js: {}
   dependencies:
     - entity_browser/entity_list
-    - core/jquery.ui.sortable
+    - core/sortable
diff --git a/web/modules/entity_browser/js/entity_browser.entity_reference.js b/web/modules/entity_browser/js/entity_browser.entity_reference.js
index e3e343e809823451717debda0a9fa8b3cdbe3a59..93ee783e11756f2a0318e8030f46e6c73bbc3b89 100644
--- a/web/modules/entity_browser/js/entity_browser.entity_reference.js
+++ b/web/modules/entity_browser/js/entity_browser.entity_reference.js
@@ -5,7 +5,7 @@
  * browser.
  */
 
-(function ($, Drupal) {
+(function ($, Drupal, Sortable) {
 
   'use strict';
 
@@ -14,9 +14,13 @@
    */
   Drupal.behaviors.entityBrowserEntityReference = {
     attach: function (context) {
-      $(context).find('.field--widget-entity-browser-entity-reference').each(function () {
-        $(this).find('.entities-list.sortable').sortable({
-          stop: Drupal.entityBrowserEntityReference.entitiesReordered
+      var sortableSelector = context.querySelectorAll('.field--widget-entity-browser-entity-reference .entities-list.sortable');
+      sortableSelector.forEach(function (widget) {
+        Sortable.create(widget, {
+          draggable: '.item-container',
+          onEnd: function onEnd() {
+            return Drupal.entityBrowserEntityReference.entitiesReordered(widget);
+          }
         });
       });
       // The AJAX callback will give us a flag when we need to re-open the
@@ -42,19 +46,17 @@
   /**
    * Reacts on sorting of the entities.
    *
-   * @param {object} event
-   *   Event object.
-   * @param {object} ui
-   *   Object with detailed information about the sort event.
+   * @param {object} widget
+   *   Object with the sortable area.
    */
-  Drupal.entityBrowserEntityReference.entitiesReordered = function (event, ui) {
-    var items = $(this).find('.item-container');
+  Drupal.entityBrowserEntityReference.entitiesReordered = function (widget) {
+    var items = $(widget).find('.item-container');
     var ids = [];
     for (var i = 0; i < items.length; i++) {
       ids[i] = $(items[i]).attr('data-entity-id');
     }
 
-    $(this).parent().parent().find('input[type*=hidden][name*="[target_id]"]').val(ids.join(' '));
+    $(widget).parent().find('input[type*=hidden][name*="[target_id]"]').val(ids.join(' '));
   };
 
-}(jQuery, Drupal));
+}(jQuery, Drupal, Sortable));
diff --git a/web/modules/entity_browser/js/entity_browser.multi_step_display.js b/web/modules/entity_browser/js/entity_browser.multi_step_display.js
index 9fe1d9e118718e70c9114e120095aa22444c87ba..11d1d9657880e53dc71057be57a841c30e3840a3 100644
--- a/web/modules/entity_browser/js/entity_browser.multi_step_display.js
+++ b/web/modules/entity_browser/js/entity_browser.multi_step_display.js
@@ -2,7 +2,7 @@
  * @file entity_browser.multi_step_display.js
  */
 
-(function ($, Drupal) {
+(function ($, Drupal, Sortable) {
 
   'use strict';
 
@@ -10,12 +10,26 @@
    * Registers behaviours related to selected entities.
    */
   Drupal.behaviors.entityBrowserMultiStepDisplay = {
+
+    /**
+     * Counter for proxy elements when adding items to selection.
+     *
+     * @see Drupal.entityBrowserMultiStepDisplay.addEntities
+     */
+    uuid: 1,
+
     attach: function (context) {
-      var $entities = $(context).find('.entities-list');
-      $entities.sortable({
-        stop: Drupal.entityBrowserMultiStepDisplay.entitiesReordered
+      var sortableSelector = context.querySelectorAll('.entities-list');
+      sortableSelector.forEach(function (widget) {
+        Sortable.create(widget, {
+          draggable: '.item-container',
+          onEnd: function onEnd() {
+            return Drupal.entityBrowserMultiStepDisplay.entitiesReordered(widget);
+          }
+        });
       });
 
+      var $entities = $(context).find('.entities-list');
       // Register add/remove entities event handlers.
       $entities.once('register-add-entities')
         .bind('add-entities', Drupal.entityBrowserMultiStepDisplay.addEntities);
@@ -61,13 +75,11 @@
   /**
    * Reacts on sorting of the entities.
    *
-   * @param {object} event
-   *   Event object.
-   * @param {object} ui
-   *   Object with detailed information about the sort event.
+   * @param {object} widget
+   *   Object with the sortable area.
    */
-  Drupal.entityBrowserMultiStepDisplay.entitiesReordered = function (event, ui) {
-    var items = $(this).find('.item-container');
+  Drupal.entityBrowserMultiStepDisplay.entitiesReordered = function (widget) {
+    var items = $(widget).find('.item-container');
     for (var i = 0; i < items.length; i++) {
       $(items[i]).find('.weight').val(i);
     }
@@ -121,7 +133,7 @@
 
     for (i = 0; i < entity_ids.length; i++) {
       // Add proxy element that will be replaced with returned Ajax Command.
-      var proxy_element = $('<div></div>').uniqueId();
+      var proxy_element = $('<div></div>').attr("id", "ui-id-" + ( ++Drupal.behaviors.entityBrowserMultiStepDisplay.uuid ));
       entities_list.append(proxy_element);
 
       Drupal.entityBrowserCommandQueue.queueCommand(
@@ -136,4 +148,4 @@
     entities_list.siblings('[name=ajax_commands_handler]').trigger('execute-commands', [true]);
   };
 
-}(jQuery, Drupal));
+}(jQuery, Drupal, Sortable));
diff --git a/web/modules/entity_browser/modules/entity_form/entity_browser_entity_form.info.yml b/web/modules/entity_browser/modules/entity_form/entity_browser_entity_form.info.yml
index 04c941f7d6b9b4cc2efa2ede06dc73e2c9246318..25222ac9d7abda136f250cb52e5dc4986288d423 100644
--- a/web/modules/entity_browser/modules/entity_form/entity_browser_entity_form.info.yml
+++ b/web/modules/entity_browser/modules/entity_form/entity_browser_entity_form.info.yml
@@ -7,7 +7,7 @@ dependencies:
   - entity_browser:entity_browser
   - inline_entity_form:inline_entity_form
 
-# Information added by Drupal.org packaging script on 2020-01-20
-version: '8.x-1.10'
+# Information added by Drupal.org packaging script on 2021-06-22
+version: '8.x-2.6'
 project: 'entity_browser'
-datestamp: 1579563796
+datestamp: 1624401308
diff --git a/web/modules/entity_browser/modules/entity_form/tests/modules/entity_browser_entity_form_test/entity_browser_entity_form_test.info.yml b/web/modules/entity_browser/modules/entity_form/tests/modules/entity_browser_entity_form_test/entity_browser_entity_form_test.info.yml
index 1ab7ad9c68b471d9eb2327f59b8856fa578a958e..5d5e02d3a21afdc6da8356caaabe73385e6f7aac 100644
--- a/web/modules/entity_browser/modules/entity_form/tests/modules/entity_browser_entity_form_test/entity_browser_entity_form_test.info.yml
+++ b/web/modules/entity_browser/modules/entity_form/tests/modules/entity_browser_entity_form_test/entity_browser_entity_form_test.info.yml
@@ -8,7 +8,7 @@ dependencies:
   - entity_browser_test:entity_browser_test
   - drupal:views
 
-# Information added by Drupal.org packaging script on 2020-01-20
-version: '8.x-1.10'
+# Information added by Drupal.org packaging script on 2021-06-22
+version: '8.x-2.6'
 project: 'entity_browser'
-datestamp: 1579563796
+datestamp: 1624401308
diff --git a/web/modules/entity_browser/modules/example/entity_browser_example.info.yml b/web/modules/entity_browser/modules/example/entity_browser_example.info.yml
index 9f79978b3e4480b56f201dc92b6d94046813255d..9dbf52a462afbc265e65ca15e47fafc5422f4e50 100644
--- a/web/modules/entity_browser/modules/example/entity_browser_example.info.yml
+++ b/web/modules/entity_browser/modules/example/entity_browser_example.info.yml
@@ -11,7 +11,7 @@ dependencies:
   - drupal:node
   - drupal:image
 
-# Information added by Drupal.org packaging script on 2020-01-20
-version: '8.x-1.10'
+# Information added by Drupal.org packaging script on 2021-06-22
+version: '8.x-2.6'
 project: 'entity_browser'
-datestamp: 1579563796
+datestamp: 1624401308
diff --git a/web/modules/entity_browser/src/Permissions.php b/web/modules/entity_browser/src/Permissions.php
index 6cb56835b1b5bca1ff6803805db0927fa4f0d6ca..21fa7581eaecc98d1ad9e041bac37481e36d3de7 100644
--- a/web/modules/entity_browser/src/Permissions.php
+++ b/web/modules/entity_browser/src/Permissions.php
@@ -4,7 +4,7 @@
 
 use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
 use Drupal\Core\Entity\EntityTypeManagerInterface;
-use Drupal\Core\StringTranslation\TranslationManager;
+use Drupal\Core\StringTranslation\StringTranslationTrait;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
@@ -12,6 +12,8 @@
  */
 class Permissions implements ContainerInjectionInterface {
 
+  use StringTranslationTrait;
+
   /**
    * The entity browser storage.
    *
@@ -19,23 +21,14 @@ class Permissions implements ContainerInjectionInterface {
    */
   protected $browserStorage;
 
-  /**
-   * Translation manager service.
-   *
-   * @var \Drupal\Core\StringTranslation\TranslationManager
-   */
-  protected $translationManager;
-
   /**
    * Constructs Permissions object.
    *
    * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
    *   Entity manager service.
-   * @param \Drupal\Core\StringTranslation\TranslationManager $translation
    */
-  public function __construct(EntityTypeManagerInterface $entity_type_manager, TranslationManager $translation) {
+  public function __construct(EntityTypeManagerInterface $entity_type_manager) {
     $this->browserStorage = $entity_type_manager->getStorage('entity_browser');
-    $this->translationManager = $translation;
   }
 
   /**
@@ -43,8 +36,7 @@ public function __construct(EntityTypeManagerInterface $entity_type_manager, Tra
    */
   public static function create(ContainerInterface $container) {
     return new static(
-      $container->get('entity_type.manager'),
-      $container->get('string_translation')
+      $container->get('entity_type.manager')
     );
   }
 
@@ -59,8 +51,8 @@ public function permissions() {
     foreach ($browsers as $browser) {
       if ($browser->route()) {
         $permissions['access ' . $browser->id() . ' entity browser pages'] = [
-          'title' => $this->translationManager->translate('Access @name pages', ['@name' => $browser->label()]),
-          'description' => $this->translationManager->translate('Access pages that %browser uses to operate.', ['%browser' => $browser->label()]),
+          'title' => $this->t('Access @name pages', ['@name' => $browser->label()]),
+          'description' => $this->t('Access pages that %browser uses to operate.', ['%browser' => $browser->label()]),
         ];
       }
     }
diff --git a/web/modules/entity_browser/src/Plugin/EntityBrowser/Widget/MediaImageUpload.php b/web/modules/entity_browser/src/Plugin/EntityBrowser/Widget/MediaImageUpload.php
new file mode 100644
index 0000000000000000000000000000000000000000..5baf1c80b0f49cda84440f0dc133edba8d972f2e
--- /dev/null
+++ b/web/modules/entity_browser/src/Plugin/EntityBrowser/Widget/MediaImageUpload.php
@@ -0,0 +1,133 @@
+<?php
+
+namespace Drupal\entity_browser\Plugin\EntityBrowser\Widget;
+
+use Drupal\Core\Form\FormStateInterface;
+use Drupal\Core\Url;
+use Drupal\entity_browser\Plugin\EntityBrowser\Widget\Upload as FileUpload;
+use Drupal\media\MediaInterface;
+
+/**
+ * Uses upload to create media images.
+ *
+ * @EntityBrowserWidget(
+ *   id = "media_image_upload",
+ *   label = @Translation("Upload images as media items"),
+ *   description = @Translation("Upload widget that will create media entities of the uploaded images."),
+ *   auto_select = FALSE
+ * )
+ */
+class MediaImageUpload extends FileUpload {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function defaultConfiguration() {
+    return [
+      'extensions' => 'jpg jpeg png gif',
+      'media_type' => NULL,
+    ] + parent::defaultConfiguration();
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getForm(array &$original_form, FormStateInterface $form_state, array $aditional_widget_parameters) {
+    /** @var \Drupal\media\MediaTypeInterface $media_type */
+    if (!$this->configuration['media_type'] || !($media_type = $this->entityTypeManager->getStorage('media_type')->load($this->configuration['media_type']))) {
+      return ['#markup' => $this->t('The media type is not configured correctly.')];
+    }
+
+    if ($media_type->getSource()->getPluginId() != 'image') {
+      return ['#markup' => $this->t('The configured media type is not using the image plugin.')];
+    }
+
+    $form = parent::getForm($original_form, $form_state, $aditional_widget_parameters);
+    $form['upload']['#upload_validators']['file_validate_extensions'] = [$this->configuration['extensions']];
+
+    return $form;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function prepareEntities(array $form, FormStateInterface $form_state) {
+    $files = parent::prepareEntities($form, $form_state);
+
+    /** @var \Drupal\media\MediaTypeInterface $media_type */
+    $media_type = $this->entityTypeManager
+      ->getStorage('media_type')
+      ->load($this->configuration['media_type']);
+
+    $images = [];
+    foreach ($files as $file) {
+      /** @var \Drupal\media\MediaInterface $image */
+      $image = $this->entityTypeManager->getStorage('media')->create([
+        'bundle' => $media_type->id(),
+        $media_type->getSource()->getConfiguration()['source_field'] => $file,
+      ]);
+      $images[] = $image;
+    }
+
+    return $images;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function submit(array &$element, array &$form, FormStateInterface $form_state) {
+    if (!empty($form_state->getTriggeringElement()['#eb_widget_main_submit'])) {
+      $images = $this->prepareEntities($form, $form_state);
+      array_walk(
+        $images,
+        function (MediaInterface $media) {
+          $media->save();
+        }
+      );
+
+      $this->selectEntities($images, $form_state);
+      $this->clearFormValues($element, $form_state);
+    }
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
+    $form = parent::buildConfigurationForm($form, $form_state);
+    $form['extensions'] = [
+      '#type' => 'textfield',
+      '#title' => $this->t('Allowed extensions'),
+      '#default_value' => $this->configuration['extensions'],
+      '#required' => TRUE,
+    ];
+
+    $media_type_options = [];
+    $media_types = $this
+      ->entityTypeManager
+      ->getStorage('media_type')
+      ->loadByProperties(['source' => 'image']);
+
+    foreach ($media_types as $media_type) {
+      $media_type_options[$media_type->id()] = $media_type->label();
+    }
+
+    if (empty($media_type_options)) {
+      $url = Url::fromRoute('entity.media_type.add_form')->toString();
+      $form['media_type'] = [
+        '#markup' => $this->t("You don't have media type of the Image type. You should <a href='!link'>create one</a>", ['!link' => $url]),
+      ];
+    }
+    else {
+      $form['media_type'] = [
+        '#type' => 'select',
+        '#title' => $this->t('Media type'),
+        '#default_value' => $this->configuration['media_type'],
+        '#options' => $media_type_options,
+      ];
+    }
+
+    return $form;
+  }
+
+}
diff --git a/web/modules/entity_browser/src/Plugin/views/display/EntityBrowser.php b/web/modules/entity_browser/src/Plugin/views/display/EntityBrowser.php
index f4f7fbe7f9940af407221edd3677e0f94f016c8a..5c65a15a9639cd374665afdd51bf150d3818b6bf 100644
--- a/web/modules/entity_browser/src/Plugin/views/display/EntityBrowser.php
+++ b/web/modules/entity_browser/src/Plugin/views/display/EntityBrowser.php
@@ -3,6 +3,7 @@
 namespace Drupal\entity_browser\Plugin\views\display;
 
 use Drupal\Core\Form\FormStateInterface;
+use Drupal\Core\Security\TrustedCallbackInterface;
 use Drupal\views\Plugin\views\display\DisplayPluginBase;
 
 /**
@@ -23,7 +24,7 @@
  *   entity_browser_display = TRUE
  * )
  */
-class EntityBrowser extends DisplayPluginBase {
+class EntityBrowser extends DisplayPluginBase implements TrustedCallbackInterface {
 
   /**
    * {@inheritdoc}
@@ -221,4 +222,11 @@ public static function postRender($content, array $element) {
     return $content;
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  public static function trustedCallbacks() {
+    return ['preRenderAddFieldsetMarkup', 'postRender', 'elementPreRender'];
+  }
+
 }
diff --git a/web/modules/entity_browser/src/WidgetManager.php b/web/modules/entity_browser/src/WidgetManager.php
index 7dc33f764c8d2f7a7d41b8ef8bc95a7a72610bc6..04557a00521335839a49b92daf02b1c199908e84 100644
--- a/web/modules/entity_browser/src/WidgetManager.php
+++ b/web/modules/entity_browser/src/WidgetManager.php
@@ -29,4 +29,19 @@ public function __construct(\Traversable $namespaces, CacheBackendInterface $cac
     $this->setCacheBackend($cache_backend, 'entity_browser_widget_plugins');
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  protected function findDefinitions() {
+    $definitions = parent::findDefinitions();
+
+    // Our own "media_image_upload" widget should only be available if the
+    // "Media" module is enabled.
+    if (!$this->moduleHandler->moduleExists('media')) {
+      unset($definitions['media_image_upload']);
+    }
+
+    return $definitions;
+  }
+
 }
diff --git a/web/modules/entity_browser/tests/modules/entity_browser_entity_embed_test/entity_browser_entity_embed_test.info.yml b/web/modules/entity_browser/tests/modules/entity_browser_entity_embed_test/entity_browser_entity_embed_test.info.yml
index d6537966dd4487bd2aa58da461b4ba4e1e814c8d..84db40104d24eed2cbe457c72aa24c8d6ce9c500 100644
--- a/web/modules/entity_browser/tests/modules/entity_browser_entity_embed_test/entity_browser_entity_embed_test.info.yml
+++ b/web/modules/entity_browser/tests/modules/entity_browser_entity_embed_test/entity_browser_entity_embed_test.info.yml
@@ -4,7 +4,7 @@ description: 'Test Entity Embed Integration'
 core_version_requirement: ^8.7.7 || ^9
 package: Testing
 dependencies:
-  - media_entity:media_entity
+  - drupal:media
   - drupal:ckeditor
   - drupal:node
   - drupal:views
@@ -17,7 +17,7 @@ dependencies:
   - entity_browser:entity_browser
   - entity_browser_test:entity_browser_test
 
-# Information added by Drupal.org packaging script on 2020-01-20
-version: '8.x-1.10'
+# Information added by Drupal.org packaging script on 2021-06-22
+version: '8.x-2.6'
 project: 'entity_browser'
-datestamp: 1579563796
+datestamp: 1624401308
diff --git a/web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/core.entity_form_display.media.ief_media_bundle.default.yml b/web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/core.entity_form_display.media.ief_media_type.default.yml
similarity index 76%
rename from web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/core.entity_form_display.media.ief_media_bundle.default.yml
rename to web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/core.entity_form_display.media.ief_media_type.default.yml
index f2ab144332a53aa771064b1a2e2cd9357ec0533f..a89f545b6bcb3b19f027a9dd17082662a6a75a80 100644
--- a/web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/core.entity_form_display.media.ief_media_bundle.default.yml
+++ b/web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/core.entity_form_display.media.ief_media_type.default.yml
@@ -2,16 +2,16 @@ langcode: en
 status: true
 dependencies:
   config:
-    - field.field.media.ief_media_bundle.ief_media_bundle_file_field
-    - media_entity.bundle.ief_media_bundle
+    - field.field.media.ief_media_type.ief_media_type_file_field
+    - media.type.ief_media_type
   module:
     - entity_browser
-id: media.ief_media_bundle.default
+id: media.ief_media_type.default
 targetEntityType: media
-bundle: ief_media_bundle
+bundle: ief_media_type
 mode: default
 content:
-  ief_media_bundle_file_field:
+  ief_media_type_file_field:
     weight: 11
     settings:
       entity_browser: ief_entity_browser_file
diff --git a/web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/core.entity_view_display.media.ief_media_bundle.default.yml b/web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/core.entity_view_display.media.ief_media_type.default.yml
similarity index 81%
rename from web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/core.entity_view_display.media.ief_media_bundle.default.yml
rename to web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/core.entity_view_display.media.ief_media_type.default.yml
index f42a8511c2baf9e0fe0e66a3ed3fb4b9699b586e..8cac3a62802125763b267d31356c9a4b2e1cb11b 100644
--- a/web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/core.entity_view_display.media.ief_media_bundle.default.yml
+++ b/web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/core.entity_view_display.media.ief_media_type.default.yml
@@ -2,15 +2,15 @@ langcode: en
 status: true
 dependencies:
   config:
-    - field.field.media.ief_media_bundle.ief_media_bundle_file_field
+    - field.field.media.ief_media_type.ief_media_type_file_field
     - image.style.thumbnail
-    - media_entity.bundle.ief_media_bundle
+    - media.type.ief_media_type
   module:
     - image
     - user
-id: media.ief_media_bundle.default
+id: media.ief_media_type.default
 targetEntityType: media
-bundle: ief_media_bundle
+bundle: ief_media_type
 mode: default
 content:
   created:
@@ -22,7 +22,7 @@ content:
       custom_date_format: ''
       timezone: ''
     third_party_settings: {  }
-  ief_media_bundle_file_field:
+  ief_media_type_file_field:
     weight: 2
     label: above
     settings:
diff --git a/web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/field.field.media.ief_media_bundle.ief_media_bundle_file_field.yml b/web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/field.field.media.ief_media_type.ief_media_type_file_field.yml
similarity index 61%
rename from web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/field.field.media.ief_media_bundle.ief_media_bundle_file_field.yml
rename to web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/field.field.media.ief_media_type.ief_media_type_file_field.yml
index b6c18468fd66056bb647d5ad1b4d7429d0ed1846..888d68e39fa6baac8712096efc6097ef3c6dbef5 100644
--- a/web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/field.field.media.ief_media_bundle.ief_media_bundle_file_field.yml
+++ b/web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/field.field.media.ief_media_type.ief_media_type_file_field.yml
@@ -2,12 +2,12 @@ langcode: en
 status: true
 dependencies:
   config:
-    - field.storage.media.ief_media_bundle_file_field
-    - media_entity.bundle.ief_media_bundle
-id: media.ief_media_bundle.ief_media_bundle_file_field
-field_name: ief_media_bundle_file_field
+    - field.storage.media.ief_media_type_file_field
+    - media.type.ief_media_type
+id: media.ief_media_type.ief_media_type_file_field
+field_name: ief_media_type_file_field
 entity_type: media
-bundle: ief_media_bundle
+bundle: ief_media_type
 label: files
 description: ''
 required: false
diff --git a/web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/field.field.node.ief_content.ief_media_field.yml b/web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/field.field.node.ief_content.ief_media_field.yml
index 656a830dccd672b5701b28802f1c359e5c0842b8..3f215dd1bef2e5faa1de784f37718dda1809329a 100644
--- a/web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/field.field.node.ief_content.ief_media_field.yml
+++ b/web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/field.field.node.ief_content.ief_media_field.yml
@@ -3,7 +3,7 @@ status: true
 dependencies:
   config:
     - field.storage.node.ief_media_field
-    - media_entity.bundle.ief_media_bundle
+    - media.type.ief_media_type
     - node.type.ief_content
 id: node.ief_content.ief_media_field
 field_name: ief_media_field
@@ -19,7 +19,7 @@ settings:
   handler: 'default:media'
   handler_settings:
     target_bundles:
-      ief_media_bundle: ief_media_bundle
+      ief_media_type: ief_media_type
     sort:
       field: _none
     auto_create: false
diff --git a/web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/field.storage.media.ief_media_bundle_file_field.yml b/web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/field.storage.media.ief_media_type_file_field.yml
similarity index 72%
rename from web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/field.storage.media.ief_media_bundle_file_field.yml
rename to web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/field.storage.media.ief_media_type_file_field.yml
index b8bcb3103c3a89347b7cd76ff7437c5fb4e3e70e..ab322c90f9d24ed275700737a0e2a75f319b5f50 100644
--- a/web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/field.storage.media.ief_media_bundle_file_field.yml
+++ b/web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/field.storage.media.ief_media_type_file_field.yml
@@ -3,9 +3,9 @@ status: true
 dependencies:
   module:
     - file
-    - media_entity
-id: media.ief_media_bundle_file_field
-field_name: ief_media_bundle_file_field
+    - media
+id: media.ief_media_type_file_field
+field_name: ief_media_type_file_field
 entity_type: media
 type: entity_reference
 settings:
diff --git a/web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/field.storage.node.ief_media_field.yml b/web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/field.storage.node.ief_media_field.yml
index bf54bd1bc2f674dce05c39ab5a53d647c24e24d2..172afdc5292f02704c16c9b409dbb673dab6a4ef 100644
--- a/web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/field.storage.node.ief_media_field.yml
+++ b/web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/field.storage.node.ief_media_field.yml
@@ -2,7 +2,7 @@ langcode: en
 status: true
 dependencies:
   module:
-    - media_entity
+    - media
     - node
 id: node.ief_media_field
 field_name: ief_media_field
diff --git a/web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/media_entity.bundle.ief_media_bundle.yml b/web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/media.type.ief_media_type.yml
similarity index 52%
rename from web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/media_entity.bundle.ief_media_bundle.yml
rename to web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/media.type.ief_media_type.yml
index 8bbfb682519eb44f79c2f975cd1f370b5c595528..e9a4941ba4e7eafd026cac6379029a7dc0677e14 100644
--- a/web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/media_entity.bundle.ief_media_bundle.yml
+++ b/web/modules/entity_browser/tests/modules/entity_browser_ief_test/config/install/media.type.ief_media_type.yml
@@ -1,11 +1,12 @@
 langcode: en
 status: true
 dependencies: {  }
-id: ief_media_bundle
-label: 'Test File Bundle'
+id: ief_media_type
+label: 'Test File Type'
 description: ''
-type: generic
+source: file
 queue_thumbnail_downloads: false
 new_revision: false
-type_configuration: {  }
+source_configuration:
+  source_field: ief_media_type_file_field
 field_map: {  }
diff --git a/web/modules/entity_browser/tests/modules/entity_browser_ief_test/entity_browser_ief_test.info.yml b/web/modules/entity_browser/tests/modules/entity_browser_ief_test/entity_browser_ief_test.info.yml
index a9831a60ad5b87c016e55c65aa84e8a5d846c5c8..a52717ca4af3bfeac0ce383d3b921674fcbee955 100644
--- a/web/modules/entity_browser/tests/modules/entity_browser_ief_test/entity_browser_ief_test.info.yml
+++ b/web/modules/entity_browser/tests/modules/entity_browser_ief_test/entity_browser_ief_test.info.yml
@@ -8,11 +8,11 @@ dependencies:
   - entity_browser:entity_browser
   - entity_browser_entity_form:entity_browser_entity_form
   - entity_browser_test:entity_browser_test
-  - media_entity:media_entity
+  - drupal:media
   - inline_entity_form:inline_entity_form
   - drupal:views
 
-# Information added by Drupal.org packaging script on 2020-01-20
-version: '8.x-1.10'
+# Information added by Drupal.org packaging script on 2021-06-22
+version: '8.x-2.6'
 project: 'entity_browser'
-datestamp: 1579563796
+datestamp: 1624401308
diff --git a/web/modules/entity_browser/tests/modules/entity_browser_test/config/install/views.view.test_deprecated_field.yml b/web/modules/entity_browser/tests/modules/entity_browser_test/config/install/views.view.test_deprecated_field.yml
index cbfab7bf5c8df7665764dbb549e9d9dd75b90808..fb23995228da443803b2da4fc68a1a2055fea301 100644
--- a/web/modules/entity_browser/tests/modules/entity_browser_test/config/install/views.view.test_deprecated_field.yml
+++ b/web/modules/entity_browser/tests/modules/entity_browser_test/config/install/views.view.test_deprecated_field.yml
@@ -12,7 +12,6 @@ description: 'Contains a deprecated "Entity browser bulk select form" field.'
 tag: ''
 base_table: node_field_data
 base_field: nid
-core: 8.x
 display:
   default:
     display_plugin: default
diff --git a/web/modules/entity_browser/tests/modules/entity_browser_test/entity_browser_test.info.yml b/web/modules/entity_browser/tests/modules/entity_browser_test/entity_browser_test.info.yml
index 6f46268d696fff3786b7f5997fa98bf3258b2c5a..b02578a5a00e9f368d9cd31c6ebefc4dbb3f4016 100644
--- a/web/modules/entity_browser/tests/modules/entity_browser_test/entity_browser_test.info.yml
+++ b/web/modules/entity_browser/tests/modules/entity_browser_test/entity_browser_test.info.yml
@@ -10,7 +10,7 @@ dependencies:
   - drupal:node
   - drupal:views
 
-# Information added by Drupal.org packaging script on 2020-01-20
-version: '8.x-1.10'
+# Information added by Drupal.org packaging script on 2021-06-22
+version: '8.x-2.6'
 project: 'entity_browser'
-datestamp: 1579563796
+datestamp: 1624401308
diff --git a/web/modules/entity_browser/tests/modules/entity_browser_test_configuration/entity_browser_test_configuration.info.yml b/web/modules/entity_browser/tests/modules/entity_browser_test_configuration/entity_browser_test_configuration.info.yml
index cca2b7b136bfa83dfbe08878e1523053ad8a6a19..dc2b9e651235c907f8b86ba30f4d4fbf81670a7a 100644
--- a/web/modules/entity_browser/tests/modules/entity_browser_test_configuration/entity_browser_test_configuration.info.yml
+++ b/web/modules/entity_browser/tests/modules/entity_browser_test_configuration/entity_browser_test_configuration.info.yml
@@ -10,7 +10,7 @@ dependencies:
   - drupal:views
   - drupal:user
 
-# Information added by Drupal.org packaging script on 2020-01-20
-version: '8.x-1.10'
+# Information added by Drupal.org packaging script on 2021-06-22
+version: '8.x-2.6'
 project: 'entity_browser'
-datestamp: 1579563796
+datestamp: 1624401308
diff --git a/web/modules/entity_browser/tests/modules/entity_browser_test_entityqueue/config/install/entityqueue.entity_queue.nodes.yml b/web/modules/entity_browser/tests/modules/entity_browser_test_entityqueue/config/install/entityqueue.entity_queue.nodes.yml
index 748929857470eb0569f1223f5c854a4d13b11e0b..f1dcdab7d252cd704dee138cf5f52a90d62a3964 100644
--- a/web/modules/entity_browser/tests/modules/entity_browser_test_entityqueue/config/install/entityqueue.entity_queue.nodes.yml
+++ b/web/modules/entity_browser/tests/modules/entity_browser_test_entityqueue/config/install/entityqueue.entity_queue.nodes.yml
@@ -24,4 +24,4 @@ queue_settings:
   min_size: 0
   max_size: 0
   act_as_queue: false
-  reverse_in_admin: false
+  reverse: false
diff --git a/web/modules/entity_browser/tests/modules/entity_browser_test_entityqueue/entity_browser_test_entityqueue.info.yml b/web/modules/entity_browser/tests/modules/entity_browser_test_entityqueue/entity_browser_test_entityqueue.info.yml
index 2588f92c43b6dbc88a3ded3b1356ab12f7e10a20..329e37d0140afce71d82ea9429ee339bff57d377 100644
--- a/web/modules/entity_browser/tests/modules/entity_browser_test_entityqueue/entity_browser_test_entityqueue.info.yml
+++ b/web/modules/entity_browser/tests/modules/entity_browser_test_entityqueue/entity_browser_test_entityqueue.info.yml
@@ -10,7 +10,7 @@ dependencies:
   - entity_browser:entity_browser
   - entity_browser_test:entity_browser_test
 
-# Information added by Drupal.org packaging script on 2020-01-20
-version: '8.x-1.10'
+# Information added by Drupal.org packaging script on 2021-06-22
+version: '8.x-2.6'
 project: 'entity_browser'
-datestamp: 1579563796
+datestamp: 1624401308
diff --git a/web/modules/entity_browser/tests/modules/entity_browser_test_paragraphs/entity_browser_test_paragraphs.info.yml b/web/modules/entity_browser/tests/modules/entity_browser_test_paragraphs/entity_browser_test_paragraphs.info.yml
index 715fb75db6a4640e96d04a9f548a5b401bb80e18..df491c484bb5f4c0298621233a3ead58b192e657 100644
--- a/web/modules/entity_browser/tests/modules/entity_browser_test_paragraphs/entity_browser_test_paragraphs.info.yml
+++ b/web/modules/entity_browser/tests/modules/entity_browser_test_paragraphs/entity_browser_test_paragraphs.info.yml
@@ -13,7 +13,7 @@ dependencies:
   - drupal:views
   - drupal:user
 
-# Information added by Drupal.org packaging script on 2020-01-20
-version: '8.x-1.10'
+# Information added by Drupal.org packaging script on 2021-06-22
+version: '8.x-2.6'
 project: 'entity_browser'
-datestamp: 1579563796
+datestamp: 1624401308
diff --git a/web/modules/entity_browser/tests/src/Functional/EntityBrowserUpdateHookTest.php b/web/modules/entity_browser/tests/src/Functional/EntityBrowserUpdateHookTest.php
index 8851bd6bb25a59b3f6fc0c1be7ecd891b8f0cbfa..34041f31b2218f59067d956ea0bc5a095ac37bcd 100644
--- a/web/modules/entity_browser/tests/src/Functional/EntityBrowserUpdateHookTest.php
+++ b/web/modules/entity_browser/tests/src/Functional/EntityBrowserUpdateHookTest.php
@@ -21,7 +21,7 @@ class EntityBrowserUpdateHookTest extends UpdatePathTestBase {
    */
   protected function setDatabaseDumpFiles() {
     $this->databaseDumpFiles = [
-      DRUPAL_ROOT . '/core/modules/system/tests/fixtures/update/drupal-8.bare.standard.php.gz',
+      DRUPAL_ROOT . '/core/modules/system/tests/fixtures/update/drupal-8.8.0.bare.standard.php.gz',
       __DIR__ . '/../../fixtures/update/entity_browser.update-hook-test.php',
     ];
   }
diff --git a/web/modules/entity_browser/tests/src/FunctionalJavascript/EntityBrowserJavascriptTestBase.php b/web/modules/entity_browser/tests/src/FunctionalJavascript/EntityBrowserJavascriptTestBase.php
deleted file mode 100644
index bece7379b66d4c285e45664258456af8778f0caf..0000000000000000000000000000000000000000
--- a/web/modules/entity_browser/tests/src/FunctionalJavascript/EntityBrowserJavascriptTestBase.php
+++ /dev/null
@@ -1,240 +0,0 @@
-<?php
-
-namespace Drupal\Tests\entity_browser\FunctionalJavascript;
-
-use Drupal\Component\Utility\NestedArray;
-use Drupal\Core\Field\FieldStorageDefinitionInterface;
-use Drupal\file\Entity\File;
-use Drupal\field\Entity\FieldConfig;
-use Drupal\field\Entity\FieldStorageConfig;
-use Drupal\FunctionalJavascriptTests\JavascriptTestBase;
-
-/**
- * Base class for Entity browser Javascript functional tests.
- *
- * @package Drupal\Tests\entity_browser\FunctionalJavascript
- *
- * @deprecated in Drupal 8.6.x, will be removed before Drupal 9.0.0.
- * Use \Drupal\Tests\entity_browser\FunctionalJavascript\EntityBrowserWebDriverTestBase instead
- *
- * @see \Drupal\FunctionalJavascriptTests\JavascriptTestBase for more info.
- */
-abstract class EntityBrowserJavascriptTestBase extends JavascriptTestBase {
-
-  /**
-   * Modules to enable.
-   *
-   * @var array
-   */
-  public static $modules = [
-    'entity_browser_test',
-    'views',
-    'block',
-    'node',
-    'file',
-    'image',
-    'field_ui',
-    'views_ui',
-    'system',
-  ];
-
-  /**
-   * Permissions for user that will be logged-in for test.
-   *
-   * @var array
-   */
-  protected static $userPermissions = [
-    'access test_entity_browser_file entity browser pages',
-    'create article content',
-    'access content',
-  ];
-
-  /**
-   * {@inheritdoc}
-   */
-  protected function setUp() {
-    parent::setUp();
-
-    FieldStorageConfig::create([
-      'field_name' => 'field_reference',
-      'type' => 'entity_reference',
-      'entity_type' => 'node',
-      'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED,
-      'settings' => [
-        'target_type' => 'file',
-      ],
-    ])->save();
-
-    FieldConfig::create([
-      'field_name' => 'field_reference',
-      'entity_type' => 'node',
-      'bundle' => 'article',
-      'label' => 'Reference',
-      'settings' => [],
-    ])->save();
-
-    /** @var \Drupal\Core\Entity\Display\EntityFormDisplayInterface $form_display */
-    $form_display = $this->container->get('entity_type.manager')
-      ->getStorage('entity_form_display')
-      ->load('node.article.default');
-
-    $form_display->setComponent('field_reference', [
-      'type' => 'entity_browser_entity_reference',
-      'settings' => [
-        'entity_browser' => 'test_entity_browser_file',
-        'field_widget_display' => 'label',
-        'open' => TRUE,
-      ],
-    ])->save();
-
-    $account = $this->drupalCreateUser(static::$userPermissions);
-    $this->drupalLogin($account);
-  }
-
-  /**
-   * Return an entity browser if it exists or creates a new one.
-   *
-   * @param string $browser_name
-   *   The entity browser name.
-   * @param string $display_id
-   *   The display plugin id.
-   * @param string $widget_selector_id
-   *   The widget selector id.
-   * @param string $selection_display_id
-   *   The selection display id.
-   * @param array $display_configuration
-   *   The display plugin configuration.
-   * @param array $widget_selector_configuration
-   *   The widget selector configuration.
-   * @param array $selection_display_configuration
-   *   The selection display configuration.
-   * @param array $widget_configurations
-   *   Widget configurations. Have be provided with widget UUIDs.
-   *
-   * @return \Drupal\entity_browser\EntityBrowserInterface
-   *   Returns an Entity Browser.
-   */
-  protected function getEntityBrowser($browser_name, $display_id, $widget_selector_id, $selection_display_id, array $display_configuration = [], array $widget_selector_configuration = [], array $selection_display_configuration = [], array $widget_configurations = []) {
-    /** @var \Drupal\Core\Entity\EntityStorageInterface $storage */
-    $storage = $this->container->get('entity_type.manager')
-      ->getStorage('entity_browser');
-
-    /** @var \Drupal\entity_browser\EntityBrowserInterface $browser */
-    $browser = $storage->load($browser_name) ?: $storage->create(['name' => $browser_name]);
-
-    $browser->setDisplay($display_id);
-    if ($display_configuration) {
-      $browser->getDisplay()->setConfiguration($display_configuration);
-    }
-
-    $browser->setWidgetSelector($widget_selector_id);
-    if ($widget_selector_configuration) {
-      $browser->getSelectionDisplay()
-        ->setConfiguration($widget_selector_configuration);
-    }
-
-    $browser->setSelectionDisplay($selection_display_id);
-    if ($selection_display_configuration) {
-      $browser->getSelectionDisplay()
-        ->setConfiguration($selection_display_configuration);
-    }
-
-    // Apply custom widget configurations.
-    if ($widget_configurations) {
-      foreach ($widget_configurations as $widget_uuid => $widget_config) {
-        $view_widget = $browser->getWidget($widget_uuid);
-        $view_widget->setConfiguration(NestedArray::mergeDeep($view_widget->getConfiguration(), $widget_config));
-      }
-    }
-
-    $browser->save();
-
-    // Clear caches after new browser is saved to remove old cached states.
-    drupal_flush_all_caches();
-
-    return $browser;
-  }
-
-  /**
-   * Creates an image.
-   *
-   * @param string $name
-   *   The name of the image.
-   * @param string $extension
-   *   File extension.
-   *
-   * @return \Drupal\file\FileInterface
-   *   Returns an image.
-   */
-  protected function createFile($name, $extension = 'jpg') {
-    file_put_contents('public://' . $name . '.' . $extension, $this->randomMachineName());
-
-    $image = File::create([
-      'filename' => $name . '.' . $extension,
-      'uri' => 'public://' . $name . '.' . $extension,
-    ]);
-    $image->setPermanent();
-    $image->save();
-
-    return $image;
-  }
-
-  /**
-   * Waits for jQuery to become ready and animations to complete.
-   */
-  protected function waitForAjaxToFinish() {
-    $this->assertSession()->assertWaitOnAjaxRequest();
-  }
-
-  /**
-   * Waits and asserts that a given element is visible.
-   *
-   * @param string $selector
-   *   The CSS selector.
-   * @param int $timeout
-   *   (Optional) Timeout in milliseconds, defaults to 1000.
-   * @param string $message
-   *   (Optional) Message to pass to assertJsCondition().
-   */
-  protected function waitUntilVisible($selector, $timeout = 1000, $message = '') {
-    $condition = "jQuery('" . $selector . ":visible').length > 0";
-    $this->assertJsCondition($condition, $timeout, $message);
-  }
-
-  /**
-   * Click on element found by xpath selector.
-   *
-   * @param string $xpathSelector
-   *   Xpath selector for element that will be used to trigger click on it.
-   * @param bool $waitAfterAction
-   *   Flag to wait after click is executed.
-   */
-  protected function clickXpathSelector($xpathSelector, $waitAfterAction = TRUE) {
-    $this->getSession()->getPage()->find('xpath', $xpathSelector)->click();
-
-    if ($waitAfterAction) {
-      $this->waitForAjaxToFinish();
-    }
-  }
-
-  /**
-   * Debugger method to save additional HTML output.
-   *
-   * The base class will only save browser output when accessing page using
-   * ::drupalGet and providing a printer class to PHPUnit. This method
-   * is intended for developers to help debug browser test failures and capture
-   * more verbose output.
-   */
-  protected function saveHtmlOutput() {
-    $out = $this->getSession()->getPage()->getContent();
-    // Ensure that any changes to variables in the other thread are picked up.
-    $this->refreshVariables();
-    if ($this->htmlOutputEnabled) {
-      $html_output = '<hr />Ending URL: ' . $this->getSession()->getCurrentUrl();
-      $html_output .= '<hr />' . $out;
-      $html_output .= $this->getHtmlOutputHeaders();
-      $this->htmlOutput($html_output);
-    }
-  }
-
-}
diff --git a/web/modules/entity_browser/tests/src/FunctionalJavascript/EntityReferenceWidgetTest.php b/web/modules/entity_browser/tests/src/FunctionalJavascript/EntityReferenceWidgetTest.php
index 9129e090601f7be4305c914b4de8c3be7d41e35c..53f309eec2e2b8c6794e880166b855134c70ef8f 100644
--- a/web/modules/entity_browser/tests/src/FunctionalJavascript/EntityReferenceWidgetTest.php
+++ b/web/modules/entity_browser/tests/src/FunctionalJavascript/EntityReferenceWidgetTest.php
@@ -6,6 +6,7 @@
 use Drupal\entity_browser\Element\EntityBrowserElement;
 use Drupal\field\Entity\FieldConfig;
 use Drupal\field\Entity\FieldStorageConfig;
+use Drupal\FunctionalJavascriptTests\SortableTestTrait;
 use Drupal\node\Entity\Node;
 use Drupal\user\Entity\Role;
 
@@ -16,6 +17,8 @@
  */
 class EntityReferenceWidgetTest extends EntityBrowserWebDriverTestBase {
 
+  use SortableTestTrait;
+
   /**
    * {@inheritdoc}
    */
@@ -102,7 +105,7 @@ public function testEntityReferenceWidget() {
     $this->assertSession()->buttonExists('Save')->press();
 
     $this->assertSession()->pageTextContains('Article Referencing node 1 has been created.');
-    $nid = $this->container->get('entity.query')->get('node')->condition('title', 'Referencing node 1')->execute();
+    $nid = \Drupal::entityQuery('node')->condition('title', 'Referencing node 1')->execute();
     $nid = reset($nid);
 
     // Assert correct translation appears.
@@ -208,6 +211,7 @@ public function testEntityReferenceWidget() {
         'auto_open' => FALSE,
       ]);
     $browser->save();
+
     // We'll need a third node to be able to make a new selection.
     $target_node2 = Node::create([
       'title' => 'Target example node 2',
@@ -337,14 +341,41 @@ public function testEntityReferenceWidget() {
    * Tests that drag and drop functions properly.
    */
   public function testDragAndDrop() {
+    $assert_session = $this->assertSession();
 
-    $gatsby = $this->createNode(['type' => 'shark', 'title' => 'Gatsby']);
-    $daisy = $this->createNode(['type' => 'jet', 'title' => 'Daisy']);
-    $nick = $this->createNode(['type' => 'article', 'title' => 'Nick']);
+    $time = time();
 
-    $santa = $this->createNode(['type' => 'shark', 'title' => 'Santa Claus']);
-    $easter_bunny = $this->createNode(['type' => 'jet', 'title' => 'Easter Bunny']);
-    $pumpkin_king = $this->createNode(['type' => 'article', 'title' => 'Pumpkin King']);
+    $gatsby = $this->createNode([
+      'type' => 'shark',
+      'title' => 'Gatsby',
+      'created' => $time--,
+    ]);
+    $daisy = $this->createNode([
+      'type' => 'jet',
+      'title' => 'Daisy',
+      'created' => $time--,
+    ]);
+    $nick = $this->createNode([
+      'type' => 'article',
+      'title' => 'Nick',
+      'created' => $time--,
+    ]);
+
+    $santa = $this->createNode([
+      'type' => 'shark',
+      'title' => 'Santa Claus',
+      'created' => $time--,
+    ]);
+    $easter_bunny = $this->createNode([
+      'type' => 'jet',
+      'title' => 'Easter Bunny',
+      'created' => $time--,
+    ]);
+    $pumpkin_king = $this->createNode([
+      'type' => 'article',
+      'title' => 'Pumpkin King',
+      'created' => $time--,
+    ]);
 
     $field1_storage_config = [
       'field_name' => 'field_east_egg',
@@ -490,8 +521,12 @@ public function testDragAndDrop() {
     // Open details 1.
     $this->assertSession()->elementExists('xpath', '(//summary)[1]')->click();
 
-    $first_item = $this->assertSession()->elementExists('xpath', "(//div[contains(@class, 'item-container')])[1]");
-    $this->dragDropElement($first_item, 160, 0);
+    // In the first set of selections, drag the first item into the second
+    // position.
+    $list_selector = '[data-drupal-selector="edit-field-east-egg-current"]';
+    $item_selector = "$list_selector .item-container";
+    $assert_session->elementsCount('css', $item_selector, 3);
+    $this->sortableAfter("$item_selector:first-child", "$item_selector:nth-child(2)", $list_selector);
     $this->waitForAjaxToFinish();
 
     $this->assertSession()->fieldExists('title[0][value]')->setValue('Hello World');
@@ -513,8 +548,12 @@ public function testDragAndDrop() {
         ->elementContains('xpath', "(//div[contains(@class, 'item-container')])[" . $key . "]", $value);
     }
 
-    $fourth = $this->assertSession()->elementExists('xpath', "(//div[contains(@class, 'item-container')])[4]");
-    $this->dragDropElement($fourth, 160, 0);
+    // In the second set of selections, drag the first item into the second
+    // position.
+    $list_selector = '[data-drupal-selector="edit-field-east-egg2-current"]';
+    $item_selector = "$list_selector .item-container";
+    $assert_session->elementsCount('css', $item_selector, 3);
+    $this->sortableAfter("$item_selector:first-child", "$item_selector:nth-child(2)", $list_selector);
 
     $correct_order = [
       4 => 'Easter Bunny',
@@ -544,4 +583,16 @@ public function testDragAndDrop() {
     }
   }
 
+  /**
+   * {@inheritdoc}
+   */
+  protected function sortableUpdate($item, $from, $to = NULL) {
+    list ($container) = explode(' ', $item, 2);
+
+    $js = <<<END
+Drupal.entityBrowserEntityReference.entitiesReordered(document.querySelector("$container"));
+END;
+    $this->getSession()->executeScript($js);
+  }
+
 }
diff --git a/web/modules/entity_browser/tests/src/FunctionalJavascript/ImageFieldTest.php b/web/modules/entity_browser/tests/src/FunctionalJavascript/ImageFieldTest.php
index 03cd9e1b7950f808e2975a2d3fef7f9cebc3c63f..07ab5d24a8c1e64323ccbd4dfba1beca9d1acdae 100644
--- a/web/modules/entity_browser/tests/src/FunctionalJavascript/ImageFieldTest.php
+++ b/web/modules/entity_browser/tests/src/FunctionalJavascript/ImageFieldTest.php
@@ -165,6 +165,7 @@ public function testImageFieldUsage() {
     // Image filename should not be present.
     $this->assertSession()->pageTextNotContains('example.jpg');
     $this->assertSession()->linkExists('Select entities');
+
     // Test the Replace functionality.
     $test_files = $this->getTestFiles('image');
     foreach ($test_files as $test_file) {
@@ -251,7 +252,7 @@ public function testImageFieldSettings() {
     /** @var \Drupal\file\Entity\File $file */
     $fid = explode(':', $entity_id)[1];
     $file = File::load($fid);
-    $this->assertContains('entity-browser-test', $file->getFileUri());
+    $this->assertStringContainsString('entity-browser-test', $file->getFileUri());
   }
 
 }
diff --git a/web/modules/entity_browser/tests/src/FunctionalJavascript/InlineEntityFormTest.php b/web/modules/entity_browser/tests/src/FunctionalJavascript/InlineEntityFormTest.php
index c2f36352c48a9de65f9ca8eb80602d337656da05..ef43ad35fc80c59e727c93902b940eaac69386bb 100644
--- a/web/modules/entity_browser/tests/src/FunctionalJavascript/InlineEntityFormTest.php
+++ b/web/modules/entity_browser/tests/src/FunctionalJavascript/InlineEntityFormTest.php
@@ -2,6 +2,8 @@
 
 namespace Drupal\Tests\entity_browser\FunctionalJavascript;
 
+use Drupal\FunctionalJavascriptTests\SortableTestTrait;
+
 /**
  * Test for integration of entity browser and inline entity form.
  *
@@ -11,6 +13,8 @@
  */
 class InlineEntityFormTest extends EntityBrowserWebDriverTestBase {
 
+  use SortableTestTrait;
+
   /**
    * {@inheritdoc}
    */
@@ -68,7 +72,7 @@ public function testEntityBrowserInsideInlineEntityForm() {
 
     $this->assertSession()->assertWaitOnAjaxRequest();
 
-    $page->fillField('Media name', 'Test Bundle Media');
+    $page->fillField('Name', 'Test Bundle Media');
     $page->clickLink('Select entities');
 
     $this->getSession()
@@ -95,8 +99,9 @@ public function testEntityBrowserInsideInlineEntityForm() {
     $this->assertSession()->assertWaitOnAjaxRequest();
 
     // Test reorder of elements.
-    $dragged = $this->xpath("//div[@data-drupal-selector='edit-ief-media-field-form-inline-entity-form-entities-0-form-ief-media-bundle-file-field-current-items-0']")[0];
-    $this->dragDropElement($dragged, 150, 0);
+    $list_selector = '[data-drupal-selector="edit-ief-media-field-form-inline-entity-form-entities-0-form-ief-media-type-file-field-current"]';
+    $item_selector = "$list_selector .item-container";
+    $this->sortableAfter("$item_selector:first-child", "$item_selector:last-child", $list_selector);
     $this->assertSession()->assertWaitOnAjaxRequest();
 
     $page->pressButton('Update Test File Media');
@@ -106,14 +111,14 @@ public function testEntityBrowserInsideInlineEntityForm() {
     $this->assertSession()->assertWaitOnAjaxRequest();
 
     // Check that element on second position is test_file1 (file:1).
-    $secondElement = $page->find('xpath', '//div[@data-drupal-selector="edit-ief-media-field-form-inline-entity-form-entities-0-form-ief-media-bundle-file-field-current"]/div[2]');
+    $secondElement = $page->find('xpath', '//div[@data-drupal-selector="edit-ief-media-field-form-inline-entity-form-entities-0-form-ief-media-type-file-field-current"]/div[2]');
     if (empty($secondElement)) {
       throw new \Exception('Element is not found.');
     }
     $this->assertSame('file:1', $secondElement->getAttribute('data-entity-id'));
 
     // Test remove of element.
-    $this->click('input[name*="ief_media_bundle_file_field_remove_1_1"]');
+    $this->click('input[name*="ief_media_type_file_field_remove_1_1"]');
     $this->assertSession()->assertWaitOnAjaxRequest();
 
     $page->pressButton('Update Test File Media');
@@ -124,7 +129,7 @@ public function testEntityBrowserInsideInlineEntityForm() {
 
     // Check that remote button does not exist for already removed entity.
     $this->assertSession()
-      ->elementNotExists('css', '[name*="ief_media_bundle_file_field_remove_1_1"]');
+      ->elementNotExists('css', '[name*="ief_media_type_file_field_remove_1_1"]');
 
     // Test add inside Entity Browser.
     $page->clickLink('Select entities');
@@ -147,7 +152,7 @@ public function testEntityBrowserInsideInlineEntityForm() {
     $this->assertSession()->assertWaitOnAjaxRequest();
 
     // Check that element on second position is test_file3 (file:3).
-    $secondElement = $page->find('xpath', '//div[@data-drupal-selector="edit-ief-media-field-form-inline-entity-form-entities-0-form-ief-media-bundle-file-field-current"]/div[2]');
+    $secondElement = $page->find('xpath', '//div[@data-drupal-selector="edit-ief-media-field-form-inline-entity-form-entities-0-form-ief-media-type-file-field-current"]/div[2]');
     if (empty($secondElement)) {
       throw new \Exception('Element is not found.');
     }
@@ -159,8 +164,9 @@ public function testEntityBrowserInsideInlineEntityForm() {
     $this->getSession()
       ->switchToIFrame('entity_browser_iframe_ief_entity_browser_file');
 
-    $dragged = $this->xpath("//div[@data-drupal-selector='edit-selected-items-2-0']")[0];
-    $this->dragDropElement($dragged, 150, 0);
+    $list_selector = '[data-drupal-selector="edit-selected"]';
+    $item_selector = "$list_selector .item-container";
+    $this->sortableAfter("$item_selector:first-child", "$item_selector:last-child", $list_selector);
     $this->assertSession()->assertWaitOnAjaxRequest();
 
     $page->pressButton('Use selected');
@@ -174,7 +180,7 @@ public function testEntityBrowserInsideInlineEntityForm() {
     $this->assertSession()->assertWaitOnAjaxRequest();
 
     // Check that element on second position is test_file2 (file:2).
-    $secondElement = $page->find('xpath', '//div[@data-drupal-selector="edit-ief-media-field-form-inline-entity-form-entities-0-form-ief-media-bundle-file-field-current"]/div[2]');
+    $secondElement = $page->find('xpath', '//div[@data-drupal-selector="edit-ief-media-field-form-inline-entity-form-entities-0-form-ief-media-type-file-field-current"]/div[2]');
     if (empty($secondElement)) {
       throw new \Exception('Element is not found.');
     }
@@ -201,7 +207,7 @@ public function testEntityBrowserInsideInlineEntityForm() {
     $this->assertSession()->assertWaitOnAjaxRequest();
 
     // Check that element on first position is test_file2 (file:2).
-    $secondElement = $page->find('xpath', '//div[@data-drupal-selector="edit-ief-media-field-form-inline-entity-form-entities-0-form-ief-media-bundle-file-field-current"]/div[1]');
+    $secondElement = $page->find('xpath', '//div[@data-drupal-selector="edit-ief-media-field-form-inline-entity-form-entities-0-form-ief-media-type-file-field-current"]/div[1]');
     if (empty($secondElement)) {
       throw new \Exception('Element is not found.');
     }
@@ -407,8 +413,20 @@ public function testEntityFormReferenceFormValidate() {
 
     $ief_table = $this->assertSession()->elementExists('xpath', '//table[contains(@id, "ief-entity-table-edit-field-nodes-entities")]');
     $table_text = $ief_table->getText();
-    $this->assertContains('Boxer', $table_text);
-    $this->assertContains('Napoleon', $table_text);
+    $this->assertStringContainsString('Boxer', $table_text);
+    $this->assertStringContainsString('Napoleon', $table_text);
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function sortableUpdate($item, $from, $to = NULL) {
+    list ($container) = explode(' ', $item, 2);
+
+    $js = <<<END
+(Drupal.entityBrowserEntityReference || Drupal.entityBrowserMultiStepDisplay).entitiesReordered(document.querySelector("$container"));
+END;
+    $this->getSession()->executeScript($js);
   }
 
 }
diff --git a/web/modules/entity_browser/tests/src/Kernel/Extension/EntityBrowserTest.php b/web/modules/entity_browser/tests/src/Kernel/Extension/EntityBrowserTest.php
index fbc4d105ce46e019135a31fb6e14b2ed6a6995f2..a21bcef59321e2b889854e4b27b0e767e53914f8 100644
--- a/web/modules/entity_browser/tests/src/Kernel/Extension/EntityBrowserTest.php
+++ b/web/modules/entity_browser/tests/src/Kernel/Extension/EntityBrowserTest.php
@@ -14,6 +14,7 @@
 use Drupal\entity_browser\SelectionDisplayInterface;
 use Drupal\KernelTests\KernelTestBase;
 use Drupal\views\Entity\View;
+use Symfony\Component\Routing\RouteCollection;
 
 /**
  * Tests the entity_browser config entity.
@@ -69,7 +70,7 @@ protected function setUp() {
     $this->widgetUUID = $this->container->get('uuid')->generate();
     $this->routeProvider = $this->container->get('router.route_provider');
 
-    $this->installSchema('system', ['router', 'key_value_expire', 'sequences']);
+    $this->installSchema('system', ['key_value_expire', 'sequences']);
     View::create(['id' => 'test_view'])->save();
   }
 
@@ -127,7 +128,7 @@ protected function createTests() {
         $this->fail('An entity browser without required ' . $plugin_type . ' created with no exception thrown.');
       }
       catch (PluginException $e) {
-        $this->assertContains('The "" plugin does not exist.', $e->getMessage(), 'An exception was thrown when an entity_browser was created without a ' . $plugin_type . ' plugin.');
+        $this->assertStringContainsString('The "" plugin does not exist.', $e->getMessage(), 'An exception was thrown when an entity_browser was created without a ' . $plugin_type . ' plugin.');
       }
     }
 
@@ -193,7 +194,7 @@ protected function createTests() {
 
     // Ensure that rebuilding routes works.
     $route = $this->routeProvider->getRoutesByPattern('/test-browser-test');
-    $this->assertTrue($route, 'Route exists.');
+    $this->assertInstanceOf(RouteCollection::class, $route);
   }
 
   /**
@@ -207,7 +208,7 @@ protected function loadTests() {
 
     // Verify several properties of the entity browser.
     $this->assertEquals($entity->label(), 'Testing entity browser instance');
-    $this->assertTrue($entity->uuid());
+    $this->assertNotEmpty($entity->uuid());
     $plugin = $entity->getDisplay();
     $this->assertTrue($plugin instanceof DisplayInterface, 'Testing display plugin.');
     $this->assertEquals($plugin->getPluginId(), 'standalone');