diff --git a/core/modules/filter/filter.module b/core/modules/filter/filter.module index c781f8a200a74a3a55b665ebb931d0ddfd7552f0..fe5615f22a2d3ecf9896fec93749c7f2d26e38fe 100644 --- a/core/modules/filter/filter.module +++ b/core/modules/filter/filter.module @@ -701,7 +701,7 @@ function _filter_autop($text) { // to avoid messing up code. We look for matched pairs and allow basic // nesting. For example: // "processed <pre> ignored <script> ignored </script> ignored </pre> processed" - $chunks = preg_split('@(<!--.*?-->|</?(?:pre|script|style|object|iframe|!--)[^>]*>)@i', $text, -1, PREG_SPLIT_DELIM_CAPTURE); + $chunks = preg_split('@(<!--.*?-->|</?(?:pre|script|style|object|iframe|drupal-media|!--)[^>]*>)@i', $text, -1, PREG_SPLIT_DELIM_CAPTURE); // Note: PHP ensures the array consists of alternating delimiters and literals // and begins and ends with a literal (inserting NULL as required). $ignore = FALSE; diff --git a/core/modules/filter/tests/src/Kernel/FilterKernelTest.php b/core/modules/filter/tests/src/Kernel/FilterKernelTest.php index f9aeeb9523fb6f52ccbf34b0535ab6cbb1acd6df..735521caeb8bb4d3c7b863df80b2b7a2477964e4 100644 --- a/core/modules/filter/tests/src/Kernel/FilterKernelTest.php +++ b/core/modules/filter/tests/src/Kernel/FilterKernelTest.php @@ -376,6 +376,10 @@ public function testLineBreakFilter() { "<iframe>aaa</iframe>\n\n" => [ "<p><iframe>aaa</iframe></p>" => FALSE, ], + // Bug 3097338, paragraphs were appearing around drupalmedia tags. + '<drupal-media data-caption=" " data-entity-type="media" data-entity-uuid="dbb16f97-cd11-4357-acde-cd09e19e312b"></drupal-media>' => [ + '<p><drupal-media data-caption=" " data-entity-type="media" data-entity-uuid="dbb16f97-cd11-4357-acde-cd09e19e312b"></drupal-media></p>' => FALSE, + ], ]; $this->assertFilteredString($filter, $tests);