diff --git a/core/modules/views/lib/Drupal/views/ViewExecutableFactory.php b/core/modules/views/lib/Drupal/views/ViewExecutableFactory.php
index c6f9828..9ee217c 100644
--- a/core/modules/views/lib/Drupal/views/ViewExecutableFactory.php
+++ b/core/modules/views/lib/Drupal/views/ViewExecutableFactory.php
@@ -9,6 +9,7 @@
 
 use Drupal\Core\Session\AccountInterface;
 use Drupal\views\ViewStorageInterface;
+use Symfony\Component\HttpFoundation\RequestStack;
 
 /**
  * Defines the cache backend factory.
@@ -23,13 +24,23 @@ class ViewExecutableFactory {
   protected $user;
 
   /**
+   * The request stack.
+   *
+   * @var \Symfony\Component\HttpFoundation\RequestStack
+   */
+  protected $requestStack;
+
+  /**
    * Constructs a new ViewExecutableFactory
    *
    * @param \Drupal\Core\Session\AccountInterface $user
    *   The current user.
+   * @param \Symfony\Component\HttpFoundation\RequestStack $request_stack
+   *   The request stack.
    */
-  public function __construct(AccountInterface $user) {
+  public function __construct(AccountInterface $user, RequestStack $request_stack) {
     $this->user = $user;
+    $this->requestStack = $request_stack;
   }
 
   /**
@@ -42,7 +53,9 @@ public function __construct(AccountInterface $user) {
    *   A ViewExecutable instance.
    */
   public function get(ViewStorageInterface $view) {
-    return new ViewExecutable($view, $this->user);
+    $view = new ViewExecutable($view, $this->user);
+    $view->setRequest($this->requestStack->getCurrentRequest());
+    return $view;
   }
 
 }
