From cf89a29cb4b27b333596a2297eb30b55c17c28ab Mon Sep 17 00:00:00 2001
From: catch <catch@35733.no-reply.drupal.org>
Date: Wed, 2 Feb 2022 14:34:10 +0000
Subject: [PATCH] Issue #3261265 by andypost, longwave: Remove deprecated
 MimeTypeGuesser code

---
 core/core.services.yml                        |  2 +
 core/lib/Drupal/Core/CoreServiceProvider.php  |  2 -
 .../Compiler/MimeTypePass.php                 | 58 -------------------
 .../MimeType/ExtensionMimeTypeGuesser.php     |  8 ---
 .../Core/File/MimeType/MimeTypeGuesser.php    |  8 ---
 .../MimeType/ExtensionMimeTypeGuesser.php     |  8 ---
 .../File/MimeType/MimeTypeGuesser.php         |  8 ---
 .../Controller/CKEditor5ImageController.php   |  8 +--
 core/modules/file/file.module                 |  9 +--
 core/modules/file/src/Entity/File.php         | 10 +---
 .../FieldFormatter/FileMediaFormatterBase.php |  9 +--
 .../rest/resource/FileUploadResource.php      |  9 +--
 .../src/Plugin/Field/FieldType/ImageItem.php  |  9 +--
 .../TemporaryJsonapiFileFieldUploader.php     |  9 +--
 .../responsive_image/responsive_image.module  |  8 +--
 .../system/src/Form/ThemeSettingsForm.php     |  9 +--
 16 files changed, 11 insertions(+), 163 deletions(-)
 delete mode 100644 core/lib/Drupal/Core/DependencyInjection/Compiler/MimeTypePass.php

diff --git a/core/core.services.yml b/core/core.services.yml
index 33555a617c2c..f8f73a764ff1 100644
--- a/core/core.services.yml
+++ b/core/core.services.yml
@@ -1585,6 +1585,8 @@ services:
   file.mime_type.guesser:
     class: Drupal\Core\File\MimeType\MimeTypeGuesser
     arguments: ['@stream_wrapper_manager']
+    tags:
+      - { name: service_collector, tag: mime_type_guesser, call: addMimeTypeGuesser }
     lazy: true
   file.mime_type.guesser.extension:
     class: Drupal\Core\File\MimeType\ExtensionMimeTypeGuesser
diff --git a/core/lib/Drupal/Core/CoreServiceProvider.php b/core/lib/Drupal/Core/CoreServiceProvider.php
index 2c90f6fbc824..90488703d6a0 100644
--- a/core/lib/Drupal/Core/CoreServiceProvider.php
+++ b/core/lib/Drupal/Core/CoreServiceProvider.php
@@ -19,7 +19,6 @@
 use Drupal\Core\DependencyInjection\ServiceProviderInterface;
 use Drupal\Core\DependencyInjection\ContainerBuilder;
 use Drupal\Core\DependencyInjection\Compiler\ModifyServiceDefinitionsPass;
-use Drupal\Core\DependencyInjection\Compiler\MimeTypePass;
 use Drupal\Core\DependencyInjection\Compiler\TaggedHandlersPass;
 use Drupal\Core\DependencyInjection\Compiler\RegisterEventSubscribersPass;
 use Drupal\Core\DependencyInjection\Compiler\RegisterAccessChecksPass;
