Преглед изворни кода

Register webrequest event handlers on event page wakeup

simov пре 7 година
родитељ
комит
2a82aae9be
3 измењених фајлова са 32 додато и 26 уклоњено
  1. 20 22
      background/index.js
  2. 3 2
      background/storage.js
  3. 9 2
      background/webrequest.js

+ 20 - 22
background/index.js

@@ -1,25 +1,23 @@
 
 ;(() => {
-  md.storage(md, (storage) => {
-    var inject = md.inject({storage})
-    var detect = md.detect({storage, inject})
-    var webrequest = md.webrequest({storage, detect})
-    var mathjax = md.mathjax()
-
-    var compilers = Object.keys(md.compilers)
-      .reduce((all, compiler) => (
-        all[compiler] = md.compilers[compiler]({storage}),
-        all
-      ), {})
-
-    var messages = md.messages({storage, compilers, mathjax, webrequest})
-
-
-    chrome.tabs.onUpdated.addListener(detect.tab)
-
-    chrome.runtime.onMessage.addListener(messages)
-
-    webrequest()
-  })
-
+  var storage = md.storage(md)
+  var inject = md.inject({storage})
+  var detect = md.detect({storage, inject})
+  var webrequest = md.webrequest({storage, detect})
+  var mathjax = md.mathjax()
+
+  var compilers = Object.keys(md.compilers)
+    .reduce((all, compiler) => (
+      all[compiler] = md.compilers[compiler]({storage}),
+      all
+    ), {})
+
+  var messages = md.messages({storage, compilers, mathjax, webrequest})
+
+  chrome.tabs.onUpdated.addListener(detect.tab)
+  chrome.runtime.onMessage.addListener(messages)
+
+  if (chrome.webRequest) {
+    webrequest.init()
+  }
 })()

+ 3 - 2
background/storage.js

@@ -2,7 +2,7 @@
 // chrome.storage.sync.clear()
 // chrome.permissions.getAll((p) => chrome.permissions.remove({origins: p.origins}))
 
-md.storage = ({compilers}, done) => {
+md.storage = ({compilers}) => {
   var match = '\\.(?:markdown|mdown|mkdn|md|mkd|mdwn|mdtxt|mdtext|text)(?:#.*|\\?.*)?$'
 
   var defaults = {
@@ -117,6 +117,7 @@ md.storage = ({compilers}, done) => {
 
     chrome.storage.sync.set(options)
     Object.assign(state, JSON.parse(JSON.stringify(options)))
-    done({defaults, state, set})
   })
+
+  return {defaults, state, set}
 }

+ 9 - 2
background/webrequest.js

@@ -18,7 +18,7 @@ md.webrequest = ({storage: {state}, detect}) => {
     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)) {
+    if (/Firefox/.test(navigator.userAgent) && header && detect.header(header.value)) {
       header.value = 'text/plain'
     }
 
@@ -92,7 +92,7 @@ md.webrequest = ({storage: {state}, detect}) => {
     }
   }
 
-  return () => {
+  var webrequest = () => {
 
     var {headers, completed} = events()
 
@@ -116,4 +116,11 @@ md.webrequest = ({storage: {state}, detect}) => {
       }
     })
   }
+
+  webrequest.init = () => {
+    chrome.webRequest.onHeadersReceived.addListener(onHeadersReceived, filter, options)
+    chrome.webRequest.onCompleted.addListener(onCompleted, filter)
+  }
+
+  return webrequest
 }