| 
									
										
										
										
											2020-08-20 09:57:40 +02:00
										 |  |  | let history = {}; | 
					
						
							|  |  |  | chrome.webRequest.onResponseStarted.addListener(i => { | 
					
						
							|  |  |  | 	if ([403, 406, 410, 429, 451, 462].includes(i.statusCode)) { | 
					
						
							|  |  |  | 		let iFQDN = (new URL(i.url)).hostname; | 
					
						
							| 
									
										
										
										
											2020-12-12 02:35:52 +01:00
										 |  |  | 		if (['sercxi.eu.org', 'ansero.eu.org', 'sercxi.nnpaefp7pkadbxxkhz2agtbv2a4g5sgo2fbmv3i7czaua354334uqqad.onion', 'ansero.nnpaefp7pkadbxxkhz2agtbv2a4g5sgo2fbmv3i7czaua354334uqqad.onion'].includes(iFQDN)) { | 
					
						
							| 
									
										
										
										
											2020-08-20 09:57:40 +02:00
										 |  |  | 			return; | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		let iServer = '?'; | 
					
						
							|  |  |  | 		i.responseHeaders.forEach(x => { | 
					
						
							| 
									
										
										
										
											2020-09-13 01:45:35 +02:00
										 |  |  | 			if (x.name.toLowerCase() == 'server') { | 
					
						
							| 
									
										
										
										
											2020-08-20 09:57:40 +02:00
										 |  |  | 				iServer = x.value; | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		}); | 
					
						
							|  |  |  | 		history[iFQDN] = [i.url, iServer, i.statusCode, (new Date()).toUTCString()]; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	return; | 
					
						
							|  |  |  | }, { | 
					
						
							|  |  |  | 	urls: ['http://*/*', 'https://*/*'], | 
					
						
							|  |  |  | 	types: ['main_frame'] | 
					
						
							|  |  |  | }, ['responseHeaders']); | 
					
						
							|  |  |  | chrome.runtime.onMessage.addListener((request, sender, sendResponse) => { | 
					
						
							|  |  |  | 	if (request && sender) { | 
					
						
							|  |  |  | 		if (request == 'get') { | 
					
						
							|  |  |  | 			sendResponse(history); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		if (request == 'clear') { | 
					
						
							|  |  |  | 			history = {}; | 
					
						
							|  |  |  | 			sendResponse(true); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | chrome.browserAction.onClicked.addListener(() => { | 
					
						
							|  |  |  | 	chrome.runtime.openOptionsPage(); | 
					
						
							|  |  |  | }); |