diff --git a/core/includes/form.inc b/core/includes/form.inc index 20d4f99..4cd1b39 100644 --- a/core/includes/form.inc +++ b/core/includes/form.inc @@ -823,10 +823,12 @@ function batch_process($redirect = NULL, Url $url = NULL, $redirect_callback = N $_SESSION['batches'][$batch['id']] = TRUE; // Redirect for processing. - $options = array('query' => array('op' => 'start', 'id' => $batch['id'])); - $batch_url->setOption('query', $options['query']); + $query_options = $error_url->getOption('query'); + $query_options['op'] = 'start'; + $query_options['id'] = $batch['id']; + $batch_url->setOption('query', $query_options); if (($function = $batch['redirect_callback']) && function_exists($function)) { - $function($batch_url, $options); + $function($batch_url, ['query' => $query_options]); } else { $batch_url->setAbsolute(); diff --git a/core/includes/install.core.inc b/core/includes/install.core.inc index cab8bd7..98d7e2a 100644 --- a/core/includes/install.core.inc +++ b/core/includes/install.core.inc @@ -578,7 +578,7 @@ function install_run_task($task, &$install_state) { // install_redirect_url() returns core/install.php, so let's ensure to // drop it from it and use base:// as batch_process() is using the // unrouted URL assembler, which requires base://. - $response = batch_process(preg_replace('@^core/@', 'base://', install_redirect_url($install_state)), Url::fromUri('base://' . install_full_redirect_url($install_state))); + $response = batch_process(preg_replace('@^core/@', 'base://', install_redirect_url($install_state)), Url::fromUri('base://install.php', ['query' => $install_state['parameters']])); if ($response instanceof Response) { // Save $_SESSION data from batch. \Drupal::service('session_manager')->save();