Skip to content

Commit c4f5662

Browse files
authored
Allow to filter resources also on base media type. (#92)
This way we can filter out any image or font without listing all subtypes. The subtypes are used for the MIME types that have mixed use.
1 parent 83bc59c commit c4f5662

1 file changed

Lines changed: 14 additions & 22 deletions

File tree

src/SAMLTrace.js

Lines changed: 14 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -600,18 +600,23 @@ SAMLTrace.TraceWindow = function() {
600600

601601
SAMLTrace.TraceWindow.prototype = {
602602
'isRequestVisible' : function(request) {
603-
var contentTypeHeader = request.responseHeaders.filter(header => header.name.toLowerCase() === 'content-type');
604-
if (contentTypeHeader === null || contentTypeHeader.length === 0) {
603+
const contentTypeHeader = request.responseHeaders.find(header => header.name.toLowerCase() === 'content-type');
604+
if (contentTypeHeader === null) {
605605
return true;
606606
}
607-
var type = contentTypeHeader[0].value;
607+
const type = contentTypeHeader.value.split(';')[0].toLowerCase().trim();
608+
const basetype = type.split('/')[0];
608609

609-
var i = type.indexOf(';');
610-
if (i != -1) {
611-
type = type.substr(0, i);
610+
switch (basetype) {
611+
case 'audio':
612+
case 'font':
613+
case 'image':
614+
case 'video':
615+
return false;
612616
}
613-
type = type.toLowerCase().trim();
614617

618+
// Some of the below are deprecated variants, but we keep them as
619+
// we still want to filter them when sent by older web servers.
615620
switch (type) {
616621
case 'application/ecmascript':
617622
case 'application/javascript':
@@ -625,27 +630,14 @@ SAMLTrace.TraceWindow.prototype = {
625630
case 'application/font-woff2':
626631
case 'application/x-font-ttf':
627632
case 'application/x-font-woff':
628-
case 'font/collection':
629-
case 'font/otf':
630-
case 'font/sfnt':
631-
case 'font/ttf':
632-
case 'font/woff':
633-
case 'font/woff2':
634-
case 'image/gif':
635-
case 'image/jpg':
636-
case 'image/jpeg':
637-
case 'image/png':
638-
case 'image/vnd.microsoft.icon':
639-
case 'image/x-icon':
640-
case 'image/svg+xml':
641633
case 'text/css':
642634
case 'text/ecmascript':
643635
case 'text/javascript':
644636
case 'text/x-content-security-policy':
645637
return false;
646-
default:
647-
return true;
648638
}
639+
640+
return true;
649641
},
650642

651643
'addRequestItem' : function(request, getResponse) {

0 commit comments

Comments
 (0)