MCPcopy
hub / github.com/kickscondor/fraidycat / backgroundSetup

Method backgroundSetup

src/js/webext/storage.js:220–331  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

218 // Called once to initialize the background script
219 //
220 backgroundSetup() {
221 browser.storage.onChanged.addListener((dict, area) => {
222 if (area !== "sync" || !('id' in dict))
223 return
224
225 // Only handle messages from other IDs.
226 let sender = this.decode(dict.id.newValue)
227 if (sender[0] === this.id)
228 return
229
230 let changes = {}
231 for (let path in dict)
232 changes[path] = dict[path].newValue
233 this.onSync(changes)
234 })
235
236 window.addEventListener('message', e => {
237 let {url, tasks, error} = this.decode(e.data)
238 this.scraper.updateWatch(url, tasks, error)
239 }, false)
240
241 let extUrl = browser.extension.getURL("/")
242 let rewriteUserAgentHeader = e => {
243 // console.log(e)
244 let initiator = e.initiator || e.originUrl
245 if (e.tabId === -1 && initiator && extUrl && (initiator + "/").startsWith(extUrl)) {
246 let hdrs = [], ua = null
247 for (var header of e.requestHeaders) {
248 let name = header.name.toLowerCase()
249 if (name === "x-fc-user-agent") {
250 ua = header
251 } else if (name !== "user-agent") {
252 hdrs.push(header)
253 }
254 }
255
256 if (ua !== null) {
257 hdrs.push({name: 'User-Agent', value: ua.value})
258 return {requestHeaders: hdrs}
259 }
260 }
261 return {requestHeaders: e.requestHeaders}
262 }
263
264 //
265 // Open Fraidycat if the extension icon or the "Follow" icon is clicked.
266 //
267 browser.browserAction.onClicked.addListener(tab => {
268 browser.tabs.create({url: homepage})
269 })
270
271 // browser.pageAction.onClicked.addListener(tab => {
272 // browser.tabs.create({url: homepage + "#!/add?url=" +
273 // encodeURIComponent(tab.url)})
274 // })
275
276 browser.webRequest.onBeforeSendHeaders.addListener(rewriteUserAgentHeader,
277 {urls: ["<all_urls>"], types: ["xmlhttprequest"]}, ["blocking", "requestHeaders"])

Callers 1

startFunction · 0.45

Calls 1

decodeMethod · 0.95

Tested by

no test coverage detected