diff --git a/composer.json b/composer.json
index b425dbbb80aa9a83d33b1b3fc2d782280b9967fb..8adf5e8d4d7fbff370de2db6e2addff2df8e6df2 100644
--- a/composer.json
+++ b/composer.json
@@ -173,7 +173,7 @@
         "drupal/twig_tweak": "^2.4",
         "drupal/twitter_block": "3.0-alpha0",
         "drupal/userprotect": "1.0",
-        "drupal/video_embed_field": "2.0",
+        "drupal/video_embed_field": "^2.0",
         "drupal/view_unpublished": "^1.0@alpha",
         "drupal/views_accordion": "1.1",
         "drupal/views_ajax_history": "^1.1",
diff --git a/composer.lock b/composer.lock
index 3efcced53ccac12228c45763ce949ba00613c19e..ebf41e1ae0da87638aa5c4b5771002d29b519fb0 100644
--- a/composer.lock
+++ b/composer.lock
@@ -7720,25 +7720,26 @@
         },
         {
             "name": "drupal/video_embed_field",
-            "version": "2.0.0",
+            "version": "2.2.0",
             "source": {
                 "type": "git",
                 "url": "https://git.drupalcode.org/project/video_embed_field.git",
-                "reference": "8.x-2.0"
+                "reference": "8.x-2.2"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://ftp.drupal.org/files/projects/video_embed_field-8.x-2.0.zip",
-                "reference": "8.x-2.0",
-                "shasum": "e864f090b3cb9405376ca324d81ace83613e2019"
+                "url": "https://ftp.drupal.org/files/projects/video_embed_field-8.x-2.2.zip",
+                "reference": "8.x-2.2",
+                "shasum": "1e76eeefb27f4166d3d119e8c27469bbf12c0f06"
             },
             "require": {
-                "drupal/core": "*"
+                "drupal/core": "^8.7.0"
             },
             "require-dev": {
                 "drupal/colorbox": "*",
                 "drupal/media_entity": "*",
-                "drupal/media_entity_embeddable_video": "*"
+                "drupal/media_entity_embeddable_video": "*",
+                "drupal/video_embed_media": "*"
             },
             "type": "drupal-module",
             "extra": {
@@ -7746,13 +7747,12 @@
                     "dev-2.x": "2.x-dev"
                 },
                 "drupal": {
-                    "version": "8.x-1.x",
-                    "datestamp": "1523338084",
+                    "version": "8.x-2.2",
+                    "datestamp": "1564103585",
                     "security-coverage": {
                         "status": "covered",
                         "message": "Covered by Drupal's security advisory policy"
-                    },
-                    "package": "Field types"
+                    }
                 }
             },
             "notification-url": "https://packages.drupal.org/8/downloads",
@@ -7776,7 +7776,7 @@
             "description": "A pluggable field type for storing videos from external video hosts such as Vimeo and YouTube.",
             "homepage": "https://www.drupal.org/project/video_embed_field",
             "support": {
-                "source": "http://cgit.drupalcode.org/video_embed_field"
+                "source": "https://git.drupalcode.org/project/video_embed_field"
             }
         },
         {
diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json
index 740dd72003ab75f1b0f03470d541732d058802b6..f909a29f4a6b5368e3764c7baa175cceed49a1f4 100644
--- a/vendor/composer/installed.json
+++ b/vendor/composer/installed.json
@@ -7965,26 +7965,27 @@
     },
     {
         "name": "drupal/video_embed_field",
-        "version": "2.0.0",
-        "version_normalized": "2.0.0.0",
+        "version": "2.2.0",
+        "version_normalized": "2.2.0.0",
         "source": {
             "type": "git",
             "url": "https://git.drupalcode.org/project/video_embed_field.git",
-            "reference": "8.x-2.0"
+            "reference": "8.x-2.2"
         },
         "dist": {
             "type": "zip",
-            "url": "https://ftp.drupal.org/files/projects/video_embed_field-8.x-2.0.zip",
-            "reference": "8.x-2.0",
-            "shasum": "e864f090b3cb9405376ca324d81ace83613e2019"
+            "url": "https://ftp.drupal.org/files/projects/video_embed_field-8.x-2.2.zip",
+            "reference": "8.x-2.2",
+            "shasum": "1e76eeefb27f4166d3d119e8c27469bbf12c0f06"
         },
         "require": {
-            "drupal/core": "*"
+            "drupal/core": "^8.7.0"
         },
         "require-dev": {
             "drupal/colorbox": "*",
             "drupal/media_entity": "*",
-            "drupal/media_entity_embeddable_video": "*"
+            "drupal/media_entity_embeddable_video": "*",
+            "drupal/video_embed_media": "*"
         },
         "type": "drupal-module",
         "extra": {
@@ -7992,13 +7993,12 @@
                 "dev-2.x": "2.x-dev"
             },
             "drupal": {
-                "version": "8.x-1.x",
-                "datestamp": "1523338084",
+                "version": "8.x-2.2",
+                "datestamp": "1564103585",
                 "security-coverage": {
                     "status": "covered",
                     "message": "Covered by Drupal's security advisory policy"
-                },
-                "package": "Field types"
+                }
             }
         },
         "installation-source": "dist",
@@ -8023,7 +8023,7 @@
         "description": "A pluggable field type for storing videos from external video hosts such as Vimeo and YouTube.",
         "homepage": "https://www.drupal.org/project/video_embed_field",
         "support": {
-            "source": "http://cgit.drupalcode.org/video_embed_field"
+            "source": "https://git.drupalcode.org/project/video_embed_field"
         }
     },
     {
diff --git a/web/modules/video_embed_field/composer.json b/web/modules/video_embed_field/composer.json
index d5ceb51ff0990447ce38213940246ef3d178fb9c..ad7fdca15dbe6d257632ff5eb9ab20362747ec87 100644
--- a/web/modules/video_embed_field/composer.json
+++ b/web/modules/video_embed_field/composer.json
@@ -3,11 +3,5 @@
   "description": "A pluggable field type for storing videos from external video hosts such as Vimeo and YouTube.",
   "type": "drupal-module",
   "homepage": "https://www.drupal.org/project/video_embed_field",
-  "license": "GPL-2.0+",
-  "extra": {
-    "drupal": {
-      "package": "Field types",
-      "version": "8.x-1.x"
-    }
-  }
+  "license": "GPL-2.0+"
 }
