@@ -4,10 +4,11 @@ const processed = new Set();
44const stackCleaner = new DelayableAction ( 60 , 120 , ( ) => {
55 processed . clear ( ) ;
66} ) ;
7- const saver = new DelayableAction ( 10 , 60 , ( ) => {
8- settings . save ( ) ;
7+ const ignoredSaver = new DelayableAction ( 10 , 60 , ( ) => {
8+ if ( settings . ignorePeriod ) browser . storage . local . set ( { ignored : settings . ignored } ) ;
99} ) ;
10- const filter = { urls : [ "https://*/*" ] , types : [ 'main_frame' ] } ;
10+ const filter = { urls : [ "http://*/*" ] , types : [ 'main_frame' ] } ;
11+ const sfilter = { urls : [ "https://*/*" ] , types : [ 'main_frame' ] } ;
1112const error_rx = / ^ S E C _ E R R O R | (?: _ | \b ) (?: S S L | T L S | C E R T ) (?: _ | \b ) | \b [ C c ] e r t i f i c a t e / ;
1213const other_errors = new Set ( [
1314 'MOZILLA_PKIX_ERROR_ADDITIONAL_POLICY_CONSTRAINT_FAILED' ,
@@ -22,7 +23,7 @@ const other_errors = new Set([
2223function ignore ( host ) {
2324 if ( ! settings . ignored [ host ] ) {
2425 settings . ignored [ host ] = Date . now ( ) ;
25- if ( settings . ignorePeriod ) saver . run ( ) ;
26+ if ( settings . ignorePeriod ) ignoredSaver . run ( ) ;
2627 }
2728}
2829
@@ -51,6 +52,7 @@ browser.webRequest.onBeforeRequest.addListener(d => {
5152 }
5253 if (
5354 ! settings . ignored [ url . hostname ] &&
55+ ! settings . whitelist [ url . hostname ] &&
5456 url . hostname !== 'localhost' &&
5557 url . hostname !== 'loopback' &&
5658 ! / ^ 1 2 7 \. \d + \. \d + \. \d + $ / . test ( url . hostname )
@@ -60,7 +62,7 @@ browser.webRequest.onBeforeRequest.addListener(d => {
6062 url . protocol = 'https:' ;
6163 return { redirectUrl : url . toString ( ) }
6264 }
63- } , { urls : [ "http://*/*" ] , types : [ 'main_frame' ] } , [ 'blocking' ] ) ;
65+ } , filter , [ 'blocking' ] ) ;
6466
6567browser . webRequest . onBeforeRedirect . addListener ( d => {
6668 const url = new URL ( d . url ) ;
@@ -71,12 +73,18 @@ browser.webRequest.onBeforeRedirect.addListener(d => {
7173 processed . add ( newTarget . hostname ) ;
7274 stackCleaner . run ( ) ;
7375 }
74- } , filter ) ;
76+ } , sfilter ) ;
7577
7678browser . webRequest . onCompleted . addListener ( d => {
7779 const url = new URL ( d . url ) ;
78- if ( d . statusCode >= 400 && processed . has ( url . hostname )
79- && ! settings . ignored [ url . hostname ] ) downgrade ( url , d ) ;
80+ if ( ! processed . has ( url . hostname ) ) return ;
81+ if ( d . statusCode >= 400 && ! settings . ignored [ url . hostname ] ) downgrade ( url , d ) ;
82+ else browser . pageAction . show ( d . tabId ) ;
83+ } , sfilter ) ;
84+
85+ browser . webRequest . onCompleted . addListener ( d => {
86+ const url = new URL ( d . url ) ;
87+ if ( settings . whitelist [ url . hostname ] ) browser . pageAction . show ( d . tabId ) ;
8088} , filter ) ;
8189
8290browser . webRequest . onErrorOccurred . addListener ( d => {
@@ -85,4 +93,4 @@ browser.webRequest.onErrorOccurred.addListener(d => {
8593 ( error_rx . test ( d . error ) || other_errors . has ( d . error ) )
8694 ) downgrade ( url , d ) ;
8795 else console . info ( `Error info: ${ d . error } ` ) ;
88- } , filter ) ;
96+ } , sfilter ) ;
0 commit comments