diff --git a/core/modules/views/src/Element/View.php b/core/modules/views/src/Element/View.php
new file mode 100644
index 0000000..c9e084b
--- /dev/null
+++ b/core/modules/views/src/Element/View.php
@@ -0,0 +1,50 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\views\Element\View.
+ */
+
+namespace Drupal\views\Element;
+
+use Drupal\Core\Render\Element\RenderElement;
+use Drupal\views\Views;
+
+/**
+ * Provides a render element to display a view.
+ *
+ * @RenderElement("view")
+ */
+class View extends RenderElement {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getInfo() {
+    $class = get_class($this);
+    return array(
+      '#theme_wrappers' => array('container'),
+      '#pre_render' => array(
+        array($class, 'preRenderViewElement'),
+      ),
+      '#name' => NULL,
+      '#display_id' => 'default',
+      '#arguments' => array(),
+    );
+  }
+
+  /**
+   * View element pre render callback.
+   */
+  public static function preRenderViewElement($element) {
+    $element['#attributes']['class'][] = 'views-element-container';
+
+    $view = Views::getView($element['#name']);
+    if ($view && $view->access($element['#display_id'])) {
+      $element['view'] = $view->preview($element['#display_id'], $element['#arguments']);
+    }
+
+    return $element;
+  }
+
+}
diff --git a/core/modules/views/views.module b/core/modules/views/views.module
index 3ba93f5..e72f812 100644
--- a/core/modules/views/views.module
+++ b/core/modules/views/views.module
@@ -47,11 +47,13 @@ function views_help($route_name, RouteMatchInterface $route_match) {
 
 /**
  * Implements hook_element_info().
+ *
+ * @todo Remove once https://www.drupal.org/node/2326409 is in.
  */
 function views_element_info() {
   $types['view'] = array(
     '#theme_wrappers' => array('container'),
-    '#pre_render' => array('views_pre_render_view_element'),
+    '#pre_render' => array('\Drupal\views\Element\View::preRenderViewElement'),
     '#name' => NULL,
     '#display_id' => 'default',
     '#arguments' => array(),
@@ -91,20 +93,6 @@ function views_views_pre_render($view) {
 }
 
 /**
- * View element pre render callback.
- */
-function views_pre_render_view_element($element) {
-  $element['#attributes']['class'][] = 'views-element-container';
-
-  $view = Views::getView($element['#name']);
-  if ($view && $view->access($element['#display_id'])) {
-    $element['view'] = $view->preview($element['#display_id'], $element['#arguments']);
-  }
-
-  return $element;
-}
-
-/**
  * Implements hook_theme().
  *
  * Register views theming functions and those that are defined via views plugin