diff --git a/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/drush.services.yml b/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/drush.services.yml
new file mode 100644
index 0000000000000000000000000000000000000000..719a80c8b38bf03c5a2fed118757bddb48fa6117
--- /dev/null
+++ b/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/drush.services.yml
@@ -0,0 +1,6 @@
+services:
+  vem_migrate_oembed.commands:
+    class: \Drupal\vem_migrate_oembed\Commands\VemCommands
+    arguments: ['@vem_migrate_oembed.migrate']
+    tags:
+      - { name: drush.command }
diff --git a/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/src/Commands/VemCommands.php b/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/src/Commands/VemCommands.php
new file mode 100644
index 0000000000000000000000000000000000000000..0608d5908735feead21f27cc79c6ee5438d933ed
--- /dev/null
+++ b/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/src/Commands/VemCommands.php
@@ -0,0 +1,50 @@
+<?php
+
+namespace Drupal\vem_migrate_oembed\Commands;
+
+use Drupal\vem_migrate_oembed\VemMigrate;
+use Drush\Commands\DrushCommands;
+
+/**
+ * A Drush commandfile.
+ *
+ * In addition to this file, you need a drush.services.yml
+ * in root of your module, and a composer.json file that provides the name
+ * of the services file to use.
+ *
+ * See these files for an example of injecting Drupal services:
+ *   - http://cgit.drupalcode.org/devel/tree/src/Commands/DevelCommands.php
+ *   - http://cgit.drupalcode.org/devel/tree/drush.services.yml
+ */
+class VemCommands extends DrushCommands {
+
+  /**
+   * The migrate service.
+   *
+   * @var \Drupal\vem_migrate_oembed\VemMigrate
+   */
+  protected $migrator;
+
+  /**
+   * SamplerCommands constructor.
+   *
+   * @param \Drupal\vem_migrate_oembed\VemMigrate $migrator
+   *   The migrate service.
+   */
+  public function __construct(VemMigrate $migrator) {
+    parent::__construct();
+    $this->migrator = $migrator;
+  }
+
+  /**
+   * Migrates from video_embed_media to core media.
+   *
+   * @throws \Drupal\Core\Entity\EntityStorageException
+   *
+   * @command vem:migrate_oembed
+   */
+  public function migrate() {
+    $this->migrator->migrate();
+  }
+
+}
diff --git a/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/src/VemMigrate.php b/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/src/VemMigrate.php
new file mode 100644
index 0000000000000000000000000000000000000000..8db940ba49e15214bd5c3de67ca8af58253ea8ed
--- /dev/null
+++ b/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/src/VemMigrate.php
@@ -0,0 +1,192 @@
+<?php
+
+namespace Drupal\vem_migrate_oembed;
+
+use Drupal\Core\Config\ConfigFactoryInterface;
+use Drupal\Core\Database\Connection;
+use Drupal\Core\Entity\Entity\EntityFormDisplay;
+use Drupal\Core\Entity\Entity\EntityViewDisplay;
+use Drupal\Core\Entity\EntityFieldManagerInterface;
+use Drupal\Core\Entity\EntityLastInstalledSchemaRepositoryInterface;
+use Drupal\Core\KeyValueStore\KeyValueFactoryInterface;
+use Drupal\field\Entity\FieldConfig;
+use Drupal\field\Entity\FieldStorageConfig;
+use Drupal\media\Entity\MediaType;
+
+/**
+ * Class VemMigrate.
+ */
+class VemMigrate {
+
+  /**
+   * The config factory service.
+   *
+   * @var \Drupal\Core\Config\ConfigFactoryInterface
+   */
+  protected $configFactory;
+
+  /**
+   * The last installed schema repository service.
+   *
+   * @var \Drupal\Core\Entity\EntityLastInstalledSchemaRepositoryInterface
+   */
+  protected $lastInstalledSchemaRepository;
+
+  /**
+   * The database connection.
+   *
+   * @var \Drupal\Core\Database\Connection
+   */
+  protected $database;
+
+  /**
+   * The key value store.
+   *
+   * @var \Drupal\Core\KeyValueStore\KeyValueFactoryInterface
+   */
+  protected $keyValue;
+
+  /**
+   * The entity field manager service.
+   *
+   * @var \Drupal\Core\Entity\EntityFieldManagerInterface
+   */
+  protected $entityFieldManager;
+
+  /**
+   * VemMigrate constructor.
+   *
+   * @param \Drupal\Core\Config\ConfigFactoryInterface $configFactory
+   *   The config factory service.
+   * @param \Drupal\Core\Entity\EntityLastInstalledSchemaRepositoryInterface $entityLastInstalledSchemaRepository
+   *   The last installed schema repository service.
+   * @param \Drupal\Core\Database\Connection $connection
+   *   The database connection.
+   * @param \Drupal\Core\KeyValueStore\KeyValueFactoryInterface $keyValueFactory
+   *   The key value store.
+   * @param \Drupal\Core\Entity\EntityFieldManagerInterface $entityFieldManager
+   *   The entity field manager service.
+   */
+  public function __construct(ConfigFactoryInterface $configFactory, EntityLastInstalledSchemaRepositoryInterface $entityLastInstalledSchemaRepository, Connection $connection, KeyValueFactoryInterface $keyValueFactory, EntityFieldManagerInterface $entityFieldManager) {
+    $this->configFactory = $configFactory;
+    $this->lastInstalledSchemaRepository = $entityLastInstalledSchemaRepository;
+    $this->database = $connection;
+    $this->keyValue = $keyValueFactory;
+    $this->entityFieldManager = $entityFieldManager;
+  }
+
+  /**
+   * Migrates from video_embed_media to core media.
+   *
+   * @throws \Drupal\Core\Entity\EntityStorageException
+   */
+  public function migrate() {
+
+    foreach ($this->configFactory->listAll('media.type.') as $media_type) {
+      $media_type = $this->configFactory->getEditable($media_type);
+
+      if ($media_type->get('source') !== 'video_embed_field') {
+        continue;
+      }
+
+      $media_type->set('source', 'oembed:video');
+      $media_type->set('source_configuration.thumbnails_directory', 'public://oembed_thumbnails');
+
+      $media_type->save(TRUE);
+
+      MediaType::load($media_type->get('id'))->calculateDependencies()->save();
+    }
+
+    $media_definition = $this->lastInstalledSchemaRepository->getLastInstalledFieldStorageDefinitions('media');
+    foreach ($this->configFactory->listAll('field.storage.media') as $field_storage) {
+      $field_storage = $this->configFactory->getEditable($field_storage);
+      $field_name = $field_storage->get('field_name');
+
+      if ($field_storage->get('type') !== 'video_embed_field') {
+        continue;
+      }
+
+      $this->database->schema()->changeField("media__$field_name", "${field_name}_value", "${field_name}_value", ['type' => 'varchar', 'length' => 255]);
+      $this->database->schema()->changeField("media_revision__$field_name", "${field_name}_value", "${field_name}_value", ['type' => 'varchar', 'length' => 255]);
+
+      $store = $this->keyValue->get("entity.storage_schema.sql");
+      $data = $store->get("media.field_schema_data.$field_name");
+      $data["media__$field_name"]['fields']["${field_name}_value"]['length'] = 255;
+      $data["media_revision__$field_name"]['fields']["${field_name}_value"]['length'] = 255;
+      $store->set("media.field_schema_data.$field_name", $data);
+
+      $media_definition[$field_name]->set('type', 'string');
+      $this->lastInstalledSchemaRepository->setLastInstalledFieldStorageDefinition($media_definition[$field_name]);
+
+      $this->entityFieldManager->clearCachedFieldDefinitions();
+
+      $field_storage->set('type', 'string');
+      $field_storage->set('module', 'core');
+      $field_storage->set('settings.max_length', 255);
+      $field_storage->set('settings.is_ascii', FALSE);
+      $field_storage->set('settings.case_sensitive', FALSE);
+      $field_storage->save(TRUE);
+
+      FieldStorageConfig::loadByName('media', $field_name)->calculateDependencies()->save();
+    }
+
+    foreach ($this->configFactory->listAll('field.field.media') as $field_config) {
+      $field_config = $this->configFactory->getEditable($field_config);
+
+      if ($field_config->get('field_type') !== 'video_embed_field') {
+        continue;
+      }
+
+      $field_config->set('field_type', 'string');
+      $field_config->set('settings', []);
+      $field_config->save(TRUE);
+
+      FieldConfig::loadByName('media', $field_config->get('bundle'), $field_config->get('field_name'))->calculateDependencies()->save();
+    }
+
+    foreach ($this->configFactory->listAll('core.entity_view_display.media') as $entity_view_display) {
+      $entity_view_display = $this->configFactory->getEditable($entity_view_display);
+
+      $fields = array_keys($entity_view_display->get('content'));
+      foreach ($fields as $field) {
+        if ($entity_view_display->get("content.$field.type") !== 'video_embed_field_video') {
+          continue;
+        }
+
+        $entity_view_display->set("content.$field.type", 'oembed');
+        $entity_view_display->set("content.$field.settings.max_width", $entity_view_display->get("content.$field.settings.width"));
+        $entity_view_display->set("content.$field.settings.max_height", $entity_view_display->get("content.$field.settings.height"));
+        $entity_view_display->clear("content.$field.settings.autoplay");
+        $entity_view_display->clear("content.$field.settings.responsive");
+        $entity_view_display->save(TRUE);
+
+        $bundle = $entity_view_display->get('bundle');
+        $mode = $entity_view_display->get('mode');
+        EntityViewDisplay::load("media.$bundle.$mode")->calculateDependencies()->save();
+      }
+
+    }
+
+    foreach ($this->configFactory->listAll('core.entity_form_display.media') as $entity_form_display) {
+      $entity_form_display = $this->configFactory->getEditable($entity_form_display);
+
+      $fields = array_keys($entity_form_display->get('content'));
+      foreach ($fields as $field) {
+        if ($entity_form_display->get("content.$field.type") !== 'video_embed_field_textfield') {
+          continue;
+        }
+
+        $entity_form_display->set("content.$field.type", 'oembed_textfield');
+        $entity_form_display->set("content.$field.settings.size", 60);
+        $entity_form_display->set("content.$field.settings.placeholder", '');
+        $entity_form_display->save(TRUE);
+
+        $bundle = $entity_form_display->get('bundle');
+        $mode = $entity_form_display->get('mode');
+        EntityFormDisplay::load("media.$bundle.$mode")->calculateDependencies()->save();
+      }
+
+    }
+  }
+
+}
diff --git a/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/tests/src/Functional/oEmbedUpdateTest.php b/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/tests/src/Functional/oEmbedUpdateTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..6ed942555a5f1f3ab501a40d364fb87a72c9028b
--- /dev/null
+++ b/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/tests/src/Functional/oEmbedUpdateTest.php
@@ -0,0 +1,56 @@
+<?php
+
+namespace Drupal\Tests\vem_embed_media\Functional;
+
+use Drupal\media\Entity\MediaType;
+use Drupal\Tests\BrowserTestBase;
+use Drupal\Tests\media\Traits\MediaTypeCreationTrait;
+
+/**
+ * Tests the VEM to OEmbed migration.
+ *
+ * @group vem_embed_media
+ */
+class oEmbedUpdateTest extends BrowserTestBase {
+
+  use MediaTypeCreationTrait;
+
+  /**
+   * {@inheritdoc}
+   */
+  protected static $modules = ['vem_migrate_oembed'];
+
+  /**
+   * Tests the VEM to OEmbed migration.
+   */
+  public function testOEmbedUpdate() {
+
+    $mediaType = $this->createMediaType('video_embed_field');
+    $this->assertEqual($mediaType->getSource()->getPluginId(), 'video_embed_field');
+
+    $sourceField = $mediaType->getSource()->getSourceFieldDefinition($mediaType);
+    $this->assertEqual($sourceField->getType(), 'video_embed_field');
+
+    $formDisplay = entity_get_form_display('media', $mediaType->id(), 'default');
+    $formField = $formDisplay->getComponent($sourceField->getName());
+
+    $this->assertEqual($formField['type'], 'video_embed_field_textfield');
+
+    /** @var \Drupal\vem_migrate_oembed\VemMigrate $vemService */
+    $vemService = \Drupal::service('vem_migrate_oembed.migrate');
+    $vemService->migrate();
+
+    /** @var \Drupal\media\Entity\MediaType $mediaType */
+    $mediaType = MediaType::load($mediaType->id());
+    $this->assertEqual($mediaType->getSource()->getPluginId(), 'oembed:video');
+
+    $sourceField = $mediaType->getSource()->getSourceFieldDefinition($mediaType);
+    $this->assertEqual($sourceField->getType(), 'string');
+
+    $formDisplay = entity_get_form_display('media', $mediaType->id(), 'default');
+    $formField = $formDisplay->getComponent($sourceField->getName());
+
+    $this->assertEqual($formField['type'], 'oembed_textfield');
+  }
+
+}
diff --git a/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/vem_migrate_oembed.drush.inc b/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/vem_migrate_oembed.drush.inc
new file mode 100644
index 0000000000000000000000000000000000000000..69bf2112e62b38f2b84ae39e119cc5b1035325e8
--- /dev/null
+++ b/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/vem_migrate_oembed.drush.inc
@@ -0,0 +1,33 @@
+<?php
+
+/**
+ * @file
+ * Drush integration for vem_migrate_oembed.
+ */
+
+/**
+ * Implements hook_drush_command().
+ */
+function vem_migrate_oembed_drush_command() {
+
+  $items['video-embed-media-migrate-oembed'] = [
+    'description' => 'Migrate from VEF to oEmbed in core.',
+    'aliases' => ['vemmo'],
+    'core' => ['8+'],
+    'examples' => [
+      "drush vemmo" => "Migrate from VEF to oEmbed in core",
+    ],
+  ];
+
+  return $items;
+}
+
+/**
+ * Callback for drush commmand "video-embed-media-migrate-oembed" (vemmo).
+ */
+function drush_vem_migrate_oembed_video_embed_media_migrate_oembed() {
+
+  /** @var \Drupal\vem_migrate_oembed\VemMigrate $migrate */
+  $migrate = \Drupal::service('vem_migrate_oembed.migrate');
+  $migrate->migrate();
+}
diff --git a/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/vem_migrate_oembed.info.yml b/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/vem_migrate_oembed.info.yml
new file mode 100644
index 0000000000000000000000000000000000000000..b8a65a11f537e3a6d46b91612eaa3368b56a0b4a
--- /dev/null
+++ b/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/vem_migrate_oembed.info.yml
@@ -0,0 +1,14 @@
+name: Video Embed Media - Migrate to core oEmbed
+type: module
+description: 'Provides a drush command to migrate to cores oEmbed'
+package: Video Embed Field
+# core: 8.x
+dependencies:
+  - drupal:media (>= 8.6)
+  - video_embed_field:video_embed_media
+
+# Information added by Drupal.org packaging script on 2019-07-26
+version: '8.x-2.2'
+core: '8.x'
+project: 'video_embed_field'
+datestamp: 1564103587
diff --git a/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/vem_migrate_oembed.services.yml b/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/vem_migrate_oembed.services.yml
new file mode 100644
index 0000000000000000000000000000000000000000..7c2db2d1ef6dfc100e6fa54f31246f0150989e7d
--- /dev/null
+++ b/web/modules/video_embed_field/modules/video_embed_media/modules/vem_migrate_oembed/vem_migrate_oembed.services.yml
@@ -0,0 +1,4 @@
+services:
+  vem_migrate_oembed.migrate:
+    class: Drupal\vem_migrate_oembed\VemMigrate
+    arguments: ['@config.factory', '@entity.last_installed_schema.repository', '@database', '@keyvalue', '@entity_field.manager']
diff --git a/web/modules/video_embed_field/modules/video_embed_media/tests/src/Functional/BundleTest.php b/web/modules/video_embed_field/modules/video_embed_media/tests/src/Functional/BundleTest.php
index ece13725ce52b5bb7ead41ad0ae1f988124b32c5..7f958a2f56454854f2b8d31d7fe4c137f51e112b 100644
--- a/web/modules/video_embed_field/modules/video_embed_media/tests/src/Functional/BundleTest.php
+++ b/web/modules/video_embed_field/modules/video_embed_media/tests/src/Functional/BundleTest.php
@@ -3,7 +3,6 @@
 namespace Drupal\Tests\video_embed_media\Functional;
 
 use Drupal\Tests\media\Functional\MediaFunctionalTestBase;