@@ -74,7 +73,6 @@ public function register(ContainerBuilder $container) {
 
     // Collect tagged handler services as method calls on consumer services.
     $container->addCompilerPass(new TaggedHandlersPass());
-    $container->addCompilerPass(new MimeTypePass());
     $container->addCompilerPass(new RegisterStreamWrappersPass());
     $container->addCompilerPass(new TwigExtensionPass());
 
diff --git a/core/lib/Drupal/Core/DependencyInjection/Compiler/MimeTypePass.php b/core/lib/Drupal/Core/DependencyInjection/Compiler/MimeTypePass.php
deleted file mode 100644
index 6c0380a310a5..000000000000
--- a/core/lib/Drupal/Core/DependencyInjection/Compiler/MimeTypePass.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-namespace Drupal\Core\DependencyInjection\Compiler;
-
-use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
-use Symfony\Component\DependencyInjection\ContainerBuilder;
-use Symfony\Component\DependencyInjection\Exception\LogicException;
-use Symfony\Component\DependencyInjection\Reference;
-use Symfony\Component\Mime\MimeTypeGuesserInterface;
-
-/**
- * Adds @mime_type_guesser tagged services to handle forwards compatibility.
- *
- * @internal
- *
- * @deprecated in drupal:9.1.0 and is removed from drupal:10.0.0. No direct
- * replacement is provided.
- *
- * @see https://www.drupal.org/node/3133341
- */
-class MimeTypePass implements CompilerPassInterface {
-
-  /**
-   * {@inheritdoc}
-   */
-  public function process(ContainerBuilder $container) {
-    $consumer = $container->getDefinition('file.mime_type.guesser');
-
-    $tag = 'mime_type_guesser';
-    $interface = MimeTypeGuesserInterface::class;
-
-    // Find all tagged handlers.
-    $handlers = [];
-    foreach ($container->findTaggedServiceIds($tag) as $id => $attributes) {
-      // Validate the interface.
-      $handler = $container->getDefinition($id);
-      if (!is_subclass_of($handler->getClass(), $interface)) {
-        throw new LogicException("Service '$id' does not implement $interface.");
-      }
-      $handlers[$id] = $attributes[0]['priority'] ?? 0;
-      $interfaces[$id] = $handler->getClass();
-    }
-    if (empty($handlers)) {
-      throw new LogicException(sprintf("At least one service tagged with '%s' is required.", $tag));
-    }
-
-    // Sort all handlers by priority.
-    arsort($handlers, SORT_NUMERIC);
-
-    // Add a method call for each handler to the consumer service
-    // definition.
-    foreach ($handlers as $id => $priority) {
-      $arguments = [new Reference($id), $priority];
-      $consumer->addMethodCall('addMimeTypeGuesser', $arguments);
-    }
-  }
-
-}
diff --git a/core/lib/Drupal/Core/File/MimeType/ExtensionMimeTypeGuesser.php b/core/lib/Drupal/Core/File/MimeType/ExtensionMimeTypeGuesser.php
index 57b7468c1467..552d4b943bc1 100644
--- a/core/lib/Drupal/Core/File/MimeType/ExtensionMimeTypeGuesser.php
+++ b/core/lib/Drupal/Core/File/MimeType/ExtensionMimeTypeGuesser.php
@@ -885,14 +885,6 @@ public function __construct(ModuleHandlerInterface $module_handler) {
     $this->moduleHandler = $module_handler;
   }
 
-  /**
-   * {@inheritdoc}
-   */
-  public function guess($path) {
-    @trigger_error(__METHOD__ . '() is deprecated in drupal:9.1.0 and is removed from drupal:10.0.0. Use ::guessMimeType() instead. See https://www.drupal.org/node/3133341', E_USER_DEPRECATED);
-    return $this->guessMimeType($path);
-  }
-
   /**
    * {@inheritdoc}
    */
diff --git a/core/lib/Drupal/Core/File/MimeType/MimeTypeGuesser.php b/core/lib/Drupal/Core/File/MimeType/MimeTypeGuesser.php
index dab20cabfbed..07ffec91dd38 100644
--- a/core/lib/Drupal/Core/File/MimeType/MimeTypeGuesser.php
+++ b/core/lib/Drupal/Core/File/MimeType/MimeTypeGuesser.php
@@ -74,14 +74,6 @@ public function guessMimeType(string $path) : ?string {
     return NULL;
   }
 
-  /**
-   * {@inheritdoc}
-   */
-  public function guess($path) {
-    @trigger_error(__METHOD__ . '() is deprecated in drupal:9.1.0 and is removed from drupal:10.0.0. Use ::guessMimeType() instead. See https://www.drupal.org/node/3133341', E_USER_DEPRECATED);
-    return $this->guessMimeType($path);
-  }
-
   /**
    * Appends a MIME type guesser to the guessers chain.
    *
diff --git a/core/lib/Drupal/Core/ProxyClass/File/MimeType/ExtensionMimeTypeGuesser.php b/core/lib/Drupal/Core/ProxyClass/File/MimeType/ExtensionMimeTypeGuesser.php
index 8cb8b4f59cc8..2cb59856a952 100644
--- a/core/lib/Drupal/Core/ProxyClass/File/MimeType/ExtensionMimeTypeGuesser.php
+++ b/core/lib/Drupal/Core/ProxyClass/File/MimeType/ExtensionMimeTypeGuesser.php
@@ -67,14 +67,6 @@ protected function lazyLoadItself()
             return $this->service;
         }
 
-        /**
-         * {@inheritdoc}
-         */
-        public function guess($path)
-        {
-            return $this->lazyLoadItself()->guess($path);
-        }
-
         /**
          * {@inheritdoc}
          */
diff --git a/core/lib/Drupal/Core/ProxyClass/File/MimeType/MimeTypeGuesser.php b/core/lib/Drupal/Core/ProxyClass/File/MimeType/MimeTypeGuesser.php
index 1bea10a4c82c..0a259a396c09 100644
--- a/core/lib/Drupal/Core/ProxyClass/File/MimeType/MimeTypeGuesser.php
+++ b/core/lib/Drupal/Core/ProxyClass/File/MimeType/MimeTypeGuesser.php
@@ -75,14 +75,6 @@ public function guessMimeType(string $path): ?string
             return $this->lazyLoadItself()->guessMimeType($path);
         }
 
