Skip to content
Snippets Groups Projects
Verified Commit a2ea938f authored by Alex Pott's avatar Alex Pott
Browse files

Issue #3245895 by mfb, rcodina, longwave, alexpott: Link HTTP header should not be HTML-encoded

parent 9dc6f60e
No related branches found
No related tags found
26 merge requests!54479.5.x SF update,!5014Issue #3071143: Table Render Array Example Is Incorrect,!4868Issue #1428520: Improve menu parent link selection,!4289Issue #1344552 by marcingy, Niklas Fiekas, Ravi.J, aleevas, Eduardo Morales...,!4114Issue #2707291: Disable body-level scrolling when a dialog is open as a modal,!4100Issue #3249600: Add support for PHP 8.1 Enums as allowed values for list_* data types,!2378Issue #2875033: Optimize joins and table selection in SQL entity query implementation,!2334Issue #3228209: Add hasRole() method to AccountInterface,!2062Issue #3246454: Add weekly granularity to views date sort,!1591Issue #3199697: Add JSON:API Translation experimental module,!1484Exposed filters get values from URL when Ajax is on,!1255Issue #3238922: Refactor (if feasible) uses of the jQuery serialize function to use vanillaJS,!1162Issue #3100350: Unable to save '/' root path alias,!1105Issue #3025039: New non translatable field on translatable content throws error,!1073issue #3191727: Focus states on mobile second level navigation items fixed,!10223132456: Fix issue where views instances are emptied before an ajax request is complete,!925Issue #2339235: Remove taxonomy hard dependency on node module,!877Issue #2708101: Default value for link text is not saved,!872Draft: Issue #3221319: Race condition when creating menu links and editing content deletes menu links,!844Resolve #3036010 "Updaters",!617Issue #3043725: Provide a Entity Handler for user cancelation,!579Issue #2230909: Simple decimals fail to pass validation,!560Move callback classRemove outside of the loop,!555Issue #3202493,!485Sets the autocomplete attribute for username/password input field on login form.,!30Issue #3182188: Updates composer usage to point at ./vendor/bin/composer
......@@ -10,7 +10,6 @@
use Drupal\Core\Form\EnforcedResponseException;
use Drupal\Core\Extension\ModuleHandlerInterface;
use Drupal\Core\Language\LanguageManagerInterface;
use Drupal\Component\Utility\Html;
use Symfony\Component\HttpFoundation\RequestStack;
/**
......@@ -420,7 +419,10 @@ protected function processHtmlHead(array $html_head) {
* @param array $html_head_link
* The 'html_head_link' value of a render array. Each head link is specified
* by a two-element array:
* - An array specifying the attributes of the link.
* - An array specifying the attributes of the link. The 'href' and 'rel'
* attributes are required, and the 'href' attribute is expected to be a
* percent-encoded URI for proper serialization in the Link: HTTP header,
* as specified by RFC 8288.
* - A boolean specifying whether the link should also be a Link: HTTP
* header.
*
......@@ -455,7 +457,7 @@ protected function processHtmlHeadLink(array $html_head_link) {
if ($should_add_header) {
// Also add a HTTP header "Link:".
$href = '<' . Html::escape($attributes['href']) . '>';
$href = '<' . $attributes['href'] . '>';
unset($attributes['href']);
if ($param = static::formatHttpHeaderAttributes($attributes)) {
$href .= ';' . $param;
......
......@@ -63,7 +63,7 @@ public function testAttachments() {
// Test ['#attached']['html_head_link'] when outputted as HTTP header.
$this->drupalGet('/render_attached_test/html_header_link');
$expected_link_headers = [
'</foo?bar=&lt;baz&gt;&amp;baz=false>; rel="alternate"',
'</foo?bar=<baz>&baz=false>; rel="alternate"',
'</foo/bar>; hreflang="nl"; rel="alternate"',
'</foo/bar>; hreflang="de"; rel="alternate"',
];
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment