New rule called "Empty requests" (#180)
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
*/
|
||||
|
||||
|
||||
var debug = require('debug')('ylt:weightChecker');
|
||||
var debug = require('debug')('ylt:redownload');
|
||||
var Q = require('q');
|
||||
var http = require('http');
|
||||
var zlib = require('zlib');
|
||||
@@ -18,7 +18,7 @@ var gzipCompressor = require('./gzipCompressor');
|
||||
var contentTypeChecker = require('./contentTypeChecker');
|
||||
|
||||
|
||||
var WeightChecker = function() {
|
||||
var Redownload = function() {
|
||||
|
||||
var MAX_PARALLEL_DOWNLOADS = 10;
|
||||
var REQUEST_TIMEOUT = 15000; // 15 seconds
|
||||
@@ -86,9 +86,10 @@ var WeightChecker = function() {
|
||||
offenders.totalRequests = listRequestsByType(results);
|
||||
metrics.totalRequests = offenders.totalRequests.total;
|
||||
|
||||
// Remove unwanted requests (redirections, about:blank)
|
||||
|
||||
// Remove unwanted responses (redownload failed, about:blank)
|
||||
results = results.filter(function(result) {
|
||||
return (result !== null && result.weightCheck && result.weightCheck.bodySize > 0);
|
||||
return (result !== null && result.weightCheck && result.url.indexOf('about:blank') !== 0);
|
||||
});
|
||||
|
||||
|
||||
@@ -100,6 +101,17 @@ var WeightChecker = function() {
|
||||
offenders.totalWeight = listRequestWeight(results);
|
||||
metrics.totalWeight = offenders.totalWeight.totalWeight;
|
||||
|
||||
// Empty files
|
||||
offenders.emptyRequests = listEmptyRequests(results);
|
||||
metrics.emptyRequests = offenders.emptyRequests.length;
|
||||
|
||||
|
||||
// Now emove unwanted responses (redirections)
|
||||
results = results.filter(function(result) {
|
||||
return (result.status < 300 || result.status >= 400);
|
||||
});
|
||||
|
||||
|
||||
// Image compression
|
||||
offenders.imageOptimization = listImageNotOptimized(results);
|
||||
metrics.imageOptimization = offenders.imageOptimization.totalGain;
|
||||
@@ -116,7 +128,7 @@ var WeightChecker = function() {
|
||||
offenders.smallRequests = listSmallRequests(results);
|
||||
metrics.smallRequests = offenders.smallRequests.total;
|
||||
|
||||
data.toolsResults.weightChecker = {
|
||||
data.toolsResults.redownload = {
|
||||
metrics: metrics,
|
||||
offenders: offenders
|
||||
};
|
||||
@@ -144,6 +156,20 @@ var WeightChecker = function() {
|
||||
return results;
|
||||
}
|
||||
|
||||
function listEmptyRequests(requests) {
|
||||
var results = [];
|
||||
|
||||
requests.forEach(function(req) {
|
||||
var weight = req.weightCheck.bodySize || req.contentLength;
|
||||
|
||||
if (weight === 0 && req.method === 'GET' && req.status === 200) {
|
||||
results.push(req.url);
|
||||
}
|
||||
});
|
||||
|
||||
return results;
|
||||
}
|
||||
|
||||
function listRequestWeight(requests) {
|
||||
var results = {
|
||||
totalWeight: 0,
|
||||
@@ -555,4 +581,4 @@ var WeightChecker = function() {
|
||||
};
|
||||
};
|
||||
|
||||
module.exports = new WeightChecker();
|
||||
module.exports = new Redownload();
|
||||
Reference in New Issue
Block a user