@@ -92,8 +92,6 @@ func handleFileViewRenderMarkup(ctx *context.Context, filename string, sniffedTy
9292 ctx .ServerError ("Render" , err )
9393 return true
9494 }
95- // to prevent iframe from loading third-party url
96- ctx .Resp .Header ().Add ("Content-Security-Policy" , "frame-src 'self'" )
9795 return true
9896}
9997
@@ -241,14 +239,17 @@ func prepareFileView(ctx *context.Context, entry *git.TreeEntry) {
241239 // * IsRenderableXxx: some files are rendered by backend "markup" engine, some are rendered by frontend (pdf, 3d)
242240 // * DefaultViewMode: when there is no "display" query parameter, which view mode should be used by default, source or rendered
243241
244- utf8Reader := charset .ToUTF8WithFallbackReader (io .MultiReader (bytes .NewReader (buf ), dataRc ), charset.ConvertOpts {})
242+ contentReader := io .MultiReader (bytes .NewReader (buf ), dataRc )
243+ if fInfo .st .IsRepresentableAsText () {
244+ contentReader = charset .ToUTF8WithFallbackReader (contentReader , charset.ConvertOpts {})
245+ }
245246 switch {
246247 case fInfo .blobOrLfsSize >= setting .UI .MaxDisplayFileSize :
247248 ctx .Data ["IsFileTooLarge" ] = true
248- case handleFileViewRenderMarkup (ctx , entry .Name (), fInfo .st , buf , utf8Reader ):
249+ case handleFileViewRenderMarkup (ctx , entry .Name (), fInfo .st , buf , contentReader ):
249250 // it also sets ctx.Data["FileContent"] and more
250251 ctx .Data ["IsMarkup" ] = true
251- case handleFileViewRenderSource (ctx , entry .Name (), attrs , fInfo , utf8Reader ):
252+ case handleFileViewRenderSource (ctx , entry .Name (), attrs , fInfo , contentReader ):
252253 // it also sets ctx.Data["FileContent"] and more
253254 ctx .Data ["IsDisplayingSource" ] = true
254255 case handleFileViewRenderImage (ctx , fInfo , buf ):
0 commit comments