src/Render/Placeholder/BigPipeStrategy.php | 7 ++++--- .../src/Unit/Render/Placeholder/BigPipeStrategyTest.php | 16 ++++++++-------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/Render/Placeholder/BigPipeStrategy.php b/src/Render/Placeholder/BigPipeStrategy.php index 1ff5986..6ae4973 100644 --- a/src/Render/Placeholder/BigPipeStrategy.php +++ b/src/Render/Placeholder/BigPipeStrategy.php @@ -202,9 +202,10 @@ class BigPipeStrategy implements PlaceholderStrategyInterface { * @todo Related, perhaps distinguish between "HTML" and "non-HTML (attr value)" use cases? Because right now, this *breaks* HTML and therefore breaks response filters: this indiscriminately uses a
as a placeholder, which is invalid inside a HTML attribute, and thus breaks DOM parsing. */ protected static function createBigPipeNoJsPlaceholder($original_placeholder, array $placeholder_render_array) { - $html_placeholder = Html::getId($original_placeholder); + $big_pipe_placeholder_id = static::generateBigPipePlaceholderId($original_placeholder, $placeholder_render_array); + return [ - '#markup' => '
', + '#markup' => '
', '#cache' => [ 'max-age' => 0, 'contexts' => [ @@ -213,7 +214,7 @@ class BigPipeStrategy implements PlaceholderStrategyInterface { ], '#attached' => [ 'big_pipe_nojs_placeholders' => [ - $html_placeholder => $placeholder_render_array, + $big_pipe_placeholder_id => $placeholder_render_array, ], ], ]; diff --git a/tests/src/Unit/Render/Placeholder/BigPipeStrategyTest.php b/tests/src/Unit/Render/Placeholder/BigPipeStrategyTest.php index 484f76b..65e7255 100644 --- a/tests/src/Unit/Render/Placeholder/BigPipeStrategyTest.php +++ b/tests/src/Unit/Render/Placeholder/BigPipeStrategyTest.php @@ -84,11 +84,11 @@ class BigPipeStrategyTest extends UnitTestCase { ], ]; $messages_big_pipe_nojs_placeholder = [ - '#markup' => '
', + '#markup' => '
', '#cache' => $cacheability_depends_on_session_and_nojs_cookie, '#attached' => [ 'big_pipe_nojs_placeholders' => [ - 'drupal-render-placeholder-callbackdrupalcorerenderelementstatusmessagesrendermessages-arguments0-tokena8c34b5edrupal-render-placeholder' => $placeholders[$messages_placeholder_markup], + 'callback=Drupal%5CCore%5CRender%5CElement%5CStatusMessages%3A%3ArenderMessages&args[0]&token=a8c34b5e' => $placeholders[$messages_placeholder_markup], ], ], ]; @@ -98,11 +98,11 @@ class BigPipeStrategyTest extends UnitTestCase { '#lazy_builder' => ['form_builder:renderPlaceholderFormAction', []], ]; $form_action_big_pipe_nojs_placeholder = [ - '#markup' => '
', + '#markup' => '
', '#cache' => $cacheability_depends_on_session_only, '#attached' => [ 'big_pipe_nojs_placeholders' => [ - 'form-action-cc611e1d' => $placeholders['form_action_cc611e1d'], + 'callback=form_builder%3ArenderPlaceholderFormAction&&token=e8cb6dae' => $placeholders['form_action_cc611e1d'], ], ], ]; @@ -115,11 +115,11 @@ class BigPipeStrategyTest extends UnitTestCase { ], ]; $csrf_token_big_pipe_nojs_placeholder = [ - '#markup' => '
', + '#markup' => '
', '#cache' => $cacheability_depends_on_session_only, '#attached' => [ 'big_pipe_nojs_placeholders' => [ - '22dcc695f4a22e809a62d8eb7addd6fccecfbf31' => $placeholders['22dcc695f4a22e809a62d8eb7addd6fccecfbf31'], + 'callback=route_processor_csrf%3ArenderPlaceholderCsrfToken&args[0]=admin/config/user-interface/shortcut/manage/default/add-link-inline&token=77d1dce6' => $placeholders['22dcc695f4a22e809a62d8eb7addd6fccecfbf31'], ], ], ]; @@ -133,11 +133,11 @@ class BigPipeStrategyTest extends UnitTestCase { ], ]; $hello_big_pipe_nojs_placeholder = [ - '#markup' => '
', + '#markup' => '
', '#cache' => $cacheability_depends_on_session_only, '#attached' => [ 'big_pipe_nojs_placeholders' => [ - 'hello' => $placeholders[' $placeholders['