webrequest.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. md.webrequest = ({storage: {state}}) => {
  2. var permissions = ['webRequest']
  3. var filter = {
  4. urls: ['<all_urls>'],
  5. types: ['main_frame', 'sub_frame']
  6. }
  7. var onCompleted = ({ip, tabId}) => {
  8. if (ip && ip !== '127.0.0.1' && ip !== '::1') {
  9. setTimeout(() => {
  10. chrome.tabs.sendMessage(tabId, {message: 'autoreload'})
  11. }, 500)
  12. }
  13. }
  14. var webrequest = () => {
  15. if (state.content.autoreload && !chrome.webRequest) {
  16. // request permissions
  17. chrome.permissions.request({permissions}, () => {
  18. // add listener
  19. chrome.webRequest.onCompleted.addListener(onCompleted, filter)
  20. })
  21. }
  22. else if (!state.content.autoreload && chrome.webRequest) {
  23. // remove listener
  24. chrome.webRequest.onCompleted.removeListener(onCompleted)
  25. // remove permissions
  26. chrome.permissions.remove({permissions}, () => {
  27. chrome.webRequest = null
  28. })
  29. }
  30. }
  31. // init
  32. if (chrome.webRequest) {
  33. chrome.webRequest.onCompleted.addListener(onCompleted, filter)
  34. }
  35. return webrequest
  36. }