Add offenders for document.write calls

This commit is contained in:
Gaël Métais
2015-03-16 16:54:17 +01:00
parent bf8123b7c5
commit 457d6cc54b
2 changed files with 60 additions and 1 deletions
+13
View File
@@ -62,6 +62,19 @@
</div>
</div>
<div ng-if="policyName === 'documentWriteCalls'">
<b>{{offender.writeFn}}</b>
<span ng-if="offender.from">
called from
<span ng-if="offender.from.functionName">{{offender.from.functionName}}()</span>
<url-link url="offender.from.file" max-length="50"></url-link>
line {{offender.from.line}}
</span>
<span ng-if="!offender.from">
called from (no backtrace available)
</span>
</div>
<div ng-if="policyName === 'cssParsingErrors'">
<b>{{offender.error}}</b>
<file-and-line file="offender.file" line="offender.line" column="offender.column"></file-and-line>
+47 -1
View File
@@ -242,7 +242,53 @@ var policies = {
"isOkThreshold": 0,
"isBadThreshold": 10,
"isAbnormalThreshold": 20,
"hasOffenders": false
"hasOffenders": true,
"offendersTransformFn": function(offenders) {
return {
count: offenders.length,
list: offenders.map(function(offender) {
var parts = /^document.write(ln)?\(\) used from (.*)$/.exec(offender);
if (parts) {
var writeFn = 'document.write' + (parts[1] || '');
var methodParts = /^([^\s]+) \((.+):(\d+)\)$/.exec(parts[2]);
if (methodParts) {
return {
writeFn: writeFn,
from: {
functionName: methodParts[1],
file: methodParts[2],
line: methodParts[3]
}
};
} else {
var noMethodParts = /^(.+):(\d+)$/.exec(parts[2]);
if (noMethodParts) {
return {
writeFn: writeFn,
from: {
file: noMethodParts[1],
line: noMethodParts[2]
}
};
} else {
return {
}
}
}
}
debug('documentWriteCalls offenders transform function error with "%s"', offender);
return {
parseError: offender
};
})
};
}
},
"consoleMessages": {
"tool": "phantomas",