From 923527b7f4635f8142721f4a7ccf02d3d05fd24f Mon Sep 17 00:00:00 2001
From: Alex Pott <alex.a.pott@googlemail.com>
Date: Tue, 3 Feb 2015 10:45:22 +0000
Subject: [PATCH] Issue #2415757 by chintan.vyas: Remove all uses of
 file_get_mimetype

---
 core/modules/file/file.module                 |  2 +-
 core/modules/file/src/Entity/File.php         |  2 +-
 .../system/src/Form/ThemeSettingsForm.php     | 22 ++++++++++++++-----
 3 files changed, 19 insertions(+), 7 deletions(-)

diff --git a/core/modules/file/file.module b/core/modules/file/file.module
index 654530165cf3..794ffb30f859 100644
--- a/core/modules/file/file.module
+++ b/core/modules/file/file.module
@@ -756,7 +756,7 @@ function file_save_upload($form_field_name, $validators = array(), $destination
       'uri' => $file_info->getRealPath(),
       'filesize' => $file_info->getSize(),
     );
-    $values['filemime'] = file_get_mimetype($values['filename']);
+    $values['filemime'] = \Drupal::service('file.mime_type.guesser')->guess($values['filename']);
     $file = entity_create('file', $values);
 
     $extensions = '';
diff --git a/core/modules/file/src/Entity/File.php b/core/modules/file/src/Entity/File.php
index 7cf5058b237a..2dbbf31aa926 100644
--- a/core/modules/file/src/Entity/File.php
+++ b/core/modules/file/src/Entity/File.php
@@ -185,7 +185,7 @@ public static function preCreate(EntityStorageInterface $storage, array &$values
 
     // Automatically detect filemime if not set.
     if (!isset($values['filemime']) && isset($values['uri'])) {
-      $values['filemime'] = file_get_mimetype($values['uri']);
+      $values['filemime'] = \Drupal::service('file.mime_type.guesser')->guess($values['uri']);
     }
   }
 
diff --git a/core/modules/system/src/Form/ThemeSettingsForm.php b/core/modules/system/src/Form/ThemeSettingsForm.php
index 79cf30505d40..fd8b777a5b6f 100644
--- a/core/modules/system/src/Form/ThemeSettingsForm.php
+++ b/core/modules/system/src/Form/ThemeSettingsForm.php
@@ -12,6 +12,7 @@
 use Drupal\Core\Render\Element;
 use Drupal\Core\StreamWrapper\PublicStream;
 use Symfony\Component\DependencyInjection\ContainerInterface;
+use Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface;
 use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
 use Drupal\Core\Cache\Cache;
 use Drupal\Core\Config\ConfigFactoryInterface;
@@ -37,6 +38,13 @@ class ThemeSettingsForm extends ConfigFormBase {
    */
   protected $themeHandler;
 
+  /**
+   * The MIME type guesser.
+   *
+   * @var \Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface
+   */
+  protected $mimeTypeGuesser;
+
   /**
    * An array of configuration names that should be editable.
    *
@@ -49,16 +57,19 @@ class ThemeSettingsForm extends ConfigFormBase {
    *
    * @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
    *   The factory for configuration objects.
-   * @param \Drupal\Core\Extension\ModuleHandlerInterface
+   * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
    *   The module handler instance to use.
    * @param \Drupal\Core\Extension\ThemeHandlerInterface $theme_handler
-   * The theme handler.
+   *   The theme handler.
+   * @param \Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface $mime_type_guesser
+   *   The MIME type guesser instance to use.
    */
-  public function __construct(ConfigFactoryInterface $config_factory, ModuleHandlerInterface $module_handler, ThemeHandlerInterface $theme_handler) {
+  public function __construct(ConfigFactoryInterface $config_factory, ModuleHandlerInterface $module_handler, ThemeHandlerInterface $theme_handler, MimeTypeGuesserInterface $mime_type_guesser) {
     parent::__construct($config_factory);
 
     $this->moduleHandler = $module_handler;
     $this->themeHandler = $theme_handler;
+    $this->mimeTypeGuesser = $mime_type_guesser;
   }
 
   /**
@@ -68,7 +79,8 @@ public static function create(ContainerInterface $container) {
     return new static(
       $container->get('config.factory'),
       $container->get('module_handler'),
-      $container->get('theme_handler')
+      $container->get('theme_handler'),
+      $container->get('file.mime_type.guesser')
     );
   }
 
@@ -446,7 +458,7 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
       }
 
       if (empty($values['default_favicon']) && !empty($values['favicon_path'])) {
-        $values['favicon_mimetype'] = file_get_mimetype($values['favicon_path']);
+        $values['favicon_mimetype'] = $this->mimeTypeGuesser->guess($values['favicon_path']);
       }
     }
 
-- 
GitLab