mirror of
https://github.com/anticensority/runet-censorship-bypass.git
synced 2024-11-24 02:13:43 +03:00
Add error handlers, fix error context, add icons
This commit is contained in:
parent
00221bb96e
commit
257495168c
|
@ -0,0 +1,56 @@
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
{
|
||||||
|
const extName = chrome.runtime.getManifest().name;
|
||||||
|
const notify = (
|
||||||
|
id,
|
||||||
|
title,
|
||||||
|
message,
|
||||||
|
icon = 'default-128.png',
|
||||||
|
context = extName
|
||||||
|
) => chrome.notifications.create(
|
||||||
|
id,
|
||||||
|
{
|
||||||
|
title: title,
|
||||||
|
message: message,
|
||||||
|
contextMessage: context,
|
||||||
|
requireInteraction: true,
|
||||||
|
type: 'basic',
|
||||||
|
iconUrl: './icons/' + icon,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
window.addEventListener('error', (err) => {
|
||||||
|
|
||||||
|
console.warn('Global error');
|
||||||
|
notify('Unhandled error', 'Unhandled error', JSON.stringify(err),
|
||||||
|
'ext-error-128.png');
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
window.addEventListener('unhandledrejection', (event) => {
|
||||||
|
|
||||||
|
console.warn('Unhandled rejection. Throwing error.');
|
||||||
|
event.preventDefault();
|
||||||
|
throw event.reason;
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
chrome.proxy.onProxyError.addListener((details) => {
|
||||||
|
|
||||||
|
console.warn('PAC ERROR:', details);
|
||||||
|
notify('pac-error', ' PAC !', JSON.stringify(details),
|
||||||
|
'pac-error-128.png' );
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
chrome.proxy.settings.onChange.addListener((details) => {
|
||||||
|
|
||||||
|
console.log('Proxy settings changed.', details);
|
||||||
|
// const ifOther = details.levelOfControl.startsWith('controlled_by_other');
|
||||||
|
notify('Proxy change', 'Proxy changed', JSON.stringify(details),
|
||||||
|
'no-control-128.png');
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
|
@ -20,6 +20,28 @@
|
||||||
|
|
||||||
version: chrome.runtime.getManifest().version,
|
version: chrome.runtime.getManifest().version,
|
||||||
|
|
||||||
|
fixErrorsContext() {
|
||||||
|
/* `setTimeout` changes context of execution from other window
|
||||||
|
(e.g. popup) to background window, so we may catch errors
|
||||||
|
in bg error handlers.
|
||||||
|
More: https://bugs.chromium.org/p/chromium/issues/detail?id=357568
|
||||||
|
*/
|
||||||
|
for(const prop of Object.keys(this)) {
|
||||||
|
if ( typeof(this[prop]) === 'function' ) {
|
||||||
|
const method = this[prop];
|
||||||
|
this[prop] = function(...args) {
|
||||||
|
|
||||||
|
setTimeout(method.bind(this, ...args), 0);
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
throw() {
|
||||||
|
throw new Error('Artificial error');
|
||||||
|
},
|
||||||
|
|
||||||
pacProviders: {
|
pacProviders: {
|
||||||
Антизапрет: {
|
Антизапрет: {
|
||||||
pacUrl: 'https://antizapret.prostovpn.org/proxy.pac',
|
pacUrl: 'https://antizapret.prostovpn.org/proxy.pac',
|
||||||
|
@ -286,6 +308,8 @@
|
||||||
In such case extension _should_ try to work on default parameters.
|
In such case extension _should_ try to work on default parameters.
|
||||||
*/
|
*/
|
||||||
const antiCensorRu = window.antiCensorRu;
|
const antiCensorRu = window.antiCensorRu;
|
||||||
|
antiCensorRu.fixErrorsContext();
|
||||||
|
|
||||||
chrome.alarms.onAlarm.addListener(
|
chrome.alarms.onAlarm.addListener(
|
||||||
(alarm) => {
|
(alarm) => {
|
||||||
|
|
||||||
|
@ -508,7 +532,7 @@
|
||||||
err = e || err || {clarification: {message: ''}};
|
err = e || err || {clarification: {message: ''}};
|
||||||
err.clarification = err.clarification || {message: ''};
|
err.clarification = err.clarification || {message: ''};
|
||||||
err.clarification.message = (
|
err.clarification.message = (
|
||||||
error.clarification.message
|
err.clarification.message
|
||||||
+ ' Сервер (текст): '+ res
|
+ ' Сервер (текст): '+ res
|
||||||
).trim();
|
).trim();
|
||||||
err.data = err.data || res;
|
err.data = err.data || res;
|
||||||
|
@ -604,24 +628,3 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
window.addEventListener('error', (err) => {
|
|
||||||
|
|
||||||
console.error('Global error');
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
window.addEventListener('unhandledrejection', (event) => {
|
|
||||||
|
|
||||||
console.warn('Unhandled rejection. Throwing error.');
|
|
||||||
event.preventDefault();
|
|
||||||
throw event.reason;
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
chrome.proxy.settings.onChange.addListener((details) => {
|
|
||||||
|
|
||||||
console.log('Proxy settings changed.', details);
|
|
||||||
// const ifOther = details.levelOfControl.startsWith('controlled_by_other');
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
Binary file not shown.
After Width: | Height: | Size: 8.6 KiB |
Binary file not shown.
After Width: | Height: | Size: 7.9 KiB |
Binary file not shown.
After Width: | Height: | Size: 9.4 KiB |
|
@ -5,7 +5,7 @@
|
||||||
"description": "Аргументы против цензуры: https://git.io/vEkI9",
|
"description": "Аргументы против цензуры: https://git.io/vEkI9",
|
||||||
"version": "0.0.0.15",
|
"version": "0.0.0.15",
|
||||||
"icons": {
|
"icons": {
|
||||||
"128": "/icons/ribbon128.png"
|
"128": "/icons/default-128.png"
|
||||||
},
|
},
|
||||||
"author": "ilyaigpetrov@gmail.com",
|
"author": "ilyaigpetrov@gmail.com",
|
||||||
"homepage_url": "https://github.com/anticensorship-russia/chromium-extension",
|
"homepage_url": "https://github.com/anticensorship-russia/chromium-extension",
|
||||||
|
@ -17,10 +17,11 @@
|
||||||
"storage",
|
"storage",
|
||||||
"<all_urls>",
|
"<all_urls>",
|
||||||
"tabs",
|
"tabs",
|
||||||
"contextMenus"
|
"contextMenus",
|
||||||
|
"notifications"
|
||||||
],
|
],
|
||||||
"background": {
|
"background": {
|
||||||
"scripts": ["1-sync-pac-script-with-pac-provider.js", "2-block-informer.js", "3-context-menus.js"]
|
"scripts": ["0-error-handlers.js", "1-sync-pac-script-with-pac-provider.js", "2-block-informer.js", "3-context-menus.js"]
|
||||||
},
|
},
|
||||||
"browser_action": {
|
"browser_action": {
|
||||||
"default_title": "Этот сайт благословлён",
|
"default_title": "Этот сайт благословлён",
|
||||||
|
|
Loading…
Reference in New Issue
Block a user