'scripts_bottom' =>
$js_bottom_placeholder,
],
],
]);
$html_response->
getCacheableMetadata()->
setCacheMaxAge(0
);
// Push a fake request with the asset libraries loaded so far and dispatch
// KernelEvents::RESPONSE event. This results in the attachments for the
// HTML response being processed by HtmlResponseAttachmentsProcessor and
// hence the HTML to load the bottom JavaScript can be rendered.
$fake_request =
$this->requestStack->
getMainRequest()->
duplicate();
$html_response =
$this->
filterEmbeddedResponse($fake_request,
$html_response);
$scripts_bottom =
$html_response->
getContent();
} $this->
sendChunk($scripts_bottom);
} /**
* Sends no-JS BigPipe placeholders' replacements as embedded HTML responses.
*
* @param string $html
* HTML markup.
* @param array $no_js_placeholders
* Associative array; the no-JS BigPipe placeholders. Keys are the BigPipe
* selectors.
* @param \Drupal\Core\Asset\AttachedAssetsInterface $cumulative_assets
* The cumulative assets sent so far; to be updated while rendering no-JS
* BigPipe placeholders.
*
* @throws \Exception
* If an exception is thrown during the rendering of a placeholder, it is
* caught to allow the other placeholders to still be replaced. But when
* error logging is configured to be verbose, the exception is rethrown to
* simplify debugging.
*/