浏览代码

Ignore unused fonts (#234)

Gaël Métais 8 年之前
父节点
当前提交
f59c8da000
共有 2 个文件被更改,包括 18 次插入1 次删除
  1. 10 1
      lib/tools/redownload/fontAnalyzer.js
  2. 8 0
      lib/tools/redownload/redownload.js

+ 10 - 1
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);
         }

+ 8 - 0
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;