-        /**
-         * {@inheritdoc}
-         */
-        public function guess($path)
-        {
-            return $this->lazyLoadItself()->guess($path);
-        }
-
         /**
          * {@inheritdoc}
          */
diff --git a/core/modules/ckeditor5/src/Controller/CKEditor5ImageController.php b/core/modules/ckeditor5/src/Controller/CKEditor5ImageController.php
index 9d4a6c674e9c..e24c3484349e 100644
--- a/core/modules/ckeditor5/src/Controller/CKEditor5ImageController.php
+++ b/core/modules/ckeditor5/src/Controller/CKEditor5ImageController.php
@@ -171,13 +171,7 @@ public function upload(Request $request) {
     $file = File::create([]);
     $file->setOwnerId($this->currentUser->id());
     $file->setFilename($prepared_filename);
-    if ($this->mimeTypeGuesser instanceof MimeTypeGuesserInterface) {
-      $file->setMimeType($this->mimeTypeGuesser->guessMimeType($prepared_filename));
-    }
-    else {
-      $file->setMimeType($this->mimeTypeGuesser->guess($prepared_filename));
-      @trigger_error('\Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface is deprecated in drupal:9.1.0 and is removed from drupal:10.0.0. Implement \Symfony\Component\Mime\MimeTypeGuesserInterface instead. See https://www.drupal.org/node/3133341', E_USER_DEPRECATED);
-    }
+    $file->setMimeType($this->mimeTypeGuesser->guessMimeType($prepared_filename));
 
     $file->setFileUri($file_uri);
     $file->setSize(@filesize($temp_file_path));
diff --git a/core/modules/file/file.module b/core/modules/file/file.module
index 59c5acbcc54e..269a6d43088c 100644
--- a/core/modules/file/file.module
+++ b/core/modules/file/file.module
@@ -33,7 +33,6 @@
 use Symfony\Component\HttpFoundation\File\Exception\IniSizeFileException;
 use Symfony\Component\HttpFoundation\File\Exception\NoFileException;
 use Symfony\Component\HttpFoundation\File\Exception\PartialFileException;
-use Symfony\Component\Mime\MimeTypeGuesserInterface;
 
 // cspell:ignore abiword
 
@@ -1050,13 +1049,7 @@ function _file_save_upload_single(\SplFileInfo $file_info, $form_field_name, $va
   }
 
   $guesser = \Drupal::service('file.mime_type.guesser');
-  if ($guesser instanceof MimeTypeGuesserInterface) {
-    $file->setMimeType($guesser->guessMimeType($values['filename']));
-  }
-  else {
-    $file->setMimeType($guesser->guess($values['filename']));
-    @trigger_error('\Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface is deprecated in drupal:9.1.0 and is removed from drupal:10.0.0. Implement \Symfony\Component\Mime\MimeTypeGuesserInterface instead. See https://www.drupal.org/node/3133341', E_USER_DEPRECATED);
-  }
+  $file->setMimeType($guesser->guessMimeType($values['filename']));
   $file->source = $form_field_name;
 
   // If the destination is FALSE then $replace === FILE_EXISTS_ERROR and
diff --git a/core/modules/file/src/Entity/File.php b/core/modules/file/src/Entity/File.php
index 57276f495e86..44a329996892 100644
--- a/core/modules/file/src/Entity/File.php
+++ b/core/modules/file/src/Entity/File.php
@@ -10,7 +10,6 @@
 use Drupal\Core\File\Exception\FileException;
 use Drupal\file\FileInterface;
 use Drupal\user\EntityOwnerTrait;
-use Symfony\Component\Mime\MimeTypeGuesserInterface;
 
 /**
  * Defines the file entity class.
@@ -159,14 +158,7 @@ public static function preCreate(EntityStorageInterface $storage, array &$values
 
     // Automatically detect filemime if not set.
     if (!isset($values['filemime']) && isset($values['uri'])) {
-      $guesser = \Drupal::service('file.mime_type.guesser');
-      if ($guesser instanceof MimeTypeGuesserInterface) {
-        $values['filemime'] = $guesser->guessMimeType($values['uri']);
-      }
-      else {
-        $values['filemime'] = $guesser->guess($values['uri']);
-        @trigger_error('\Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface is deprecated in drupal:9.1.0 and is removed from drupal:10.0.0. Implement \Symfony\Component\Mime\MimeTypeGuesserInterface instead. See https://www.drupal.org/node/3133341', E_USER_DEPRECATED);
-      }
+      $values['filemime'] = \Drupal::service('file.mime_type.guesser')->guessMimeType($values['uri']);
     }
   }
 
diff --git a/core/modules/file/src/Plugin/Field/FieldFormatter/FileMediaFormatterBase.php b/core/modules/file/src/Plugin/Field/FieldFormatter/FileMediaFormatterBase.php
index 9fa11db2f69e..f55d95e65e04 100644
--- a/core/modules/file/src/Plugin/Field/FieldFormatter/FileMediaFormatterBase.php
+++ b/core/modules/file/src/Plugin/Field/FieldFormatter/FileMediaFormatterBase.php
@@ -8,7 +8,6 @@
 use Drupal\Core\Field\FieldItemListInterface;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Template\Attribute;
-use Symfony\Component\Mime\MimeTypeGuesserInterface;
 
 /**
  * Base class for media file formatter.
@@ -81,13 +80,7 @@ public static function isApplicable(FieldDefinitionInterface $field_definition)
     $extension_list = array_filter(preg_split('/\s+/', $field_definition->getSetting('file_extensions')));
 
     foreach ($extension_list as $extension) {
-      if ($extension_mime_type_guesser instanceof MimeTypeGuesserInterface) {
-        $mime_type = $extension_mime_type_guesser->guessMimeType('fakedFile.' . $extension);
-      }
-      else {
-        $mime_type = $extension_mime_type_guesser->guess('fakedFile.' . $extension);
-        @trigger_error('\Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface is deprecated in drupal:9.1.0 and is removed from drupal:10.0.0. Implement \Symfony\Component\Mime\MimeTypeGuesserInterface instead. See https://www.drupal.org/node/3133341', E_USER_DEPRECATED);
-      }
+      $mime_type = $extension_mime_type_guesser->guessMimeType('fakedFile.' . $extension);
       if (static::mimeTypeApplies($mime_type)) {
         return TRUE;
       }
diff --git a/core/modules/file/src/Plugin/rest/resource/FileUploadResource.php b/core/modules/file/src/Plugin/rest/resource/FileUploadResource.php
index 0d5425009c04..16f7683b9c91 100644
--- a/core/modules/file/src/Plugin/rest/resource/FileUploadResource.php
+++ b/core/modules/file/src/Plugin/rest/resource/FileUploadResource.php
@@ -28,7 +28,6 @@
 use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
 use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
 use Symfony\Component\HttpKernel\Exception\UnprocessableEntityHttpException;
-use Symfony\Component\Mime\MimeTypeGuesserInterface;
 use Symfony\Component\Routing\Route;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpKernel\Exception\HttpException;
@@ -271,13 +270,7 @@ public function post(Request $request, $entity_type_id, $bundle, $field_name) {
     $file = File::create([]);
     $file->setOwnerId($this->currentUser->id());
     $file->setFilename($prepared_filename);
-    if ($this->mimeTypeGuesser instanceof MimeTypeGuesserInterface) {
-      $file->setMimeType($this->mimeTypeGuesser->guessMimeType($prepared_filename));
-    }
-    else {
-      $file->setMimeType($this->mimeTypeGuesser->guess($prepared_filename));
-      @trigger_error('\Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface is deprecated in drupal:9.1.0 and is removed from drupal:10.0.0. Implement \Symfony\Component\Mime\MimeTypeGuesserInterface instead. See https://www.drupal.org/node/3133341', E_USER_DEPRECATED);
-    }
+    $file->setMimeType($this->mimeTypeGuesser->guessMimeType($prepared_filename));
     $file->setFileUri($temp_file_path);
     // Set the size. This is done in File::preSave() but we validate the file
     // before it is saved.
diff --git a/core/modules/image/src/Plugin/Field/FieldType/ImageItem.php b/core/modules/image/src/Plugin/Field/FieldType/ImageItem.php
index fa6ea636e290..8992a77ab75d 100644
--- a/core/modules/image/src/Plugin/Field/FieldType/ImageItem.php
+++ b/core/modules/image/src/Plugin/Field/FieldType/ImageItem.php
@@ -13,7 +13,6 @@
 use Drupal\Core\TypedData\DataDefinition;
 use Drupal\file\Entity\File;
 use Drupal\file\Plugin\Field\FieldType\FileItem;
-use Symfony\Component\Mime\MimeTypeGuesserInterface;
 
 /**
  * Plugin implementation of the 'image' field type.
@@ -353,13 +352,7 @@ public static function generateSampleValue(FieldDefinitionInterface $field_defin
         $image->setFileUri($path);
         $image->setOwnerId(\Drupal::currentUser()->id());
         $guesser = \Drupal::service('file.mime_type.guesser');
-        if ($guesser instanceof MimeTypeGuesserInterface) {
-          $image->setMimeType($guesser->guessMimeType($path));
-        }
-        else {
-          $image->setMimeType($guesser->guess($path));
-          @trigger_error('\Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface is deprecated in drupal:9.1.0 and is removed from drupal:10.0.0. Implement \Symfony\Component\Mime\MimeTypeGuesserInterface instead. See https://www.drupal.org/node/3133341', E_USER_DEPRECATED);
-        }
+        $image->setMimeType($guesser->guessMimeType($path));
         $image->setFileName($file_system->basename($path));
         $destination_dir = static::doGetUploadLocation($settings);
         $file_system->prepareDirectory($destination_dir, FileSystemInterface::CREATE_DIRECTORY);
diff --git a/core/modules/jsonapi/src/Controller/TemporaryJsonapiFileFieldUploader.php b/core/modules/jsonapi/src/Controller/TemporaryJsonapiFileFieldUploader.php
index d07b4562ec84..3b8641f7bc35 100644
--- a/core/modules/jsonapi/src/Controller/TemporaryJsonapiFileFieldUploader.php
+++ b/core/modules/jsonapi/src/Controller/TemporaryJsonapiFileFieldUploader.php
@@ -26,7 +26,6 @@
 use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
 use Symfony\Component\HttpFoundation\Request;
 use Symfony\Component\HttpKernel\Exception\HttpException;
-use Symfony\Component\Mime\MimeTypeGuesserInterface;
 use Symfony\Component\Validator\ConstraintViolation;
 use Symfony\Contracts\EventDispatcher\EventDispatcherInterface;
 
@@ -193,13 +192,7 @@ public function handleFileUploadForField(FieldDefinitionInterface $field_definit
     $file = File::create([]);
     $file->setOwnerId($owner->id());
     $file->setFilename($prepared_filename);
-    if ($this->mimeTypeGuesser instanceof MimeTypeGuesserInterface) {
-      $file->setMimeType($this->mimeTypeGuesser->guessMimeType($prepared_filename));
-    }
-    else {
-      @trigger_error('\Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface is deprecated in drupal:9.1.0 and is removed from drupal:10.0.0. Implement \Symfony\Component\Mime\MimeTypeGuesserInterface instead. See https://www.drupal.org/node/3133341', E_USER_DEPRECATED);
-      $file->setMimeType($this->mimeTypeGuesser->guess($prepared_filename));
-    }
+    $file->setMimeType($this->mimeTypeGuesser->guessMimeType($prepared_filename));
     $file->setFileUri($temp_file_path);
     // Set the size. This is done in File::preSave() but we validate the file
     // before it is saved.
diff --git a/core/modules/responsive_image/responsive_image.module b/core/modules/responsive_image/responsive_image.module
index 6bd0e51f28b3..7899c7e5b8e0 100644
--- a/core/modules/responsive_image/responsive_image.module
+++ b/core/modules/responsive_image/responsive_image.module
@@ -13,7 +13,6 @@
 use Drupal\responsive_image\Entity\ResponsiveImageStyle;
 use Drupal\responsive_image\ResponsiveImageStyleInterface;
 use Drupal\breakpoint\BreakpointInterface;
-use Symfony\Component\Mime\MimeTypeGuesserInterface;
 
 /**
  * Implements hook_help().
@@ -478,12 +477,7 @@ function responsive_image_get_mime_type($image_style_name, $extension) {
   else {
     $fake_path = 'responsive_image.' . ImageStyle::load($image_style_name)->getDerivativeExtension($extension);
   }
-  $guesser = \Drupal::service('file.mime_type.guesser.extension');
-  if (!$guesser instanceof MimeTypeGuesserInterface) {
-    @trigger_error('\Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface is deprecated in drupal:9.1.0 and is removed from drupal:10.0.0. Implement \Symfony\Component\Mime\MimeTypeGuesserInterface instead. See https://www.drupal.org/node/3133341', E_USER_DEPRECATED);
-    return $guesser->guess($fake_path);
-  }
-  return $guesser->guessMimeType($fake_path);
+  return \Drupal::service('file.mime_type.guesser.extension')->guessMimeType($fake_path);
 }
 
 /**
diff --git a/core/modules/system/src/Form/ThemeSettingsForm.php b/core/modules/system/src/Form/ThemeSettingsForm.php
index a07e9e6a8fbc..00d6b28c71e9 100644
--- a/core/modules/system/src/Form/ThemeSettingsForm.php
+++ b/core/modules/system/src/Form/ThemeSettingsForm.php
@@ -15,7 +15,6 @@
 use Drupal\Core\Extension\ModuleHandlerInterface;
 use Drupal\Core\Form\ConfigFormBase;
 use Drupal\Core\Theme\ThemeManagerInterface;
-use Symfony\Component\Mime\MimeTypeGuesserInterface;
 
 // cspell:ignore apng
 
@@ -500,13 +499,7 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
     }
 
     if (empty($values['default_favicon']) && !empty($values['favicon_path'])) {
-      if ($this->mimeTypeGuesser instanceof MimeTypeGuesserInterface) {
-        $values['favicon_mimetype'] = $this->mimeTypeGuesser->guessMimeType($values['favicon_path']);
-      }
-      else {
-        $values['favicon_mimetype'] = $this->mimeTypeGuesser->guess($values['favicon_path']);
-        @trigger_error('\Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface is deprecated in drupal:9.1.0 and is removed from drupal:10.0.0. Implement \Symfony\Component\Mime\MimeTypeGuesserInterface instead. See https://www.drupal.org/node/3133341', E_USER_DEPRECATED);
-      }
+      $values['favicon_mimetype'] = $this->mimeTypeGuesser->guessMimeType($values['favicon_path']);
     }
 
     theme_settings_convert_to_config($values, $config)->save();
-- 
GitLab