diff --git a/core/modules/views/tests/Drupal/views/Tests/ViewExecutableFactoryTest.php b/core/modules/views/tests/Drupal/views/Tests/ViewExecutableFactoryTest.php
new file mode 100644
index 0000000..931d484
--- /dev/null
+++ b/core/modules/views/tests/Drupal/views/Tests/ViewExecutableFactoryTest.php
@@ -0,0 +1,108 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\views\Tests\VIewExecutableFactoryTest.
+ */
+
+namespace Drupal\views\Tests;
+
+use Drupal\Tests\UnitTestCase;
+use Drupal\views\ViewExecutableFactory;
+
+/**
+ * Tests the ViewExecutableFactory class.
+ *
+ * @coversDefaultClass \Drupal\views\ViewExecutableFactory
+ */
+class ViewExecutableFactoryTest extends UnitTestCase {
+
+  /**
+   * The mock user object.
+   *
+   * @var \Drupal\Core\Session\AccountInterface|\PHPUnit_Framework_MockObject_MockObject
+   */
+  protected $user;
+
+  /**
+   * The mock request stack object.
+   *
+   * @var \Symfony\Component\HttpFoundation\RequestStack|\PHPUnit_Framework_MockObject_MockObject
+   */
+  protected $requestStack;
+
+  /**
+   * The mock view entity.
+   *
+   * @var \Drupal\Core\Config\Entity\ConfigEntityInterface|\PHPUnit_Framework_MockObject_MockObject
+   */
+  protected $view;
+
+  /**
+   * The ViewExecutableFactory class under test.
+   *
+   * @var \Drupal\views\ViewExecutableFactory
+   */
+  protected $viewExecutableFactory;
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function getInfo() {
+    return array(
+      'name' => 'View executable factory test',
+      'description' => 'Tests methods on the \Drupal\views\ViewExecutableFactory class',
+      'group' => 'Views',
+    );
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function setUp() {
+    parent::setUp();
+
+    $this->user = $this->getMock('Drupal\Core\Session\AccountInterface');
+    $this->requestStack = $this->getMock('Symfony\Component\HttpFoundation\RequestStack');
+    $this->view = $this->getMock('Drupal\views\ViewStorageInterface');
+    $this->viewExecutableFactory = new ViewExecutableFactory($this->user, $this->requestStack);
+  }
+
+  /**
+   * Tests the get method.
+   *
+   * @covers ::get
+   */
+  public function testGet() {
+    $request_1 = $this->getMockBuilder('Symfony\Component\HttpFoundation\Request')
+      ->disableOriginalConstructor()
+      ->getMock();
+
+    $request_2 = $this->getMockBuilder('Symfony\Component\HttpFoundation\Request')
+      ->disableOriginalConstructor()
+      ->getMock();
+
+    $this->requestStack->expects($this->at(0))
+      ->method('getCurrentRequest')
+      ->will($this->returnValue($request_1));
+    $this->requestStack->expects($this->at(1))
+      ->method('getCurrentRequest')
+      ->will($this->returnValue($request_2));
+
+
+    $executable = $this->viewExecutableFactory->get($this->view);
+
+    $this->assertInstanceOf('Drupal\views\ViewExecutable', $executable);
+    $this->assertSame($executable->getRequest(), $request_1);
+    $this->assertSame($executable->getUser(), $this->user);
+
+    // Call get() again to ensure a new executable is created with the other
+    // request object.
+    $executable = $this->viewExecutableFactory->get($this->view);
+
+    $this->assertInstanceOf('Drupal\views\ViewExecutable', $executable);
+    $this->assertSame($executable->getRequest(), $request_2);
+    $this->assertSame($executable->getUser(), $this->user);
+  }
+
+}
diff --git a/core/modules/views/tests/Drupal/views/Tests/ViewsTest.php b/core/modules/views/tests/Drupal/views/Tests/ViewsTest.php
index 61c3850..f7d4b21 100644
--- a/core/modules/views/tests/Drupal/views/Tests/ViewsTest.php
+++ b/core/modules/views/tests/Drupal/views/Tests/ViewsTest.php
@@ -12,6 +12,8 @@
 use Drupal\views\Entity\View;
 use Drupal\views\ViewExecutableFactory;
 use Drupal\Core\DependencyInjection\ContainerBuilder;
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\RequestStack;
 
 class ViewsTest extends UnitTestCase {
 
@@ -31,7 +33,9 @@ protected function setUp() {
 
     $container = new ContainerBuilder();
     $user = $this->getMock('Drupal\Core\Session\AccountInterface');
-    $container->set('views.executable', new ViewExecutableFactory($user));
+    $request_stack = new RequestStack();
+    $request_stack->push(new Request());
+    $container->set('views.executable', new ViewExecutableFactory($user, $request_stack));
 
     $this->view = new View(array('id' => 'test_view'), 'view');
 
diff --git a/core/modules/views/views.services.yml b/core/modules/views/views.services.yml
index 61b6e70..66172c7 100644
--- a/core/modules/views/views.services.yml
+++ b/core/modules/views/views.services.yml
@@ -64,7 +64,7 @@ services:
     arguments: ['@views.views_data']
   views.executable:
     class: Drupal\views\ViewExecutableFactory
-    arguments: ['@current_user']
+    arguments: ['@current_user', '@request_stack']
   views.analyzer:
     class: Drupal\views\Analyzer
     arguments: ['@module_handler']
diff --git a/core/modules/views_ui/tests/Drupal/views_ui/Tests/ViewListBuilderTest.php b/core/modules/views_ui/tests/Drupal/views_ui/Tests/ViewListBuilderTest.php
index 9674f0e..96be915 100644
--- a/core/modules/views_ui/tests/Drupal/views_ui/Tests/ViewListBuilderTest.php
+++ b/core/modules/views_ui/tests/Drupal/views_ui/Tests/ViewListBuilderTest.php
@@ -13,6 +13,8 @@
 use Drupal\views\Entity\View;
 use Drupal\views\ViewExecutableFactory;
 use Drupal\views_ui\ViewListBuilder;
+use Symfony\Component\HttpFoundation\Request;
+use Symfony\Component\HttpFoundation\RequestStack;
 
 class ViewListBuilderTest extends UnitTestCase {
 
@@ -117,7 +119,9 @@ public function testBuildRowEntityList() {
 
     $container = new ContainerBuilder();
     $user = $this->getMock('Drupal\Core\Session\AccountInterface');
-    $executable_factory = new ViewExecutableFactory($user);
+    $request_stack = new RequestStack();
+    $request_stack->push(new Request());
+    $executable_factory = new ViewExecutableFactory($user, $request_stack);
     $container->set('views.executable', $executable_factory);
     $container->set('plugin.manager.views.display', $display_manager);
     \Drupal::setContainer($container);
