diff --git a/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_rss.yml b/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_rss.yml
index 7fb1644..a8bb484 100644
--- a/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_rss.yml
+++ b/core/modules/comment/tests/modules/comment_test_views/test_views/views.view.test_comment_rss.yml
@@ -72,3 +72,8 @@ display:
     position: null
     display_options:
       path: test-comment-rss
+      defaults:
+        row: false
+      row:
+        type: comment_rss
+        options: {}
diff --git a/core/modules/views/src/Plugin/views/display/Feed.php b/core/modules/views/src/Plugin/views/display/Feed.php
index baa5d6b..9808d54 100644
--- a/core/modules/views/src/Plugin/views/display/Feed.php
+++ b/core/modules/views/src/Plugin/views/display/Feed.php
@@ -45,22 +45,6 @@ class Feed extends PathPluginBase {
   protected $usesPager = FALSE;
 
   /**
-   * Overrides \Drupal\views\Plugin\views\display\DisplayPluginBase::initDisplay().
-   */
-  public function initDisplay(ViewExecutable $view, array &$display, array &$options = NULL) {
-    parent::initDisplay($view, $display, $options);
-
-    // Set the default row style. Ideally this would be part of the option
-    // definition, but in this case it's dependent on the view's base table,
-    // which we don't know until init().
-    $row_plugins = Views::fetchPluginNames('row', $this->getType(), array($view->storage->get('base_table')));
-    $default_row_plugin = key($row_plugins);
-    if (empty($this->options['row']['type'])) {
-      $this->options['row']['type'] = $default_row_plugin;
-    }
-  }
-
-  /**
    * Overrides \Drupal\views\Plugin\views\display\DisplayPluginBase::getType().
    */
   protected function getType() {
@@ -142,7 +126,7 @@ protected function defineOptions() {
     $options['style']['contains']['type']['default'] = 'rss';
     $options['style']['contains']['options']['default']  = array('description' => '');
     $options['sitename_title']['default'] = FALSE;
-    $options['row']['contains']['type']['default'] = '';
+    $options['row']['contains']['type']['default'] = 'rss_fields';
     $options['defaults']['default']['style'] = FALSE;
     $options['defaults']['default']['row'] = FALSE;
 
@@ -150,6 +134,25 @@ protected function defineOptions() {
   }
 
   /**
+   * {@inheritdoc}
+   */
+  public function newDisplay() {
+    parent::newDisplay();
+
+    // Set the default row style. Ideally this would be part of the option
+    // definition, but in this case it's dependent on the view's base table,
+    // which we don't know until init().
+    if (empty($this->options['row']['type']) || $this->options['row']['type'] === 'rss_fields') {
+      $row_plugins = Views::fetchPluginNames('row', $this->getType(), array($this->view->storage->get('base_table')));
+      $default_row_plugin = key($row_plugins);
+
+      $options = $this->getOption('row');
+      $options['type'] = $default_row_plugin;
+      $this->setOption('row', $options);
+    }
+  }
+
+  /**
    * Overrides \Drupal\views\Plugin\views\display\DisplayPluginBase::optionsSummary().
    */
   public function optionsSummary(&$categories, &$options) {
