diff --git a/lib/tools/redownload/fontAnalyzer.js b/lib/tools/redownload/fontAnalyzer.js index d83d0a8..0fab2f5 100644 --- a/lib/tools/redownload/fontAnalyzer.js +++ b/lib/tools/redownload/fontAnalyzer.js @@ -57,8 +57,17 @@ var FontAnalyzer = function() { var endTime = Date.now(); debug('Font analysis took %dms', endTime - startTime); - deferred.resolve(result); + // Mark fonts that are not used on the page (#224) + var fontIsUsed = false; + for (var range in result.unicodeRanges) { + if (result.unicodeRanges[range].numGlyphsInCommonWithPageContent > 0) { + fontIsUsed = true; + break; + } + } + result.isUsed = fontIsUsed; + deferred.resolve(result); } catch(error) { deferred.reject(error); } diff --git a/lib/tools/redownload/redownload.js b/lib/tools/redownload/redownload.js index 0e34fff..824d6ed 100644 --- a/lib/tools/redownload/redownload.js +++ b/lib/tools/redownload/redownload.js @@ -103,6 +103,14 @@ var Redownload = function() { var metrics = {}; var offenders = {}; + // Remove unused fonts that a normal browser would not download (fix #224) + results = results.filter(function(result) { + if (result && result.fontMetrics) { + return result.fontMetrics.isUsed !== false; + } + return true; + }); + // Count requests offenders.totalRequests = listRequestsByType(results); metrics.totalRequests = offenders.totalRequests.total;