diff --git a/core/modules/views/src/Plugin/Block/ViewsBlock.php b/core/modules/views/src/Plugin/Block/ViewsBlock.php
index 97db7c9..6722c49 100644
--- a/core/modules/views/src/Plugin/Block/ViewsBlock.php
+++ b/core/modules/views/src/Plugin/Block/ViewsBlock.php
@@ -9,9 +9,8 @@
 
 use Drupal\Component\Utility\SafeMarkup;
 use Drupal\Component\Utility\Xss;
-use Drupal\Core\Config\Entity\Query\Query;
 use Drupal\Core\Form\FormStateInterface;
-use Symfony\Component\DependencyInjection\ContainerInterface;
+use Drupal\Core\Entity\EntityInterface;
 
 /**
  * Provides a generic Views block.
@@ -30,7 +29,25 @@ class ViewsBlock extends ViewsBlockBase {
   public function build() {
     $this->view->display_handler->preBlockBuild($this);
 
-    if ($output = $this->view->buildRenderable($this->displayID, [], FALSE)) {
+    $this->view->display_handler->getOption('arguments');
+
+    $args = array();
+    if ($this->context) {
+      foreach ($this->view->display_handler->getOption('arguments') as $argument_name => $argument) {
+        if (isset($this->context[$argument_name])) {
+          $value = $this->context[$argument_name]->getContextValue();
+          if ($value instanceof EntityInterface) {
+            $value = $value->id();
+          }
+          $args[] = $value;
+        }
+        else {
+          $args[] = $argument['exception']['value'];
+        }
+      }
+    }
+
+    if ($output = $this->view->buildRenderable($this->displayID, $args, FALSE)) {
       // Override the label to the dynamic title configured in the view.
       if (empty($this->configuration['views_label']) && $this->view->getTitle()) {
         // @todo https://www.drupal.org/node/2527360 remove call to SafeMarkup.
diff --git a/core/modules/views/src/Plugin/Derivative/ViewsBlock.php b/core/modules/views/src/Plugin/Derivative/ViewsBlock.php
index 3ebfc5f..134e269 100644
--- a/core/modules/views/src/Plugin/Derivative/ViewsBlock.php
+++ b/core/modules/views/src/Plugin/Derivative/ViewsBlock.php
@@ -8,6 +8,7 @@
 namespace Drupal\views\Plugin\Derivative;
 
 use Drupal\Core\Entity\EntityStorageInterface;
+use Drupal\Core\Plugin\Context\ContextDefinition;
 use Drupal\Core\Plugin\Discovery\ContainerDeriverInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
@@ -105,9 +106,27 @@ public function getDerivativeDefinitions($base_plugin_definition) {
             'config_dependencies' => array(
               'config' => array(
                 $view->getConfigDependencyName(),
-              )
-            )
+              ),
+            ),
           );
+
+          // Look for arguments and expose them as context.
+          if ($arguments = $display->getOption('arguments')) {
+            foreach ($arguments as $argument_name => $argument) {
+              if (!empty($argument['specify_validation'])) {
+                if (strpos($argument['validate']['type'], 'entity:') !== FALSE) {
+                  $this->derivatives[$delta]['context'][$argument_name] = new ContextDefinition($argument['validate']['type'], $argument_name, FALSE);
+                }
+              }
+              else {
+                switch ($argument['plugin_id']) {
+                  case 'numeric':
+                    $this->derivatives[$delta]['context'][$argument_name] = new ContextDefinition('integer', $argument_name, FALSE);
+                }
+              }
+            }
+          }
+
           $this->derivatives[$delta] += $base_plugin_definition;
         }
       }