-use Drupal\Tests\media\Functional\MediaFunctionalTestCreateMediaTypeTrait;
 use Drupal\Tests\video_embed_field\Functional\AdminUserTrait;
 
 /**
@@ -39,7 +38,7 @@ public function testMediaBundleCreation() {
     $this->drupalLogin($this->adminUser);
 
     // Create bundle and modify form display.
-    $media_type = $this->createMediaType(['bundle' => 'video_bundle'], 'video_embed_field');
+    $media_type = $this->createMediaType('video_embed_field', ['bundle' => 'video_bundle']);
     $source = $media_type->getSource();
     $source_field = $source->getSourceFieldDefinition($media_type);
     if ($source_field->isDisplayConfigurable('form')) {
@@ -49,7 +48,7 @@ public function testMediaBundleCreation() {
 
       // @todo Replace entity_get_form_display() when #2367933 is done.
       // https://www.drupal.org/node/2872159.
-      entity_get_form_display('media', $media_type->id(), 'default')
+      $this->container->get('entity_display.repository')->getFormDisplay('media', $media_type->id(), 'default')
         ->setComponent($source_field->getName(), $component)
         ->save();
     }
diff --git a/web/modules/video_embed_field/modules/video_embed_media/tests/src/Kernel/DefaultNameTest.php b/web/modules/video_embed_field/modules/video_embed_media/tests/src/Kernel/DefaultNameTest.php
index e51b806940e3f7cc2ab9b59b8e927e4a6711cb00..71503730dbb477b96da3055cdf0a9b35fe7dd241 100644
--- a/web/modules/video_embed_field/modules/video_embed_media/tests/src/Kernel/DefaultNameTest.php
+++ b/web/modules/video_embed_field/modules/video_embed_media/tests/src/Kernel/DefaultNameTest.php
@@ -3,9 +3,7 @@
 namespace Drupal\Tests\video_embed_media\Kernel;
 
 use Drupal\media\Entity\Media;
-use Drupal\media\Entity\MediaType;
 use Drupal\Tests\media\Kernel\MediaKernelTestBase;
-use Drupal\video_embed_media\Plugin\media\Source\VideoEmbedField;
 
 /**
  * Test the media bundle default names.
diff --git a/web/modules/video_embed_field/modules/video_embed_media/tests/src/Kernel/ProvidedFieldsTest.php b/web/modules/video_embed_field/modules/video_embed_media/tests/src/Kernel/ProvidedFieldsTest.php
index cd90463256a957524b4e120cb702542227f29059..b7ef9e8883b20fe8be705f83ab208dae005dfd15 100644
--- a/web/modules/video_embed_field/modules/video_embed_media/tests/src/Kernel/ProvidedFieldsTest.php
+++ b/web/modules/video_embed_field/modules/video_embed_media/tests/src/Kernel/ProvidedFieldsTest.php
@@ -2,10 +2,9 @@
 
 namespace Drupal\Tests\video_embed_media\Kernel;
 
+use Drupal\Core\File\FileSystemInterface;
 use Drupal\media\Entity\Media;
-use Drupal\media\Entity\MediaType;
 use Drupal\Tests\media\Kernel\MediaKernelTestBase;
-use Drupal\video_embed_media\Plugin\media\Source\VideoEmbedField;
 
 /**
  * Test the provided fields.
@@ -122,7 +121,7 @@ public function setUp() {
     $this->plugin = $this->entityType->getSource();
 
     $dir = 'public://video_thumbnails';
-    file_prepare_directory($dir, FILE_CREATE_DIRECTORY | FILE_MODIFY_PERMISSIONS);
+    $this->container->get('file_system')->prepareDirectory($dir, FileSystemInterface::CREATE_DIRECTORY | FileSystemInterface::MODIFY_PERMISSIONS);
   }
 
 }
diff --git a/web/modules/video_embed_field/modules/video_embed_media/video_embed_media.info.yml b/web/modules/video_embed_field/modules/video_embed_media/video_embed_media.info.yml
index bc5073d7ed4db3806c184e876108521d902a44b3..42dd220d8a9ce2cd951f8d096f978a59205ca0d5 100644
--- a/web/modules/video_embed_field/modules/video_embed_media/video_embed_media.info.yml
+++ b/web/modules/video_embed_field/modules/video_embed_media/video_embed_media.info.yml
@@ -7,8 +7,8 @@ dependencies:
   - drupal:media (>= 8.4)
   - video_embed_field:video_embed_field
 
-# Information added by Drupal.org packaging script on 2018-04-10
-version: '8.x-2.0'
+# Information added by Drupal.org packaging script on 2019-07-26
+version: '8.x-2.2'
 core: '8.x'
 project: 'video_embed_field'
-datestamp: 1523338087
+datestamp: 1564103587
diff --git a/web/modules/video_embed_field/modules/video_embed_media/video_embed_media.install b/web/modules/video_embed_field/modules/video_embed_media/video_embed_media.install
index fe4475310fc842365a245fe00095c0c8b86ab24d..843637edfe844fd70c0c06c9a5d5e70b49f6d0be 100644
--- a/web/modules/video_embed_field/modules/video_embed_media/video_embed_media.install
+++ b/web/modules/video_embed_field/modules/video_embed_media/video_embed_media.install
@@ -5,14 +5,18 @@
  * Install file for video_embed_media.
  */
 
