// Find the closing </body> tag and get the strings before and after. But be
// careful to use the latest occurrence of the string "</body>", to ensure
// that strings in inline JavaScript or CDATA sections aren't used instead.
$parts =
explode('</body>',
$content);
$post_body =
array_pop($parts);
$pre_body =
implode('',
$parts);
$this->
sendPreBody($pre_body,
$nojs_placeholders,
$cumulative_assets);
$this->
sendPlaceholders($placeholders,
$this->
getPlaceholderOrder($pre_body,
$placeholders),
$cumulative_assets);
$this->
sendPostBody($post_body);
$this->
performPostSendTasks();
} /**
* Sends everything until just before </body>.
*
* @param string $pre_body
* The HTML response's content until the closing </body> tag.
* @param array $no_js_placeholders
* The no-JS BigPipe placeholders.
* @param \Drupal\Core\Asset\AttachedAssetsInterface $cumulative_assets
* The cumulative assets sent so far; to be updated while rendering no-JS
* BigPipe placeholders.
*/