diff --git a/core/modules/node/config/views.view.content_revisions.yml b/core/modules/node/config/views.view.content_revisions.yml
new file mode 100644
index 0000000..af4c1b9
--- /dev/null
+++ b/core/modules/node/config/views.view.content_revisions.yml
@@ -0,0 +1,593 @@
+base_field: vid
+base_table: node_field_revision
+core: 8.x
+description: ''
+status: '1'
+display:
+  default:
+    display_plugin: default
+    id: default
+    display_title: Master
+    position: '1'
+    display_options:
+      access:
+        type: perm
+        options:
+          perm: 'view all revisions'
+        perm: 'view revisions'
+      cache:
+        type: none
+        options: {  }
+      query:
+        type: views_query
+        options:
+          disable_sql_rewrite: '0'
+          distinct: '0'
+          slave: '0'
+          query_comment: ''
+          query_tags: {  }
+      exposed_form:
+        type: basic
+        options:
+          submit_button: Apply
+          reset_button: '0'
+          reset_button_label: Reset
+          exposed_sorts_label: 'Sort by'
+          expose_sort_order: '1'
+          sort_asc_label: Asc
+          sort_desc_label: Desc
+      pager:
+        type: full
+        options:
+          items_per_page: '10'
+          offset: '0'
+          id: '0'
+          total_pages: ''
+          expose:
+            items_per_page: '0'
+            items_per_page_label: 'Items per page'
+            items_per_page_options: '5, 10, 20, 40, 60'
+            items_per_page_options_all: '0'
+            items_per_page_options_all_label: '- All -'
+            offset: '0'
+            offset_label: Offset
+          tags:
+            previous: '‹ previous'
+            next: 'next ›'
+            first: '« first'
+            last: 'last »'
+          quantity: '9'
+      style:
+        type: table
+        options:
+          grouping: {  }
+          row_class: ''
+          default_row_class: '1'
+          row_class_special: '1'
+          override: '1'
+          sticky: '0'
+          caption: ''
+          summary: ''
+          description: ''
+          columns:
+            name: name
+            revision_timestamp: revision_timestamp
+            title: title
+            log: title
+            delete_revision: delete_revision
+            revert_revision: revert_revision
+            dropbutton: dropbutton
+          info:
+            name:
+              sortable: '0'
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: '0'
+              responsive: ''
+            revision_timestamp:
+              sortable: '0'
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: '0'
+              responsive: ''
+            title:
+              sortable: '0'
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: '0'
+              responsive: ''
+            log:
+              sortable: '0'
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: '0'
+              responsive: ''
+            delete_revision:
+              align: ''
+              separator: ''
+              empty_column: '0'
+              responsive: ''
+            revert_revision:
+              align: ''
+              separator: ''
+              empty_column: '0'
+              responsive: ''
+            dropbutton:
+              sortable: '0'
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: '0'
+              responsive: ''
+          default: '-1'
+          empty_table: '0'
+      row:
+        type: fields
+        options:
+          inline: {  }
+          separator: ''
+          hide_empty: '0'
+          default_field_elements: '1'
+      fields:
+        name:
+          id: name
+          table: users
+          field: name
+          relationship: revision_uid
+          group_type: group
+          admin_label: ''
+          label: ''
+          exclude: '1'
+          alter:
+            alter_text: '0'
+            text: ''
+            make_link: '0'
+            path: ''
+            absolute: '0'
+            external: '0'
+            replace_spaces: '0'
+            path_case: none
+            trim_whitespace: '0'
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: '0'
+            max_length: ''
+            word_boundary: '1'
+            ellipsis: '1'
+            more_link: '0'
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: '0'
+            trim: '0'
+            preserve_tags: ''
+            html: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '0'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_empty: '0'
+          empty_zero: '0'
+          hide_alter_empty: '1'
+          link_to_user: '0'
+          overwrite_anonymous: '0'
+          anonymous_text: ''
+          format_username: '1'
+          plugin_id: user_name
+        revision_timestamp:
+          id: revision_timestamp
+          table: node_field_revision
+          field: revision_timestamp
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: ''
+          exclude: '1'
+          alter:
+            alter_text: '0'
+            text: ''
+            make_link: '0'
+            path: ''
+            absolute: '0'
+            external: '0'
+            replace_spaces: '0'
+            path_case: none
+            trim_whitespace: '0'
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: '0'
+            max_length: ''
+            word_boundary: '1'
+            ellipsis: '1'
+            more_link: '0'
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: '0'
+            trim: '0'
+            preserve_tags: ''
+            html: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '0'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_empty: '0'
+          empty_zero: '0'
+          hide_alter_empty: '1'
+          date_format: short
+          custom_date_format: ''
+          timezone: ''
+          plugin_id: date
+        title:
+          id: title
+          table: node_field_revision
+          field: title
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: ''
+          exclude: '0'
+          alter:
+            alter_text: '1'
+            text: '[revision_timestamp] by [name]'
+            make_link: '0'
+            path: ''
+            absolute: '0'
+            external: '0'
+            replace_spaces: '0'
+            path_case: none
+            trim_whitespace: '0'
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: '0'
+            max_length: ''
+            word_boundary: '0'
+            ellipsis: '0'
+            more_link: '0'
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: '0'
+            trim: '0'
+            preserve_tags: ''
+            html: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '0'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_empty: '0'
+          empty_zero: '0'
+          hide_alter_empty: '1'
+          link_to_node: '0'
+          link_to_node_revision: '1'
+        log:
+          id: log
+          table: node_field_revision
+          field: log
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: 'Log message'
+          exclude: '0'
+          alter:
+            alter_text: '0'
+            text: ''
+            make_link: '0'
+            path: ''
+            absolute: '0'
+            external: '0'
+            replace_spaces: '0'
+            path_case: none
+            trim_whitespace: '0'
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: '0'
+            max_length: ''
+            word_boundary: '1'
+            ellipsis: '1'
+            more_link: '0'
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: '0'
+            trim: '0'
+            preserve_tags: ''
+            html: '0'
+          element_type: p
+          element_class: revision-log
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '1'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_empty: '0'
+          empty_zero: '0'
+          hide_alter_empty: '1'
+          plugin_id: xss
+        revert_revision:
+          id: revert_revision
+          table: node_field_revision
+          field: revert_revision
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: revert
+          exclude: '1'
+          alter:
+            alter_text: '0'
+            text: ''
+            make_link: '0'
+            path: ''
+            absolute: '0'
+            external: '0'
+            replace_spaces: '0'
+            path_case: none
+            trim_whitespace: '0'
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: '0'
+            max_length: ''
+            word_boundary: '1'
+            ellipsis: '1'
+            more_link: '0'
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: '0'
+            trim: '0'
+            preserve_tags: ''
+            html: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '0'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_empty: '0'
+          empty_zero: '0'
+          hide_alter_empty: '1'
+          text: ''
+          plugin_id: node_revision_link_revert
+        delete_revision:
+          id: delete_revision
+          table: node_field_revision
+          field: delete_revision
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: delete
+          exclude: '1'
+          alter:
+            alter_text: '0'
+            text: ''
+            make_link: '0'
+            path: ''
+            absolute: '0'
+            external: '0'
+            replace_spaces: '0'
+            path_case: none
+            trim_whitespace: '0'
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: '0'
+            max_length: ''
+            word_boundary: '1'
+            ellipsis: '1'
+            more_link: '0'
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: '0'
+            trim: '0'
+            preserve_tags: ''
+            html: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '0'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_empty: '0'
+          empty_zero: '0'
+          hide_alter_empty: '1'
+          text: ''
+          plugin_id: node_revision_link_delete
+        dropbutton:
+          id: dropbutton
+          table: views
+          field: dropbutton
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: Operations
+          exclude: '0'
+          alter:
+            alter_text: '0'
+            text: ''
+            make_link: '0'
+            path: ''
+            absolute: '0'
+            external: '0'
+            replace_spaces: '0'
+            path_case: none
+            trim_whitespace: '0'
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: '0'
+            max_length: ''
+            word_boundary: '1'
+            ellipsis: '1'
+            more_link: '0'
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: '0'
+            trim: '0'
+            preserve_tags: ''
+            html: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '0'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: '<em class="placeholder">current revision</em>'
+          hide_empty: '0'
+          empty_zero: '0'
+          hide_alter_empty: '1'
+          fields:
+            revert_revision: revert_revision
+            delete_revision: delete_revision
+            name: '0'
+            revision_timestamp: '0'
+            title: '0'
+            log: '0'
+          destination: '1'
+          plugin_id: dropbutton
+      filters:
+        status:
+          value: '1'
+          table: node_field_revision
+          field: status
+          id: status
+          expose:
+            operator: '0'
+          group: '1'
+      sorts:
+        created:
+          id: created
+          table: node_field_revision
+          field: created
+          relationship: none
+          group_type: group
+          admin_label: ''
+          order: DESC
+          exposed: '0'
+          expose:
+            label: ''
+          granularity: second
+          plugin_id: date
+      header: {  }
+      footer: {  }
+      empty: {  }
+      relationships:
+        revision_uid:
+          id: revision_uid
+          table: node_field_revision
+          field: revision_uid
+          relationship: none
+          group_type: group
+          admin_label: 'revision user'
+          required: '0'
+          plugin_id: standard
+      arguments:
+        nid:
+          id: nid
+          table: node_field_revision
+          field: nid
+          relationship: none
+          group_type: group
+          admin_label: ''
+          default_action: empty
+          exception:
+            value: all
+            title_enable: '0'
+            title: All
+          title_enable: '1'
+          title: 'Revisions for <em class="placeholder">%1</em>'
+          breadcrumb_enable: '0'
+          breadcrumb: ''
+          default_argument_type: node
+          default_argument_options: {  }
+          default_argument_skip_url: '0'
+          summary_options:
+            base_path: ''
+            count: '1'
+            items_per_page: '25'
+            override: '0'
+          summary:
+            sort_order: asc
+            number_of_records: '0'
+            format: default_summary
+          specify_validation: '1'
+          validate:
+            type: node
+            fail: empty
+          validate_options:
+            access_op: view
+            nid_type: nid
+            types: {  }
+            access: '0'
+          break_phrase: '0'
+          not: '0'
+          plugin_id: node_nid
+  page_1:
+    display_plugin: page
+    id: page_1
+    display_title: Page
+    position: '1'
+    display_options:
+      path: node/%/revisions
+      menu:
+        type: tab
+        title: Revisions
+        description: ''
+        name: navigation
+        weight: '0'
+        context: '0'
+label: 'Content revisions'
+module: views
+id: content_revisions
+tag: ''
+uuid: 89e6c3dc-c5b8-4a1d-a038-56d54596db86
+langcode: en
diff --git a/core/modules/node/lib/Drupal/node/Plugin/views/field/RevisionLinkDelete.php b/core/modules/node/lib/Drupal/node/Plugin/views/field/RevisionLinkDelete.php
index 2ffb49c..843f3e2 100644
--- a/core/modules/node/lib/Drupal/node/Plugin/views/field/RevisionLinkDelete.php
+++ b/core/modules/node/lib/Drupal/node/Plugin/views/field/RevisionLinkDelete.php
@@ -23,8 +23,8 @@ public function access() {
     return user_access('delete revisions') || user_access('administer nodes');
   }
 
