diff --git a/django/middleware/gzip.py b/django/middleware/gzip.py index e9e955d704..8548c083e3 100644 --- a/django/middleware/gzip.py +++ b/django/middleware/gzip.py @@ -17,17 +17,11 @@ class GZipMiddleware(object): if not response.streaming and len(response.content) < 200: return response - patch_vary_headers(response, ('Accept-Encoding',)) - # Avoid gzipping if we've already got a content-encoding. if response.has_header('Content-Encoding'): return response - # MSIE have issues with gzipped response of various content types. - if "msie" in request.META.get('HTTP_USER_AGENT', '').lower(): - ctype = response.get('Content-Type', '').lower() - if not ctype.startswith("text/") or "javascript" in ctype: - return response + patch_vary_headers(response, ('Accept-Encoding',)) ae = request.META.get('HTTP_ACCEPT_ENCODING', '') if not re_accepts_gzip.search(ae): diff --git a/docs/ref/middleware.txt b/docs/ref/middleware.txt index d5958dfebd..7b7b76b567 100644 --- a/docs/ref/middleware.txt +++ b/docs/ref/middleware.txt @@ -108,11 +108,6 @@ It will NOT compress content if any of the following are true: * The request (the browser) hasn't sent an ``Accept-Encoding`` header containing ``gzip``. -* The request is from Internet Explorer and the ``Content-Type`` header - contains ``javascript`` or starts with anything other than ``text/``. - We do this to avoid a bug in early versions of IE that caused decompression - not to be performed on certain content types. - You can apply GZip compression to individual views using the :func:`~django.views.decorators.gzip.gzip_page()` decorator. diff --git a/docs/releases/1.8.txt b/docs/releases/1.8.txt index 774d94d94d..26b9d37a88 100644 --- a/docs/releases/1.8.txt +++ b/docs/releases/1.8.txt @@ -273,6 +273,11 @@ Miscellaneous * Database connections are considered equal only if they're the same object. They aren't hashable any more. +* :class:`~django.middleware.gzip.GZipMiddleware` used to disable compression + for some content types when the request is from Internet Explorer, in order + to work around a bug in IE6 and earlier. This behavior could affect + performance on IE7 and later. It was removed. + * ``URLField.to_python`` no longer adds a trailing slash to pathless URLs. * ``django.contrib.gis`` dropped support for GEOS 3.1 and GDAL 1.6. diff --git a/tests/middleware/tests.py b/tests/middleware/tests.py index 98420501a6..7df1d04418 100644 --- a/tests/middleware/tests.py +++ b/tests/middleware/tests.py @@ -613,16 +613,6 @@ class GZipMiddlewareTest(TestCase): self.assertEqual(r.content, self.compressible_string) self.assertEqual(r.get('Content-Encoding'), 'deflate') - def test_no_compress_ie_js_requests(self): - """ - Tests that compression isn't performed on JavaScript requests from Internet Explorer. - """ - self.req.META['HTTP_USER_AGENT'] = 'Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)' - self.resp['Content-Type'] = 'application/javascript; charset=UTF-8' - r = GZipMiddleware().process_response(self.req, self.resp) - self.assertEqual(r.content, self.compressible_string) - self.assertEqual(r.get('Content-Encoding'), None) - def test_no_compress_uncompressible_response(self): """ Tests that compression isn't performed on responses with uncompressible content.