浏览代码

Refactor webrequest headers handler

simov 7 年之前
父节点
当前提交
924225cc11
共有 1 个文件被更改,包括 9 次插入8 次删除
  1. 9 8
      background/webrequest.js

+ 9 - 8
background/webrequest.js

@@ -15,10 +15,16 @@ md.webrequest = ({storage: {state}, detect}) => {
       return {responseHeaders}
     }
 
-    var header = responseHeaders.find(({name}) => /^content-type/i.test(name)) || {}
+    var header = responseHeaders.find(({name}) => /^content-type/i.test(name))
+
+    // ff: markdown `content-type` is not allowed
+    if (header && detect.header(header.value) && /Firefox/.test(navigator.userAgent)) {
+      header.value = 'text/plain'
+    }
+
     var origin = detect.match(url)
 
-    if (!detect.header(header.value) && !origin) {
+    if (!origin) {
       return {responseHeaders}
     }
 
@@ -27,12 +33,7 @@ md.webrequest = ({storage: {state}, detect}) => {
         .filter(({name}) => !/content-security-policy/i.test(name))
     }
 
-    // ff: markdown `content-type` is not allowed
-    if (/Firefox/.test(navigator.userAgent) && detect.header(header.value)) {
-      header.value = 'text/plain'
-    }
-
-    if (origin.encoding && header.name) {
+    if (origin.encoding && header && /charset/.test(header.value)) {
       var [media] = header.value.split(';')
       header.value = `${media}; charset=${origin.encoding}`
     }