Set Content-Type header for ?format=TEXT content replies on paths HTTP servers should always send a Content-Type response header to prevent browsers from entering into (a possibly stupid) sniffing mode. Since the payload is wrapped up in base64 this is really a text/plain reply. Using the two-arg form of startRenderText() will send a text/plain Content-Type, which is exactly correct here. Change-Id: I194a1446c62e4409c27e8fc72aa43846ea3438a9
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/PathServlet.java b/gitiles-servlet/src/main/java/com/google/gitiles/PathServlet.java index ff660b8..ecde06a 100644 --- a/gitiles-servlet/src/main/java/com/google/gitiles/PathServlet.java +++ b/gitiles-servlet/src/main/java/com/google/gitiles/PathServlet.java
@@ -208,7 +208,7 @@ private void writeBlobText(HttpServletRequest req, HttpServletResponse res, WalkResult wr) throws IOException { setModeHeader(res, wr.type); - try (Writer writer = startRenderText(req, res, null); + try (Writer writer = startRenderText(req, res); OutputStream out = BaseEncoding.base64().encodingStream(writer)) { wr.getObjectReader().open(wr.id).copyTo(out); } @@ -218,7 +218,7 @@ throws IOException { setModeHeader(res, wr.type); - try (Writer writer = startRenderText(req, res, null); + try (Writer writer = startRenderText(req, res); OutputStream out = BaseEncoding.base64().encodingStream(writer)) { // Match git ls-tree format. while (wr.tw.next()) {