浏览代码

Fix content type checking after switching to phantomas v2

Gaël Métais 4 年之前
父节点
当前提交
dd0c17a9d4
共有 1 个文件被更改,包括 15 次插入18 次删除
  1. 15 18
      lib/tools/redownload/contentTypeChecker.js

+ 15 - 18
lib/tools/redownload/contentTypeChecker.js

@@ -17,6 +17,7 @@ var ContentTypeChecker = function() {
         var deferred = Q.defer();
 
         debug('Entering contentTypeChecker');
+        debug(entry);
         
         // Setting isSomething values:
         switch(entry.type) {
@@ -57,24 +58,10 @@ var ContentTypeChecker = function() {
 
             try {
                 foundType = findContentType(entry.weightCheck.bodyBuffer);
-            
-                // Note: as of Phantomas v2, entry.contentType is always undefined
-                // It could change, so let's keep the following code in place:
-
-                if (!entry.contentType || entry.contentType === '') {
-                    if (foundType === null) {
-                        debug('ContentType is empty for file %s', entry.url);
-                    } else {
-                        debug('ContentType is empty for file %s. It should be %s.', entry.url, foundType.mimes[0]);
-                        entry.oldContentType = null;
-                        rewriteContentType(entry, foundType);
-                    }
-                } else {
-                    if (foundType !== null && foundType.mimes.indexOf(entry.contentType) === -1) {
-                        debug('ContentType %s is wrong for %s. It should be %s.', entry.contentType, entry.url, foundType.mimes[0]);
-                        entry.oldContentType = entry.contentType;
-                        rewriteContentType(entry, foundType);
-                    }
+
+                if (foundType !== null && foundType.type !== entry.type) {
+                    debug('Content type %s is wrong for %s. It should be %s.', entry.type, entry.ulr, foundType.type);
+                    rewriteContentType(entry, foundType);
                 }
 
             } catch(err) {
@@ -155,6 +142,7 @@ var ContentTypeChecker = function() {
 
     var contentTypes = {
         jpeg: {
+            type: 'image',
             mimes: ['image/jpeg'],
             updateFn: function(entry) {
                 entry.type = 'image';
@@ -162,6 +150,7 @@ var ContentTypeChecker = function() {
             }
         },
         png: {
+            type: 'image',
             mimes: ['image/png'],
             updateFn: function(entry) {
                 entry.type = 'image';
@@ -169,6 +158,7 @@ var ContentTypeChecker = function() {
             }
         },
         svg: {
+            type: 'image',
             mimes: ['image/svg+xml'],
             updateFn: function(entry) {
                 entry.type = 'image';
@@ -177,6 +167,7 @@ var ContentTypeChecker = function() {
             }
         },
         gif: {
+            type: 'image',
             mimes: ['image/gif'],
             updateFn: function(entry) {
                 entry.type = 'image';
@@ -184,6 +175,7 @@ var ContentTypeChecker = function() {
             }
         },
         webp: {
+            type: 'image',
             mimes: ['image/webp'],
             updateFn: function(entry) {
                 entry.type = 'image';
@@ -191,6 +183,7 @@ var ContentTypeChecker = function() {
             }
         },
         woff: {
+            type: 'webfont',
             mimes: ['application/x-font-woff', 'application/font-woff', 'font/woff'],
             updateFn: function(entry) {
                 entry.type = 'webfont';
@@ -198,6 +191,7 @@ var ContentTypeChecker = function() {
             }
         },
         woff2: {
+            type: 'webfont',
             mimes: ['font/woff2', 'application/x-font-woff2', 'application/font-woff2'],
             updateFn: function(entry) {
                 entry.type = 'webfont';
@@ -205,6 +199,7 @@ var ContentTypeChecker = function() {
             }
         },
         otf: {
+            type: 'webfont',
             mimes: ['application/x-font-otf', 'font/otf', 'font/opentype', 'application/x-font-opentype'],
             updateFn: function(entry) {
                 entry.type = 'webfont';
@@ -212,6 +207,7 @@ var ContentTypeChecker = function() {
             }
         },
         ttf: {
+            type: 'webfont',
             mimes: ['application/x-font-ttf', 'font/ttf', 'application/x-font-truetype'],
             updateFn: function(entry) {
                 entry.type = 'webfont';
@@ -219,6 +215,7 @@ var ContentTypeChecker = function() {
             }
         },
         eot: {
+            type: 'webfont',
             mimes: ['application/vnd.ms-fontobject', 'font/eot'],
             updateFn: function(entry) {
                 entry.type = 'webfont';