From f6015954f6fcbf95f001924297ef352cec7d287d Mon Sep 17 00:00:00 2001
From: catch <catch@35733.no-reply.drupal.org>
Date: Tue, 21 Sep 2021 17:32:22 +0100
Subject: [PATCH] Issue #3236284 by alexpott: Passing request headers to string
 functions causes deprecations in PHP 8.1

---
 .../Drupal/Core/EventSubscriber/ActiveLinkResponseFilter.php    | 2 +-
 core/lib/Drupal/Core/EventSubscriber/AjaxResponseSubscriber.php | 2 +-
 .../Core/EventSubscriber/RssResponseRelativeUrlFilter.php       | 2 +-
 .../jsonapi/src/EventSubscriber/ResourceResponseValidator.php   | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/core/lib/Drupal/Core/EventSubscriber/ActiveLinkResponseFilter.php b/core/lib/Drupal/Core/EventSubscriber/ActiveLinkResponseFilter.php
index 4e530cf31bfe..bb3031e6e90b 100644
--- a/core/lib/Drupal/Core/EventSubscriber/ActiveLinkResponseFilter.php
+++ b/core/lib/Drupal/Core/EventSubscriber/ActiveLinkResponseFilter.php
@@ -79,7 +79,7 @@ public function onResponse(ResponseEvent $event) {
     $response = $event->getResponse();
 
     // Only care about HTML responses.
-    if (stripos($response->headers->get('Content-Type'), 'text/html') === FALSE) {
+    if (stripos($response->headers->get('Content-Type', ''), 'text/html') === FALSE) {
       return;
     }
 
diff --git a/core/lib/Drupal/Core/EventSubscriber/AjaxResponseSubscriber.php b/core/lib/Drupal/Core/EventSubscriber/AjaxResponseSubscriber.php
index 10d142648576..5f730dcf4d4f 100644
--- a/core/lib/Drupal/Core/EventSubscriber/AjaxResponseSubscriber.php
+++ b/core/lib/Drupal/Core/EventSubscriber/AjaxResponseSubscriber.php
@@ -83,7 +83,7 @@ public function onResponse(ResponseEvent $event) {
       // @see https://www.drupal.org/node/1009382
       // @see https://www.drupal.org/node/2339491
       // @see Drupal.ajax.prototype.beforeSend()
-      $accept = $event->getRequest()->headers->get('accept');
+      $accept = $event->getRequest()->headers->get('accept', '');
 
       if (strpos($accept, 'text/html') !== FALSE) {
         $response->headers->set('Content-Type', 'text/html; charset=utf-8');
diff --git a/core/lib/Drupal/Core/EventSubscriber/RssResponseRelativeUrlFilter.php b/core/lib/Drupal/Core/EventSubscriber/RssResponseRelativeUrlFilter.php
index d9f8eaad611d..5da62bd82382 100644
--- a/core/lib/Drupal/Core/EventSubscriber/RssResponseRelativeUrlFilter.php
+++ b/core/lib/Drupal/Core/EventSubscriber/RssResponseRelativeUrlFilter.php
@@ -21,7 +21,7 @@ class RssResponseRelativeUrlFilter implements EventSubscriberInterface {
    */
   public function onResponse(ResponseEvent $event) {
     // Only care about RSS responses.
-    if (stripos($event->getResponse()->headers->get('Content-Type'), 'application/rss+xml') === FALSE) {
+    if (stripos($event->getResponse()->headers->get('Content-Type', ''), 'application/rss+xml') === FALSE) {
       return;
     }
 
diff --git a/core/modules/jsonapi/src/EventSubscriber/ResourceResponseValidator.php b/core/modules/jsonapi/src/EventSubscriber/ResourceResponseValidator.php
index 16250682e956..1ba0cd0196c9 100644
--- a/core/modules/jsonapi/src/EventSubscriber/ResourceResponseValidator.php
+++ b/core/modules/jsonapi/src/EventSubscriber/ResourceResponseValidator.php
@@ -101,7 +101,7 @@ public function setValidator(Validator $validator = NULL) {
    */
   public function onResponse(ResponseEvent $event) {
     $response = $event->getResponse();
-    if (strpos($response->headers->get('Content-Type'), 'application/vnd.api+json') === FALSE) {
+    if (strpos($response->headers->get('Content-Type', ''), 'application/vnd.api+json') === FALSE) {
       return;
     }
 
-- 
GitLab