SLING-6046 While Streaming Video to IE 11, StreamRendererServlet do not use Partial Content Response [code 206]

Applied patch from Felix M that emits an Accept-Range header for resources > 100KB.

git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1777957 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/sling/servlets/get/impl/helpers/StreamRendererServlet.java b/src/main/java/org/apache/sling/servlets/get/impl/helpers/StreamRendererServlet.java
index e2396c9..cb10579 100644
--- a/src/main/java/org/apache/sling/servlets/get/impl/helpers/StreamRendererServlet.java
+++ b/src/main/java/org/apache/sling/servlets/get/impl/helpers/StreamRendererServlet.java
@@ -73,6 +73,17 @@
      */
     private static final String mimeSeparation = "SLING_MIME_BOUNDARY";
 
+    // size threshold for sending an Accept-Ranges header back in the response (100KB)
+    private static final int ACCEPT_RANGES_THRESHOLD = 100 * 1024 * 1024;
+
+    // Accept-Ranges header name
+    private static final String ACCEPT_RANGES_HEADER = "Accept-Ranges";
+
+    // Accept-Ranges header value
+    private static final String ACCEPT_RANGES_BYTES = "bytes";
+
+
+
     /**
      * Full range marker.
      */
@@ -393,6 +404,11 @@
         if (encoding != null) {
             response.setCharacterEncoding(encoding);
         }
+
+        // announce support for ranges if we know the size to be larger than 100KB
+        if (meta.getContentLength() > ACCEPT_RANGES_THRESHOLD) {
+            response.setHeader(ACCEPT_RANGES_HEADER, ACCEPT_RANGES_BYTES);
+        }
     }
 
     /**