11console . log ( 'menu opened' )
2- const menuArea = document . getElementById ( 'options ' )
3- console . log ( document , menuArea )
2+ const toggleSwitch = document . getElementById ( 'toggle ' )
3+ const locationArea = document . getElementById ( 'location' )
44// this doesn't work: browser.tabs.getCurrent().then(...
55browser . tabs . query ( { "active" : true , "currentWindow" : true , "windowType" : "normal" } ) . then (
66 tabs => tabs [ 0 ]
77) . then (
88 tab => {
99 console . log ( 'tab' , tab )
1010 const relevantURL = tab . url . split ( '?' ) [ 0 ] . split ( '#' ) [ 0 ]
11- menuArea . innerHTML += `Allow the page at ${ relevantURL } to access SSB?`
12- const button = document . createElement ( 'button' )
13- button . innerText = 'Grant'
14- button . addEventListener ( 'click' , ( ) => {
15-
16- browser . runtime . sendMessage ( {
17- direction : "from-menu-script" ,
18- message : {
19- action : 'grant' ,
20- target : relevantURL
11+ locationArea . innerText = relevantURL
12+ browser . storage . local . get ( 'granted' ) . then ( result => {
13+ let granted = result . granted
14+ const enabled = ! ! ~ granted . indexOf ( relevantURL )
15+ console . log ( 'enabled =' , enabled )
16+ toggleSwitch . checked = enabled
17+ toggleSwitch . addEventListener ( 'change' , ( e ) => {
18+ console . log ( 'changing' , relevantURL , enabled , e . target . checked )
19+ if ( e . target . checked ) {
20+ granted . push ( relevantURL )
21+ } else {
22+ granted = granted . filter ( e => e !== relevantURL )
2123 }
22- } ) ;
24+ browser . storage . local . set ( { 'granted' : granted } ) . then ( ( ) => {
25+ return browser . runtime . sendMessage ( {
26+ direction : "from-menu-script" ,
27+ message : {
28+ action : e . target . checked ? 'grant' : 'revoke' ,
29+ target : relevantURL
30+ }
31+ } )
32+ } ) . then ( ( ) => { window . setTimeout ( window . close , 500 ) } )
33+ } )
2334 } )
24- menuArea . appendChild ( button )
2535 } ,
2636 error => {
2737 console . log ( 'error' , error )
28- } )
38+ }
39+ )
40+
41+
0 commit comments