From 2459925e4a9bfc216f79d56416dffd1afc7d3b17 Mon Sep 17 00:00:00 2001 From: Timo Tijhof Date: Tue, 26 Jan 2016 01:33:24 +0000 Subject: [PATCH] MimeMagic: Set mime-type for .js to application/javascript The previous "application/x-javascript" was non-standard. It was used as unregistered mime type by various vendors after stakeholders agreed it shouldn't be text/javascript anymore, but "application/javascript" was still pending approval. That was settled in 2006 with RFC 4329. http://www.iana.org/assignments/media-types/media-types.xhtml https://tools.ietf.org/html/rfc4329 It also previously inconsistently returned "application/x-javascript" or "text/javascript" depending on whether you call MimeMagic with or without the flag that asks for "improved" mime magic (in the latter mode, it picks the first one from the mime-info list as override). This makes MimeMagic match the behaviour of HHVM-static server, NGINX, and Apache 2.4; with regards to Content-Type for .js files. Change-Id: Idfe0a80c60c548fe28283c62ee9803bff7bdb2d6 --- includes/MimeMagic.php | 4 ++-- includes/mime.info | 2 +- includes/mime.types | 2 +- tests/phpunit/includes/MimeMagicTest.php | 2 ++ 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/includes/MimeMagic.php b/includes/MimeMagic.php index 8ab92b4c1e..d619f2da46 100644 --- a/includes/MimeMagic.php +++ b/includes/MimeMagic.php @@ -59,7 +59,7 @@ application/vnd.oasis.opendocument.text odt application/vnd.oasis.opendocument.text-master otm application/vnd.oasis.opendocument.text-template ott application/vnd.oasis.opendocument.text-web oth -application/x-javascript js +application/javascript js application/x-shockwave-flash swf audio/midi mid midi kar audio/mpeg mpga mpa mp2 mp3 @@ -110,7 +110,7 @@ application/vnd.oasis.opendocument.text [OFFICE] application/vnd.oasis.opendocument.text-template [OFFICE] application/vnd.oasis.opendocument.text-master [OFFICE] application/vnd.oasis.opendocument.text-web [OFFICE] -text/javascript application/x-javascript [EXECUTABLE] +application/javascript text/javascript application/x-javascript [EXECUTABLE] application/x-shockwave-flash [MULTIMEDIA] audio/midi [AUDIO] audio/x-aiff [AUDIO] diff --git a/includes/mime.info b/includes/mime.info index 999be92b28..b04d3c68a2 100644 --- a/includes/mime.info +++ b/includes/mime.info @@ -78,7 +78,7 @@ application/x-stuffit [ARCHIVE] application/x-opc+zip [ARCHIVE] application/x-7z-compressed [ARCHIVE] -text/javascript application/x-javascript application/x-ecmascript text/ecmascript [EXECUTABLE] +application/javascript text/javascript application/x-javascript application/x-ecmascript text/ecmascript [EXECUTABLE] application/x-bash [EXECUTABLE] application/x-sh [EXECUTABLE] application/x-csh [EXECUTABLE] diff --git a/includes/mime.types b/includes/mime.types index c3b5190328..89c8847d9d 100644 --- a/includes/mime.types +++ b/includes/mime.types @@ -36,7 +36,7 @@ application/x-gtar gtar tar application/x-gzip gz application/x-hdf hdf application/x-jar jar -application/x-javascript js +application/javascript js application/json json application/x-koan skp skd skt skm application/x-latex latex diff --git a/tests/phpunit/includes/MimeMagicTest.php b/tests/phpunit/includes/MimeMagicTest.php index 3c45f305e5..fabc5c6a56 100644 --- a/tests/phpunit/includes/MimeMagicTest.php +++ b/tests/phpunit/includes/MimeMagicTest.php @@ -28,6 +28,8 @@ class MimeMagicTest extends PHPUnit_Framework_TestCase { array( 'txt', 'text/plain', 'text/plain' ), array( 'csv', 'text/plain', 'text/csv' ), array( 'tsv', 'text/plain', 'text/tab-separated-values' ), + array( 'js', 'text/javascript', 'application/javascript' ), + array( 'js', 'application/x-javascript', 'application/javascript' ), array( 'json', 'text/plain', 'application/json' ), array( 'foo', 'application/x-opc+zip', 'application/zip' ), array( 'docx', 'application/x-opc+zip', -- 2.20.1