-  function render_link($data, $values) {
-    list($node, $vid) = $this->get_revision_entity($values, 'delete');
+  function render_link($node, $values) {
+    $vid = $values->vid;
     if (!isset($vid)) {
       return;
     }
diff --git a/core/modules/node/lib/Drupal/node/Plugin/views/field/RevisionLinkRevert.php b/core/modules/node/lib/Drupal/node/Plugin/views/field/RevisionLinkRevert.php
index 8f9671c..01ca755 100644
--- a/core/modules/node/lib/Drupal/node/Plugin/views/field/RevisionLinkRevert.php
+++ b/core/modules/node/lib/Drupal/node/Plugin/views/field/RevisionLinkRevert.php
@@ -23,8 +23,8 @@ public function access() {
     return user_access('revert revisions') || user_access('administer nodes');
   }
 
-  function render_link($data, $values) {
-    list($node, $vid) = $this->get_revision_entity($values, 'update');
+  function render_link($node, $values) {
+    $vid = $values->vid;
     if (!isset($vid)) {
       return;
     }
diff --git a/core/modules/node/lib/Drupal/node/Tests/NodeRevisionsTest.php b/core/modules/node/lib/Drupal/node/Tests/NodeRevisionsTest.php
index dd2df8d..281acc2 100644
--- a/core/modules/node/lib/Drupal/node/Tests/NodeRevisionsTest.php
+++ b/core/modules/node/lib/Drupal/node/Tests/NodeRevisionsTest.php
@@ -78,6 +78,8 @@ function setUp() {
    * Checks node revision related operations.
    */
   function testRevisions() {
+    module_enable(array('views'));
+
     $nodes = $this->nodes;
     $logs = $this->logs;
 
diff --git a/core/modules/node/node.module b/core/modules/node/node.module
index b9c5bd3..df612a9 100644
--- a/core/modules/node/node.module
+++ b/core/modules/node/node.module
@@ -1351,16 +1351,6 @@ function node_menu() {
     'context' => MENU_CONTEXT_INLINE,
     'file' => 'node.pages.inc',
   );
-  $items['node/%node/revisions'] = array(
-    'title' => 'Revisions',
-    'page callback' => 'node_revision_overview',
-    'page arguments' => array(1),
-    'access callback' => '_node_revision_access',
-    'access arguments' => array(1),
-    'weight' => 20,
-    'type' => MENU_LOCAL_TASK,
-    'file' => 'node.pages.inc',
-  );
   $items['node/%node/revisions/%node_revision/view'] = array(
     'title' => 'Revisions',
     'page callback' => 'node_show',
@@ -1437,25 +1427,6 @@ function node_last_changed($nid, $langcode = NULL) {
 }
 
 /**
- * Returns a list of all the existing revision numbers for the node passed in.
- *
- * @param \Drupal\Core\Entity\EntityInterface $node
- *   The node entity.
- *
- * @return
- *   An associative array keyed by node revision number.
- */
-function node_revision_list(EntityInterface $node) {
-  $revisions = array();
-  $result = db_query('SELECT nfr.vid, nfr.title, nfr.log, nfr.revision_uid AS uid, n.vid AS current_vid, nfr.revision_timestamp, u.name FROM {node_field_revision} nfr LEFT JOIN {node} n ON n.vid = nfr.vid INNER JOIN {users} u ON u.uid = nfr.revision_uid WHERE nfr.nid = :nid AND nfr.default_langcode = 1 ORDER BY nfr.vid DESC', array(':nid' => $node->id()));
-  foreach ($result as $revision) {
-    $revisions[$revision->vid] = $revision;
-  }
-
-  return $revisions;
-}
-
-/**
  * Finds the most recently changed nodes that are available to the current user.
  *
  * @param $number
diff --git a/core/modules/node/node.pages.inc b/core/modules/node/node.pages.inc
index af8e1e7..47ccc79 100644
--- a/core/modules/node/node.pages.inc
+++ b/core/modules/node/node.pages.inc
@@ -219,89 +219,6 @@ function node_delete_confirm_submit($form, &$form_state) {
 }
 
 /**
- * Page callback: Generates an overview table of older revisions of a node.
- *
- * @param object $node
- *   A node object.
- *
- * @return array
- *   An array as expected by drupal_render().
- *
- * @see node_menu()
- */
-function node_revision_overview($node) {
-  drupal_set_title(t('Revisions for %title', array('%title' => $node->label())), PASS_THROUGH);
-
-  $header = array(t('Revision'), t('Operations'));
-
-  $revisions = node_revision_list($node);
-
-  $rows = array();
-  $type = $node->type;
-
-  $revert_permission = FALSE;
-  if ((user_access("revert $type revisions") || user_access('revert all revisions') || user_access('administer nodes')) && node_access('update', $node)) {
-    $revert_permission = TRUE;
-  }
-  $delete_permission = FALSE;
-  if ((user_access("delete $type revisions") || user_access('delete all revisions') || user_access('administer nodes')) && node_access('delete', $node)) {
-    $delete_permission = TRUE;
-  }
-  foreach ($revisions as $revision) {
-    $row = array();
-    $type = $node->type;
-    if ($revision->current_vid > 0) {
-      $username = array(
-        '#theme' => 'username',
-        '#account' => $revision,
-      );
-      $row[] = array('data' => t('!date by !username', array('!date' => l(format_date($revision->revision_timestamp, 'short'), "node/$node->nid"), '!username' => drupal_render($username)))
-                               . (($revision->log != '') ? '<p class="revision-log">' . filter_xss($revision->log) . '</p>' : ''),
-                     'class' => array('revision-current'));
-      $row[] = array('data' => drupal_placeholder(t('current revision')), 'class' => array('revision-current'));
-    }
-    else {
-      $username = array(
-        '#theme' => 'username',
-        '#account' => $revision,
-      );
-      $row[] = t('!date by !username', array('!date' => l(format_date($revision->revision_timestamp, 'short'), "node/$node->nid/revisions/$revision->vid/view"), '!username' => drupal_render($username)))
-               . (($revision->log != '') ? '<p class="revision-log">' . filter_xss($revision->log) . '</p>' : '');
-      if ($revert_permission) {
-        $links['revert'] = array(
-          'title' => t('Revert'),
-          'href' => "node/$node->nid/revisions/$revision->vid/revert",
-        );
-      }
-      if ($delete_permission) {
-        $links['delete'] = array(
-          'title' => t('Delete'),
-          'href' => "node/$node->nid/revisions/$revision->vid/delete",
-        );
-      }
-      $row[] = array(
-        'data' => array(
-          '#type' => 'operations',
-          '#links' => $links,
-        ),
-      );
-    }
-    $rows[] = $row;
-  }
-
-  $build['node_revisions_table'] = array(
-    '#theme' => 'table',
-    '#rows' => $rows,
-    '#header' => $header,
-    '#attached' => array (
-      'css' => array(drupal_get_path('module', 'node') . '/css/node.admin.css'),
-    ),
-  );
-
-  return $build;
-}
-
-/**
  * Page callback: Form constructor for the reversion confirmation form.
  *
  * This form prevents against CSRF attacks.
diff --git a/core/modules/views/lib/Drupal/views/Tests/DefaultViewsTest.php b/core/modules/views/lib/Drupal/views/Tests/DefaultViewsTest.php
index 1fa8689..bf44f7f 100644
--- a/core/modules/views/lib/Drupal/views/Tests/DefaultViewsTest.php
+++ b/core/modules/views/lib/Drupal/views/Tests/DefaultViewsTest.php
@@ -32,6 +32,7 @@ class DefaultViewsTest extends ViewTestBase {
     'backlinks' => array(1),
     'taxonomy_term' => array(1),
     'glossary' => array('all'),
+    'content_revisions' => array(1),
   );
 
   public static function getInfo() {
