diff --git a/core/lib/Drupal/Core/Entity/EntityForm.php b/core/lib/Drupal/Core/Entity/EntityForm.php
index dcb9aae..145e3aa 100644
--- a/core/lib/Drupal/Core/Entity/EntityForm.php
+++ b/core/lib/Drupal/Core/Entity/EntityForm.php
@@ -7,6 +7,7 @@
 
 namespace Drupal\Core\Entity;
 
+use Drupal\Component\Serialization\Json;
 use Drupal\Core\Form\FormBase;
 use Drupal\Core\Extension\ModuleHandlerInterface;
 use Drupal\Core\Render\Element;
@@ -205,7 +206,9 @@ protected function actionsElement(array $form, array &$form_state) {
    *   many entity types.
    */
   protected function actions(array $form, array &$form_state) {
-    // @todo Rename the action key from submit to save.
+    $actions['#attached'] = array(
+      'library' => array('core/drupal.ajax'),
+    );
     $actions['submit'] = array(
       '#type' => 'submit',
       '#value' => $this->t('Save'),
@@ -230,7 +233,11 @@ protected function actions(array $form, array &$form_state) {
         '#title' => $this->t('Delete'),
         '#access' => $this->entity->access('delete'),
         '#attributes' => array(
-          'class' => array('button', 'button--danger'),
+          'class' => array('button', 'button--danger', 'use-ajax'),
+          'data-accepts' => 'application/vnd.drupal-modal',
+          'data-dialog-options' => Json::encode(array(
+            'width' => 'auto',
+          )),
         ),
       );
       $actions['delete'] += $route_info->toRenderArray();
diff --git a/core/lib/Drupal/Core/Form/ConfirmFormHelper.php b/core/lib/Drupal/Core/Form/ConfirmFormHelper.php
index 1b1fa30..3ff5247 100644
--- a/core/lib/Drupal/Core/Form/ConfirmFormHelper.php
+++ b/core/lib/Drupal/Core/Form/ConfirmFormHelper.php
@@ -62,6 +62,10 @@ public static function buildCancelLink(ConfirmFormInterface $form, Request $requ
 
     $link['#type'] = 'link';
     $link['#title'] = $form->getCancelText();
+    $link['#attributes'] = array(
+      'class' => array('dialog-cancel'),
+    );
+
     return $link;
   }
 
