From 5776f2879f513ff44b86434201b3901a7613106e Mon Sep 17 00:00:00 2001 From: Alex Pott <alex.a.pott@googlemail.com> Date: Sat, 23 Mar 2024 23:12:45 +0000 Subject: [PATCH] Issue #3397558 by mfb: OEmbed generates URLs with URL-decoded query string --- core/modules/media/src/OEmbed/UrlResolver.php | 2 +- .../media/tests/src/Functional/UrlResolverTest.php | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/core/modules/media/src/OEmbed/UrlResolver.php b/core/modules/media/src/OEmbed/UrlResolver.php index 0c0ae9337773..50f9b2df541b 100644 --- a/core/modules/media/src/OEmbed/UrlResolver.php +++ b/core/modules/media/src/OEmbed/UrlResolver.php @@ -176,7 +176,7 @@ public function getResourceUrl($url, $max_width = NULL, $max_height = NULL) { // provide extra parameters in the query string. For example, Instagram also // supports the 'omitscript' parameter. $this->moduleHandler->alter('oembed_resource_url', $parsed_url, $provider); - $resource_url = $parsed_url['path'] . '?' . rawurldecode(UrlHelper::buildQuery($parsed_url['query'])); + $resource_url = $parsed_url['path'] . '?' . UrlHelper::buildQuery($parsed_url['query']); $this->urlCache[$url] = $resource_url; $this->cacheBackend->set($cache_id, $resource_url); diff --git a/core/modules/media/tests/src/Functional/UrlResolverTest.php b/core/modules/media/tests/src/Functional/UrlResolverTest.php index 43ac2f1402a2..201a73e8f922 100644 --- a/core/modules/media/tests/src/Functional/UrlResolverTest.php +++ b/core/modules/media/tests/src/Functional/UrlResolverTest.php @@ -45,19 +45,19 @@ public static function providerEndpointMatching() { return [ 'match by endpoint: Twitter' => [ 'https://twitter.com/Dries/status/999985431595880448', - 'https://publish.twitter.com/oembed?url=https://twitter.com/Dries/status/999985431595880448', + 'https://publish.twitter.com/oembed?url=https%3A//twitter.com/Dries/status/999985431595880448', ], 'match by endpoint: Vimeo' => [ 'https://vimeo.com/14782834', - 'https://vimeo.com/api/oembed.json?url=https://vimeo.com/14782834', + 'https://vimeo.com/api/oembed.json?url=https%3A//vimeo.com/14782834', ], 'match by endpoint: Dailymotion' => [ 'https://www.dailymotion.com/video/x2vzluh', - 'https://www.dailymotion.com/services/oembed?url=https://www.dailymotion.com/video/x2vzluh', + 'https://www.dailymotion.com/services/oembed?url=https%3A//www.dailymotion.com/video/x2vzluh', ], 'match by endpoint: Facebook' => [ 'https://www.facebook.com/facebook/videos/10153231379946729/', - 'https://www.facebook.com/plugins/video/oembed.json?url=https://www.facebook.com/facebook/videos/10153231379946729/', + 'https://www.facebook.com/plugins/video/oembed.json?url=https%3A//www.facebook.com/facebook/videos/10153231379946729/', ], ]; } -- GitLab