2016-06-22 21:54:37 +12:00
|
|
|
/* global chrome, safari */
|
|
|
|
|
2016-06-24 01:26:01 +12:00
|
|
|
import fetch from './fetch'
|
2016-06-22 21:54:37 +12:00
|
|
|
|
|
|
|
if (typeof safari !== 'undefined') {
|
|
|
|
safari.application.addEventListener('message', function (ev) {
|
|
|
|
let url = ev.message
|
2016-08-24 02:32:55 +12:00
|
|
|
fetch(url, 'arraybuffer').then((buffer) => {
|
2016-08-23 19:19:01 +12:00
|
|
|
console.log('Fetched ' + url)
|
2016-06-22 21:54:37 +12:00
|
|
|
ev.target.page.dispatchMessage('remote', {
|
|
|
|
input: url,
|
2016-08-23 19:19:01 +12:00
|
|
|
output: buffer
|
2016-06-22 21:54:37 +12:00
|
|
|
})
|
2016-08-24 02:32:55 +12:00
|
|
|
})
|
2016-06-22 21:54:37 +12:00
|
|
|
}, false)
|
|
|
|
} else {
|
|
|
|
let onMessage = chrome.extension.onMessage ? chrome.extension.onMessage : chrome.runtime.onMessage
|
|
|
|
|
|
|
|
onMessage.addListener(function (request, sender, sendResponse) {
|
2016-08-23 02:28:30 +12:00
|
|
|
if (typeof request === 'string') {
|
2016-08-23 19:19:01 +12:00
|
|
|
fetch(request, 'blob').then((blob) => {
|
|
|
|
sendResponse(URL.createObjectURL(blob))
|
|
|
|
})
|
2016-08-23 02:28:30 +12:00
|
|
|
// required for async
|
|
|
|
return true
|
|
|
|
} else if (request.showPageAction) {
|
|
|
|
chrome.pageAction.show(sender.tab.id)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
chrome.pageAction.onClicked.addListener(function (tab) {
|
|
|
|
chrome.tabs.sendMessage(tab.id, 'pageAction')
|
2016-06-22 21:54:37 +12:00
|
|
|
})
|
|
|
|
}
|