+use Drupal\Core\File\FileSystemInterface;
+
 /**
  * Implements hook_install().
  */
 function video_embed_media_install() {
+  /** @var \Drupal\Core\File\FileSystemInterface $file_system */
+  $file_system = \Drupal::service('file_system');
   // Copy the video icons into the right place.
   $icon_folder = drupal_get_path('module', 'video_embed_media') . '/images/icons';
   $destination = \Drupal::config('media.settings')->get('icon_base_uri');
-  file_prepare_directory($destination, FILE_CREATE_DIRECTORY | FILE_MODIFY_PERMISSIONS);
+  $file_system->prepareDirectory($destination, FileSystemInterface::CREATE_DIRECTORY | FileSystemInterface::MODIFY_PERMISSIONS);
 
   $files = file_scan_directory($icon_folder, '/.*\.(svg|png|jpg|jpeg|gif)$/');
   foreach ($files as $file) {
@@ -22,7 +26,7 @@ function video_embed_media_install() {
     // are referenced somewhere else. Since showing an error that it was not
     // possible to copy the files is also confusing, we silently do nothing.
     if (!file_exists($destination . DIRECTORY_SEPARATOR . $file->filename)) {
-      file_unmanaged_copy($file->uri, $destination, FILE_EXISTS_ERROR);
+      $file_system->copy($file->uri, $destination, FileSystemInterface::EXISTS_ERROR);
     }
   }
 }
diff --git a/web/modules/video_embed_field/modules/video_embed_wysiwyg/tests/src/FunctionalJavascript/EmbedDialogTest.php b/web/modules/video_embed_field/modules/video_embed_wysiwyg/tests/src/FunctionalJavascript/EmbedDialogTest.php
index c80d66328031e626d4e0d857671b95ee4d35c140..4be4bc6f4ace5cf4f2e8fb650c82c40b8ad483ff 100644
--- a/web/modules/video_embed_field/modules/video_embed_wysiwyg/tests/src/FunctionalJavascript/EmbedDialogTest.php
+++ b/web/modules/video_embed_field/modules/video_embed_wysiwyg/tests/src/FunctionalJavascript/EmbedDialogTest.php
@@ -2,15 +2,15 @@
 
 namespace Drupal\Tests\video_embed_wysiwyg\FunctionalJavascript;
 
-use Drupal\FunctionalJavascriptTests\JavascriptTestBase;
-use Drupal\simpletest\ContentTypeCreationTrait;
+use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
+use Drupal\Tests\node\Traits\ContentTypeCreationTrait;
 
 /**
  * Test the dialog form.
  *
  * @group video_embed_wysiwyg
  */
-class EmbedDialogTest extends JavascriptTestBase {
+class EmbedDialogTest extends WebDriverTestBase {
 
   use ContentTypeCreationTrait;
 
@@ -48,12 +48,13 @@ public function setUp() {
 
     // Assert access is denied without enabling the filter.
     $this->drupalGet('video-embed-wysiwyg/dialog/plain_text');
-    $this->assertEquals(403, $this->getSession()->getStatusCode());
+    $this->assertSession()->pageTextContains('Access denied');
 
     // Enable the filter.
     $this->drupalGet('admin/config/content/formats/manage/plain_text');
     $this->find('[name="editor[editor]"]')->setValue('ckeditor');
     $this->assertSession()->assertWaitOnAjaxRequest();
+    $this->getSession()->getDriver()->executeScript("jQuery('.form-item-editor-settings-toolbar-button-groups').show();");
     $this->submitForm([
       'filters[video_embed_wysiwyg][status]' => TRUE,
       'filters[filter_html_escape][status]' => FALSE,
@@ -62,7 +63,7 @@ public function setUp() {
 
     // Visit the modal again.
     $this->drupalGet('video-embed-wysiwyg/dialog/plain_text');
-    $this->assertEquals(200, $this->getSession()->getStatusCode());
+    $this->assertSession()->pageTextNotContains('Access denied');
   }
 
   /**
@@ -77,8 +78,6 @@ public function testEmbedDialog() {
     // Assert all the form fields appear on the modal.
     $this->assertSession()->pageTextContains('Autoplay');
     $this->assertSession()->pageTextContains('Responsive Video');
-    $this->assertSession()->pageTextContains('Width');
-    $this->assertSession()->pageTextContains('Height');
     $this->assertSession()->pageTextContains('Video URL');
 
     // Attempt to submit the modal with no values.
diff --git a/web/modules/video_embed_field/modules/video_embed_wysiwyg/video_embed_wysiwyg.info.yml b/web/modules/video_embed_field/modules/video_embed_wysiwyg/video_embed_wysiwyg.info.yml
index bf4ef98bb3d6c62b66e6bcd1be6fbab1c069cdbc..a2cb4b778c553be0552697816b6c810c7d68e89b 100644
--- a/web/modules/video_embed_field/modules/video_embed_wysiwyg/video_embed_wysiwyg.info.yml
+++ b/web/modules/video_embed_field/modules/video_embed_wysiwyg/video_embed_wysiwyg.info.yml
@@ -8,8 +8,8 @@ dependencies:
   - drupal:ckeditor
   - video_embed_field:video_embed_field
 
-# Information added by Drupal.org packaging script on 2018-04-10
-version: '8.x-2.0'
+# Information added by Drupal.org packaging script on 2019-07-26
+version: '8.x-2.2'
 core: '8.x'
 project: 'video_embed_field'
-datestamp: 1523338087
+datestamp: 1564103587
diff --git a/web/modules/video_embed_field/src/Plugin/Field/FieldFormatter/LazyLoad.php b/web/modules/video_embed_field/src/Plugin/Field/FieldFormatter/LazyLoad.php
index 4376a68be6ebc792d6c61abc33307e374028d9e5..5bba79a378e43e4500abe0fbb6acc14aec3b6b80 100644
--- a/web/modules/video_embed_field/src/Plugin/Field/FieldFormatter/LazyLoad.php
+++ b/web/modules/video_embed_field/src/Plugin/Field/FieldFormatter/LazyLoad.php
@@ -107,7 +107,7 @@ public function viewElements(FieldItemListInterface $items, $langcode) {
       // Add a play button.
       $itemThumb[] = [
         '#type' => 'html_tag',
-        '#tag' => 'div',
+        '#tag' => 'button',
         '#attributes' => [
           'class' => ['video-embed-field-lazy-play']
         ],
diff --git a/web/modules/video_embed_field/src/Plugin/migrate/cckfield/EmvideoField.php b/web/modules/video_embed_field/src/Plugin/migrate/cckfield/EmvideoField.php
index 5774d852a658d565be9f3fb584d783dfb778cc39..37491c10fae78ce07261e2cd64d5741086b34cc5 100644
--- a/web/modules/video_embed_field/src/Plugin/migrate/cckfield/EmvideoField.php
+++ b/web/modules/video_embed_field/src/Plugin/migrate/cckfield/EmvideoField.php
@@ -4,7 +4,7 @@
 
 use Drupal\migrate\Plugin\MigrationInterface;
 use Drupal\migrate\Row;
-use Drupal\migrate_drupal\Plugin\migrate\cckfield\CckFieldPluginBase;
+use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
 
 /**
  * Plugin to migrate from the Drupal 6 emfield module.
@@ -16,7 +16,7 @@
  *   destination_module = "video_embed_field",
  * )
  */
-class EmvideoField extends CckFieldPluginBase {
+class EmvideoField extends FieldPluginBase {
 
   /**
    * {@inheritdoc}
@@ -48,9 +48,9 @@ public function getFieldWidgetMap() {
   /**
    * {@inheritdoc}
    */
-  public function processCckFieldValues(MigrationInterface $migration, $field_name, $data) {
+  public function defineValueProcessPipeline(MigrationInterface $migration, $field_name, $data) {
     $process = [
-      'plugin' => 'iterator',
+      'plugin' => 'sub_process',
       'source' => $field_name,
       'process' => [
         'value' => 'embed',
diff --git a/web/modules/video_embed_field/src/Plugin/migrate/cckfield/VideoEmbedField.php b/web/modules/video_embed_field/src/Plugin/migrate/cckfield/VideoEmbedField.php
index 67c4487d0ab1524c867d8d850bd4c65982b154b7..97e0f216b814942cbd3fae76a3182f02698cfbd7 100644
--- a/web/modules/video_embed_field/src/Plugin/migrate/cckfield/VideoEmbedField.php
+++ b/web/modules/video_embed_field/src/Plugin/migrate/cckfield/VideoEmbedField.php
@@ -4,7 +4,7 @@
 
 use Drupal\migrate\Plugin\MigrationInterface;
 use Drupal\migrate\Row;
-use Drupal\migrate_drupal\Plugin\migrate\cckfield\CckFieldPluginBase;
+use Drupal\migrate_drupal\Plugin\migrate\field\FieldPluginBase;
 
 /**
  * Plugin to migrate from the Drupal 7 video_embed_field module.
@@ -16,7 +16,7 @@
  *   destination_module = "video_embed_field",
  * )
  */
-class VideoEmbedField extends CckFieldPluginBase {
+class VideoEmbedField extends FieldPluginBase {
 
   /**
    * {@inheritdoc}
@@ -48,9 +48,9 @@ public function getFieldWidgetMap() {
   /**
    * {@inheritdoc}
    */
-  public function processCckFieldValues(MigrationInterface $migration, $field_name, $data) {
+  public function defineValueProcessPipeline(MigrationInterface $migration, $field_name, $data) {
     $process = [
-      'plugin' => 'iterator',
+      'plugin' => 'sub_process',
       'source' => $field_name,
       'process' => [
         'value' => 'video_url',
diff --git a/web/modules/video_embed_field/src/Plugin/video_embed_field/Provider/YouTube.php b/web/modules/video_embed_field/src/Plugin/video_embed_field/Provider/YouTube.php
index aa11aeac98a65e24336e0ef21515d84cc4b95866..224edd2e2d6f0157b77968877489ae05f953101d 100644
--- a/web/modules/video_embed_field/src/Plugin/video_embed_field/Provider/YouTube.php
+++ b/web/modules/video_embed_field/src/Plugin/video_embed_field/Provider/YouTube.php
@@ -47,8 +47,13 @@ public function renderEmbedCode($width, $height, $autoplay) {
    *   The time index where the video should start based on the URL.
    */
   protected function getTimeIndex() {
-    preg_match('/[&\?]t=(?<timeindex>\d+)/', $this->getInput(), $matches);
-    return isset($matches['timeindex']) ? $matches['timeindex'] : 0;
+    preg_match('/[&\?]t=((?<hours>\d+)h)?((?<minutes>\d+)m)?(?<seconds>\d+)s?/', $this->getInput(), $matches);
+
+    $hours = !empty($matches['hours']) ? $matches['hours'] : 0;
+    $minutes = !empty($matches['minutes']) ? $matches['minutes'] : 0;
+    $seconds = !empty($matches['seconds']) ? $matches['seconds'] : 0;
+
+    return $hours * 3600 + $minutes * 60 + $seconds;
   }
 
   /**
diff --git a/web/modules/video_embed_field/src/ProviderPluginBase.php b/web/modules/video_embed_field/src/ProviderPluginBase.php
index aeb82a5f994a8581185883836ca90a3858b56f96..c3c4b0da719ed514037381c2368f127332204ffd 100644
--- a/web/modules/video_embed_field/src/ProviderPluginBase.php
+++ b/web/modules/video_embed_field/src/ProviderPluginBase.php
@@ -2,6 +2,7 @@
 
 namespace Drupal\video_embed_field;
 
+use Drupal\Core\File\FileSystemInterface;
 use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
 use Drupal\Core\Plugin\PluginBase;
 use GuzzleHttp\ClientInterface;
@@ -40,10 +41,15 @@ abstract class ProviderPluginBase extends PluginBase implements ProviderPluginIn
    */
   protected $httpClient;
 
+  /**
+   * @var \Drupal\Core\File\FileSystemInterface
+   */
+  protected $fileSystem;
+
   /**
    * Create a plugin with the given input.
    *
-   * @param string $configuration
+   * @param array $configuration
    *   The configuration of the plugin.
    * @param string $plugin_id
    *   The plugin id.
@@ -74,6 +80,19 @@ protected function getVideoId() {
     return $this->videoId;
   }
 
+  /**
+   * Get the file system service.
+   *
+   * @return \Drupal\Core\File\FileSystemInterface
+   *   The file system service.
+   */
+  protected function getFileSystem() {
+    if (!isset($this->fileSystem)) {
+      $this->fileSystem = \Drupal::service('file_system');
+    }
+    return $this->fileSystem;
+  }
+
   /**
    * Get the input which caused this plugin to be selected.
    *
@@ -122,10 +141,10 @@ public function renderThumbnail($image_style, $link_url) {
   public function downloadThumbnail() {
     $local_uri = $this->getLocalThumbnailUri();
     if (!file_exists($local_uri)) {
-      file_prepare_directory($this->thumbsDirectory, FILE_CREATE_DIRECTORY);
+      $this->getFileSystem()->prepareDirectory($this->thumbsDirectory, FileSystemInterface::CREATE_DIRECTORY);
       try {
         $thumbnail = $this->httpClient->request('GET', $this->getRemoteThumbnailUrl());
-        file_unmanaged_save_data((string) $thumbnail->getBody(), $local_uri);
+        $this->getFileSystem()->saveData((string) $thumbnail->getBody(), $local_uri);
       }
       catch (\Exception $e) {
       }
diff --git a/web/modules/video_embed_field/tests/modules/video_embed_field_mock_provider/video_embed_field_mock_provider.info.yml b/web/modules/video_embed_field/tests/modules/video_embed_field_mock_provider/video_embed_field_mock_provider.info.yml
index 04d6d5b4781731dde2266684bcfb4cb787fc5563..9ebc61a57f4d926b87e1376424ddfc9e59741297 100644
--- a/web/modules/video_embed_field/tests/modules/video_embed_field_mock_provider/video_embed_field_mock_provider.info.yml
+++ b/web/modules/video_embed_field/tests/modules/video_embed_field_mock_provider/video_embed_field_mock_provider.info.yml
@@ -5,8 +5,8 @@ hidden: true
 package: Testing
 # core: 8.x
 
-# Information added by Drupal.org packaging script on 2018-04-10
-version: '8.x-2.0'
+# Information added by Drupal.org packaging script on 2019-07-26
+version: '8.x-2.2'
 core: '8.x'
 project: 'video_embed_field'
-datestamp: 1523338087
+datestamp: 1564103587
diff --git a/web/modules/video_embed_field/tests/src/Functional/AdminUserTrait.php b/web/modules/video_embed_field/tests/src/Functional/AdminUserTrait.php
index f9a45a1c8ad6e2434943e1caab64773691dce7c9..a29bc127125eca8b1e0fca06ba9babfb459ce561 100644
--- a/web/modules/video_embed_field/tests/src/Functional/AdminUserTrait.php
+++ b/web/modules/video_embed_field/tests/src/Functional/AdminUserTrait.php
@@ -2,7 +2,7 @@
 
 namespace Drupal\Tests\video_embed_field\Functional;
 
-use Drupal\simpletest\UserCreationTrait;
+use Drupal\Tests\user\Traits\UserCreationTrait;
 
 /**
  * Create admin users.
diff --git a/web/modules/video_embed_field/tests/src/Functional/EntityDisplaySetupTrait.php b/web/modules/video_embed_field/tests/src/Functional/EntityDisplaySetupTrait.php
index d7953e263d0230a10a576021a5533123d96dc4e1..1673e7a69d6604c08708a7259c61bf8f26f21ea7 100644
--- a/web/modules/video_embed_field/tests/src/Functional/EntityDisplaySetupTrait.php
+++ b/web/modules/video_embed_field/tests/src/Functional/EntityDisplaySetupTrait.php
@@ -3,8 +3,8 @@
 namespace Drupal\Tests\video_embed_field\Functional;
 use Drupal\field\Entity\FieldConfig;
 use Drupal\field\Entity\FieldStorageConfig;
-use Drupal\simpletest\ContentTypeCreationTrait;
-use Drupal\simpletest\NodeCreationTrait;
+use Drupal\Tests\node\Traits\ContentTypeCreationTrait;
+use Drupal\Tests\node\Traits\NodeCreationTrait;
 
 /**
  * A trait for manipulating entity display.
@@ -63,8 +63,8 @@ protected function setupEntityDisplays() {
       'bundle' => $this->contentTypeName,
       'settings' => [],
     ])->save();
-    $this->entityDisplay = entity_get_display('node', $this->contentTypeName, 'default');
-    $this->entityFormDisplay = entity_get_form_display('node', $this->contentTypeName, 'default');
+    $this->entityDisplay = $this->container->get('entity_display.repository')->getViewDisplay('node', $this->contentTypeName, 'default');
+    $this->entityFormDisplay = $this->container->get('entity_display.repository')->getFormDisplay('node', $this->contentTypeName, 'default');
   }
 
   /**
diff --git a/web/modules/video_embed_field/tests/src/FunctionalJavascript/ColorboxFormatterTest.php b/web/modules/video_embed_field/tests/src/FunctionalJavascript/ColorboxFormatterTest.php
index 685b1a135e3020707351765272ed02598dc3ce43..87c26bbbf96049043f5a3827334dc976e824b2c1 100644
--- a/web/modules/video_embed_field/tests/src/FunctionalJavascript/ColorboxFormatterTest.php
+++ b/web/modules/video_embed_field/tests/src/FunctionalJavascript/ColorboxFormatterTest.php
@@ -2,7 +2,7 @@
 
 namespace Drupal\Tests\video_embed_field\FunctionalJavascript;
 
-use Drupal\FunctionalJavascriptTests\JavascriptTestBase;
+use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
 use Drupal\Tests\video_embed_field\Functional\EntityDisplaySetupTrait;
 
 /**
@@ -10,7 +10,7 @@
  *
  * @group video_embed_field
  */
-class ColorboxFormatterTest extends JavascriptTestBase {
+class ColorboxFormatterTest extends WebDriverTestBase {
 
   use EntityDisplaySetupTrait;
 
@@ -52,8 +52,8 @@ public function testColorboxFormatter() {
     $this->getSession()->wait(static::COLORBOX_LAUNCH_TIME);
     $this->assertSession()->elementExists('css', '#colorbox .video-embed-field-responsive-video');
     // Make sure the right library files are loaded on the page.
-    $this->assertSession()->elementContains('css', 'style', 'colorbox/styles/default/colorbox_style.css');
-    $this->assertSession()->elementContains('css', 'style', 'video_embed_field/css/video_embed_field.responsive-video.css');
+    $this->assertSession()->elementExists('css', 'link[href*="colorbox_style.css"]');
+    $this->assertSession()->elementExists('css', 'link[href*="video_embed_field.responsive-video.css"]');
   }
 
 }
diff --git a/web/modules/video_embed_field/tests/src/FunctionalJavascript/LazyLoadFormatterTest.php b/web/modules/video_embed_field/tests/src/FunctionalJavascript/LazyLoadFormatterTest.php
index b7bc67342517a4e44edc619e007219cbe68e31ef..b1de102b85850a5d98668dab445d8c4a2d114730 100644
--- a/web/modules/video_embed_field/tests/src/FunctionalJavascript/LazyLoadFormatterTest.php
+++ b/web/modules/video_embed_field/tests/src/FunctionalJavascript/LazyLoadFormatterTest.php
@@ -2,7 +2,7 @@
 
 namespace Drupal\Tests\video_embed_field\FunctionalJavascript;
 
-use Drupal\FunctionalJavascriptTests\JavascriptTestBase;
+use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
 use Drupal\Tests\video_embed_field\Functional\EntityDisplaySetupTrait;
 
 /**
@@ -10,7 +10,7 @@
  *
  * @group video_embed_field
  */
-class LazyLoadFormatterTest extends JavascriptTestBase {
+class LazyLoadFormatterTest extends WebDriverTestBase {
 
   use EntityDisplaySetupTrait;
 
@@ -44,7 +44,7 @@ public function testColorboxFormatter() {
     $this->click('.video-embed-field-lazy');
     $this->assertSession()->elementExists('css', '.video-embed-field-lazy .video-embed-field-responsive-video');
     // Make sure the right library files are loaded on the page.
-    $this->assertSession()->elementContains('css', 'style', 'video_embed_field/css/video_embed_field.responsive-video.css');
+    $this->assertSession()->elementExists('css', 'link[href*="video_embed_field.responsive-video.css"]');
   }
 
 }
diff --git a/web/modules/video_embed_field/tests/src/Kernel/ConstraintTest.php b/web/modules/video_embed_field/tests/src/Kernel/ConstraintTest.php
index 1ed6323eb82c8c1d5024b30679f69b66ed8cad30..b96e432944123dc85ec44467a7994282d11e1d91 100644
--- a/web/modules/video_embed_field/tests/src/Kernel/ConstraintTest.php
+++ b/web/modules/video_embed_field/tests/src/Kernel/ConstraintTest.php
@@ -3,7 +3,7 @@
 namespace Drupal\Tests\video_embed_field\Kernel;
 
 use Drupal\entity_test\Entity\EntityTest;
-use Drupal\simpletest\UserCreationTrait;
+use Drupal\Tests\user\Traits\UserCreationTrait;
 use Drupal\video_embed_field\Plugin\Validation\Constraint\VideoEmbedConstraint;
 
 /**
diff --git a/web/modules/video_embed_field/tests/src/Kernel/FieldOutputTest.php b/web/modules/video_embed_field/tests/src/Kernel/FieldOutputTest.php
index 5ce00a5221f8917a2f8f56b63fe51ad0ee361fdb..e3bf7f21ce3eb5dc2b6d5dd514a2406efcdad437 100644
--- a/web/modules/video_embed_field/tests/src/Kernel/FieldOutputTest.php
+++ b/web/modules/video_embed_field/tests/src/Kernel/FieldOutputTest.php
@@ -413,7 +413,7 @@ public function renderedFieldTestCases() {
             ],
             [
               '#type' => 'html_tag',
-              '#tag' => 'div',
+              '#tag' => 'button',
               '#attributes' => [
                 'class' => [
                   'video-embed-field-lazy-play',
diff --git a/web/modules/video_embed_field/tests/src/Unit/ProviderUrlParseTest.php b/web/modules/video_embed_field/tests/src/Unit/ProviderUrlParseTest.php
index 57908066f1f9dfd225fa24223697650896efb71e..6f64b970c1c95d500dc554252ab84e41e8ea6138 100644
--- a/web/modules/video_embed_field/tests/src/Unit/ProviderUrlParseTest.php
+++ b/web/modules/video_embed_field/tests/src/Unit/ProviderUrlParseTest.php
@@ -254,15 +254,31 @@ public function youTubeTimeIndexTestCases() {
     return [
       'Simple Timeindex' => [
         'https://www.youtube.com/watch?v=fdbFVWupSsw&t=15',
-        '15',
+        15,
+      ],
+      'Timeindex with Seconds' => [
+        'https://www.youtube.com/watch?v=q25eaJHpXFo&t=15s',
+        15,
+      ],
+      'Timeindex with Minutes and Seconds' => [
+        'https://www.youtube.com/watch?v=q25eaJHpXFo&t=42m25s',
+        2545,
+      ],
+      'Timeindex with Hours, Minutes and Seconds' => [
+        'https://www.youtube.com/watch?v=q25eaJHpXFo&t=1h11m14s',
+        4274,
+      ],
+      'Timeindex with other params' => [
+        'https://www.youtube.com/watch?v=q25eaJHpXFo&t=1h11m14s&some_param=nothing',
+        4274,
       ],
       'No Timeindex' => [
         'https://www.youtube.com/watch?v=fdbFVWupSsw',
-        '0',
+        0,
       ],
       'Invalid Timeindex' => [
         'https://www.youtube.com/watch?v=fdbFVWupSsw&t=time',
-        '0',
+        0,
       ],
     ];
   }
diff --git a/web/modules/video_embed_field/video_embed_field.info.yml b/web/modules/video_embed_field/video_embed_field.info.yml
index 3804cbe15f5029f09c97d6225e09217e33a6d2b6..acd8ed9cd01e14eb3b239ff188de0766d3814081 100644
--- a/web/modules/video_embed_field/video_embed_field.info.yml
+++ b/web/modules/video_embed_field/video_embed_field.info.yml
@@ -6,14 +6,15 @@ package: Video Embed Field
 dependencies:
   - drupal:field
   - drupal:image
+  - drupal:system (>=8.7.0)
 
 test_dependencies:
   - media_entity:media_entity
   - media_entity_embeddable_video:media_entity_embeddable_video
   - colorbox:colorbox
 
-# Information added by Drupal.org packaging script on 2018-04-10
-version: '8.x-2.0'
+# Information added by Drupal.org packaging script on 2019-07-26
+version: '8.x-2.2'
 core: '8.x'
 project: 'video_embed_field'
-datestamp: 1523338087
+datestamp: 1564103587