import { commonFetch } from '@/http/fetch' import Report from "@/log-center/log" // 每4分钟调用一次,保持background一直有效 export function PingPong() { try { chrome.tabs.query({}, (tabs = []) => { if (tabs.length) { let tab = tabs.filter((item) => { return item.active == true }) if (tab.length) { chrome.tabs.sendMessage(tab[0].id, { actionType: 'BACK_PING' }); } } }) } catch (error) { Report.reportLog({ objectType: Report.objectType.background_function_catch, funcName: 'PingPong', errMsg: error.message }) } } export function httpNetWork(funcName, data, sender) { try { return commonFetch(data) .then((response) => { chrome.tabs.sendMessage(sender.tab.id, { actionType: 'BACK_HTTP_RESPONSE', data: response, funcName }); }) .catch(() => { chrome.tabs.sendMessage(sender.tab.id, { actionType: 'BACK_HTTP_RESPONSE', data: null, funcName }); }) } catch (error) { Report.reportLog({ objectType: Report.objectType.background_function_catch, funcName: 'httpNetWork', errMsg: error.message }) } } // 向content 发送消息 export const setContentMessage = (obj) => { try { chrome.tabs.query({}, (tabs = []) => { if (tabs.length) { tabs = tabs.filter((item) => { return item.active && item.selected && item.highlighted }) || [] tabs.forEach((item) => { chrome.tabs.sendMessage(item.id, obj); }) } }) } catch (error) { Report.reportLog({ objectType: Report.objectType.background_function_catch, funcName: 'setContentMessage', errMsg: error.message }) } } export const httpContentToBack = (req, sender) => { try { commonFetch(req.data) .then((response) => { chrome.tabs.sendMessage(sender.tab.id, { actionType: 'HTTP_BACK_TO_CONTENT', data: response, callback_id: req.callback_id }); }) .catch(() => { chrome.tabs.sendMessage(sender.tab.id, { actionType: 'HTTP_BACK_TO_CONTENT', data: null, callback_id: req.callback_id }); }) } catch (error) { Report.reportLog({ objectType: Report.objectType.background_function_catch, funcName: 'httpContentToBack', errMsg: error.message }) } }