[BUGFIX] Catch TypeError on inlineCSS files 20/60420/2
authorBenni Mack <benni@typo3.org>
Tue, 9 Apr 2019 02:01:05 +0000 (04:01 +0200)
committerBenni Mack <benni@typo3.org>
Fri, 12 Apr 2019 18:07:05 +0000 (20:07 +0200)
If page.includeCSS.myfile.import = 1 is used, but no "media" is set, a TypeError
is thrown, which is now caught and properly checked.

Resolves: #88059
Releases: master, 9.5
Change-Id: I0951688bb9ee779329ebe5c7fad698862d73f6c3
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/60420
Tested-by: TYPO3com <noreply@typo3.com>
Tested-by: Julian Geils <j_geils@web.de>
Tested-by: Tobi Kretschmann <tobi@tobishome.de>
Tested-by: Benni Mack <benni@typo3.org>
Reviewed-by: Julian Geils <j_geils@web.de>
Reviewed-by: Tobi Kretschmann <tobi@tobishome.de>
Reviewed-by: Benni Mack <benni@typo3.org>
typo3/sysext/frontend/Classes/Http/RequestHandler.php

index f74176d..65a025d 100644 (file)
@@ -428,7 +428,8 @@ class RequestHandler implements RequestHandlerInterface
                                 // To fix MSIE 6 that cannot handle these as relative paths (according to Ben v Ende)
                                 $ss = GeneralUtility::dirname(GeneralUtility::getIndpEnv('SCRIPT_NAME')) . '/' . $ss;
                             }
-                            $pageRenderer->addCssInlineBlock('import_' . $key, '@import url("' . htmlspecialchars($ss) . '") ' . htmlspecialchars($cssFileConfig['media']) . ';', empty($cssFileConfig['disableCompression']), (bool)$cssFileConfig['forceOnTop']);
+                            $cssMedia = !empty($cssFileConfig['media']) ? ' ' . htmlspecialchars($cssFileConfig['media']) : '';
+                            $pageRenderer->addCssInlineBlock('import_' . $key, '@import url("' . htmlspecialchars($ss) . '")' . $cssMedia . ';', empty($cssFileConfig['disableCompression']), (bool)$cssFileConfig['forceOnTop']);
                         } else {
                             $pageRenderer->addCssFile(
                                 $ss,
@@ -470,7 +471,8 @@ class RequestHandler implements RequestHandlerInterface
                                 // To fix MSIE 6 that cannot handle these as relative paths (according to Ben v Ende)
                                 $ss = GeneralUtility::dirname(GeneralUtility::getIndpEnv('SCRIPT_NAME')) . '/' . $ss;
                             }
-                            $pageRenderer->addCssInlineBlock('import_' . $key, '@import url("' . htmlspecialchars($ss) . '") ' . htmlspecialchars($cssFileConfig['media']) . ';', empty($cssFileConfig['disableCompression']), (bool)$cssFileConfig['forceOnTop']);
+                            $cssMedia = !empty($cssFileConfig['media']) ? ' ' . htmlspecialchars($cssFileConfig['media']) : '';
+                            $pageRenderer->addCssInlineBlock('import_' . $key, '@import url("' . htmlspecialchars($ss) . '")' . $cssMedia . ';', empty($cssFileConfig['disableCompression']), (bool)$cssFileConfig['forceOnTop']);
                         } else {
                             $pageRenderer->addCssLibrary(
                                 $ss,