diff --git a/core/modules/system/tests/themes/test_basetheme/test_basetheme.theme b/core/modules/system/tests/themes/test_basetheme/test_basetheme.theme
index 739439f..c4cdf68 100644
--- a/core/modules/system/tests/themes/test_basetheme/test_basetheme.theme
+++ b/core/modules/system/tests/themes/test_basetheme/test_basetheme.theme
@@ -17,7 +17,7 @@ function test_basetheme_views_pre_render(ViewExecutable $view) {
 /**
  * Implements hook_views_post_render().
  */
-function test_basetheme_views_post_render(ViewExecutable $view) {
+function test_basetheme_views_post_render(ViewExecutable $view, &$output, $cache) {
   // We append the function name to the title for test to check for.
   $view->setTitle($view->getTitle() . ":" . __FUNCTION__);
 }
diff --git a/core/modules/system/tests/themes/test_subtheme/test_subtheme.theme b/core/modules/system/tests/themes/test_subtheme/test_subtheme.theme
index 0e35910..023fec7 100644
--- a/core/modules/system/tests/themes/test_subtheme/test_subtheme.theme
+++ b/core/modules/system/tests/themes/test_subtheme/test_subtheme.theme
@@ -18,7 +18,7 @@ function test_subtheme_views_pre_render(ViewExecutable $view) {
 /**
  * Implements hook_views_post_render().
  */
-function test_subtheme_views_post_render(ViewExecutable $view) {
+function test_subtheme_views_post_render(ViewExecutable $view, &$output, $cache) {
   // We append the function name to the title for test to check for.
   $view->setTitle($view->getTitle() . ":" . __FUNCTION__);
 }
diff --git a/core/modules/views/src/Tests/ViewsHooksTest.php b/core/modules/views/src/Tests/ViewsHooksTest.php
index 534df07..c05f9f7 100644
--- a/core/modules/views/src/Tests/ViewsHooksTest.php
+++ b/core/modules/views/src/Tests/ViewsHooksTest.php
@@ -70,6 +70,11 @@ public function testHooks() {
     foreach (static::$hooks as $hook => $type) {
       $this->assertTrue($this->moduleHandler->implementsHook('views_test_data', $hook), format_string('The hook @hook was registered.', array('@hook' => $hook)));
 
+      if ($hook == 'views_post_render') {
+        $this->moduleHandler->invoke('views_test_data', $hook, array($view, $view->display_handler->output, $view->display_handler->getPlugin('cache')));
+        continue;
+      }
+
       switch ($type) {
         case 'view':
           $this->moduleHandler->invoke('views_test_data', $hook, array($view));
diff --git a/core/modules/views/src/ViewExecutable.php b/core/modules/views/src/ViewExecutable.php
index 774e63c..532de27 100644
--- a/core/modules/views/src/ViewExecutable.php
+++ b/core/modules/views/src/ViewExecutable.php
@@ -1442,7 +1442,7 @@ public function render($display_id = NULL) {
     foreach ($themes as $theme_name) {
       $function = $theme_name . '_views_post_render';
       if (function_exists($function)) {
-        $function($this);
+        $function($this, $this->display_handler->output, $cache);
       }
     }
 
diff --git a/core/modules/views/tests/modules/views_test_data/views_test_data.views_execution.inc b/core/modules/views/tests/modules/views_test_data/views_test_data.views_execution.inc
index 1698495..ba37a26 100644
--- a/core/modules/views/tests/modules/views_test_data/views_test_data.views_execution.inc
+++ b/core/modules/views/tests/modules/views_test_data/views_test_data.views_execution.inc
@@ -66,7 +66,7 @@ function views_test_data_placeholders() {
 /**
  * Implements hook_views_post_render().
  */
-function views_test_data_views_post_render(ViewExecutable $view) {
+function views_test_data_views_post_render(ViewExecutable $view, &$output, $cache) {
   \Drupal::state()->set('views_hook_test_views_post_render', TRUE);
 }
 
