@@ -205,6 +205,7 @@ function recursiveCloak(enable, global, tabId) {
205205 // Ensure whitelisted or blacklisted tabs stay as they are
206206 if ( enabletemp == 'true' && dpdomaincheck == '0' ) enabletemp = 'false' ;
207207 else if ( enabletemp == 'false' && dpdomaincheck == '1' ) enabletemp = 'true' ;
208+ magician ( enabletemp , tab . id ) ;
208209 var dpTabId = tab . windowId + "|" + tab . id ;
209210 var dpcloakindex = cloakedTabs . indexOf ( dpTabId ) ;
210211 var dpuncloakindex = uncloakedTabs . indexOf ( dpTabId ) ;
@@ -215,7 +216,6 @@ function recursiveCloak(enable, global, tabId) {
215216 if ( dpcloakindex == - 1 ) cloakedTabs . push ( dpTabId ) ;
216217 if ( dpuncloakindex != - 1 ) uncloakedTabs . splice ( dpuncloakindex , 1 ) ;
217218 }
218- magician ( enabletemp , tab . id ) ;
219219 } ) ;
220220 } ) ;
221221 } ) ;
@@ -245,25 +245,25 @@ function dpHandle(tab) {
245245 if ( checkChrome ( tab . url ) ) return ;
246246 if ( localStorage [ "global" ] == "true" && domainCheck ( extractDomainFromURL ( tab . url ) ) != 1 ) {
247247 if ( localStorage [ "enable" ] == "true" ) {
248- localStorage [ "enable" ] = "false" ;
249248 recursiveCloak ( 'false' , 'true' ) ;
249+ localStorage [ "enable" ] = "false" ;
250250 } else {
251- localStorage [ "enable" ] = "true" ;
252251 recursiveCloak ( 'true' , 'true' ) ;
252+ localStorage [ "enable" ] = "true" ;
253253 }
254254 } else {
255255 var dpTabId = tab . windowId + "|" + tab . id ;
256256 var dpcloakindex = cloakedTabs . indexOf ( dpTabId ) ;
257257 var dpuncloakindex = uncloakedTabs . indexOf ( dpTabId ) ;
258258 localStorage [ "enable" ] = "true" ;
259259 if ( dpcloakindex != - 1 ) {
260+ magician ( 'false' , tab . id ) ;
260261 if ( dpuncloakindex == - 1 ) uncloakedTabs . push ( dpTabId ) ;
261262 cloakedTabs . splice ( dpcloakindex , 1 ) ;
262- magician ( 'false' , tab . id ) ;
263263 } else {
264+ magician ( 'true' , tab . id ) ;
264265 cloakedTabs . push ( dpTabId ) ;
265266 if ( dpuncloakindex != - 1 ) uncloakedTabs . splice ( dpuncloakindex , 1 ) ;
266- magician ( 'true' , tab . id ) ;
267267 }
268268 }
269269}
@@ -277,7 +277,7 @@ function setDPIcon() {
277277 else chrome . pageAction . setIcon ( { path : "img/addressicon/" + dpicon + "-disabled.png" , tabId : tab . id } ) ;
278278 chrome . pageAction . setTitle ( { title : dptitle , tabId : tab . id } ) ;
279279 if ( localStorage [ "showIcon" ] == 'true' ) chrome . pageAction . show ( tab . id ) ;
280- else chrome . pageAction . hide ( tab . id ) ;
280+ else chrome . pageAction . hide ( tab . id ) ;
281281 } ) ;
282282 } ) ;
283283 } ) ;
@@ -295,28 +295,35 @@ chrome.tabs.onUpdated.addListener(function(tabid, changeinfo, tab) {
295295 chrome . pageAction . show ( tabid ) ;
296296 } else chrome . pageAction . hide ( tabid ) ;
297297 if ( checkChrome ( tab . url ) ) return ;
298+ var dpuncloakindex = uncloakedTabs . indexOf ( dpTabId ) ;
298299 if ( enable == "true" ) {
299- if ( dpcloakindex == - 1 ) cloakedTabs . push ( dpTabId ) ;
300300 magician ( 'true' , tabid ) ;
301301 if ( localStorage [ "global" ] == "false" && localStorage [ "enable" ] == "false" ) localStorage [ "enable" ] = "true" ;
302+ if ( dpcloakindex == - 1 ) cloakedTabs . push ( dpTabId ) ;
303+ if ( dpuncloakindex != - 1 ) uncloakedTabs . splice ( dpuncloakindex , 1 ) ;
302304 } else {
303305 if ( localStorage [ "enableStickiness" ] == "true" ) {
304- dpuncloakindex = uncloakedTabs . indexOf ( dpTabId ) ;
305306 if ( tab . openerTabId ) {
306307 if ( cloakedTabs . indexOf ( tab . windowId + "|" + tab . openerTabId ) != - 1 && dpuncloakindex == - 1 ) {
307- cloakedTabs . push ( dpTabId ) ;
308- magician ( 'true' , tabid ) ;
309- return ;
308+ if ( domainCheck ( extractDomainFromURL ( tab . url ) ) != '0' ) {
309+ magician ( 'true' , tabid ) ;
310+ cloakedTabs . push ( dpTabId ) ;
311+ return ;
312+ }
310313 }
311314 if ( dpuncloakindex == - 1 ) uncloakedTabs . push ( dpTabId ) ;
315+ if ( dpcloakindex != - 1 ) cloakedTabs . splice ( dpcloakindex , 1 ) ;
312316 } else {
313317 chrome . tabs . query ( { active : true , currentWindow : true } , function ( tabs ) {
314318 if ( tabs [ 0 ] . windowId == tab . windowId && cloakedTabs . indexOf ( tabs [ 0 ] . windowId + "|" + tabs [ 0 ] . id ) != - 1 && dpuncloakindex == - 1 ) {
315- cloakedTabs . push ( dpTabId ) ;
316- magician ( 'true' , tabid ) ;
317- return ;
319+ if ( domainCheck ( extractDomainFromURL ( tab . url ) ) != '0' ) {
320+ magician ( 'true' , tabid ) ;
321+ cloakedTabs . push ( dpTabId ) ;
322+ return ;
323+ }
318324 }
319325 if ( dpuncloakindex == - 1 ) uncloakedTabs . push ( dpTabId ) ;
326+ if ( dpcloakindex != - 1 ) cloakedTabs . splice ( dpcloakindex , 1 ) ;
320327 } ) ;
321328 }
322329 }
@@ -344,11 +351,11 @@ requestDispatchTable = {
344351 localStorage [ "savedsfwmode" ] = "" ;
345352 if ( localStorage [ "global" ] == "true" ) recursiveCloak ( 'true' , 'true' ) ;
346353 else {
354+ magician ( 'true' , sender . tab . id ) ;
347355 var dpTabId = sender . tab . windowId + "|" + sender . tab . id ;
348356 var dpuncloakindex = uncloakedTabs . indexOf ( dpTabId ) ;
349357 if ( dpuncloakindex != - 1 ) uncloakedTabs . splice ( dpuncloakindex , 1 ) ;
350358 if ( cloakedTabs . indexOf ( dpTabId ) == - 1 ) cloakedTabs . push ( dpTabId ) ;
351- magician ( 'true' , sender . tab . id ) ;
352359 }
353360 localStorage [ "enable" ] = "true" ;
354361 } else {
@@ -361,11 +368,11 @@ requestDispatchTable = {
361368 localStorage [ "sfwmode" ] = "Paranoid" ;
362369 if ( localStorage [ "global" ] == "true" ) recursiveCloak ( 'true' , 'true' ) ;
363370 else {
371+ magician ( 'true' , sender . tab . id ) ;
364372 var dpTabId = sender . tab . windowId + "|" + sender . tab . id ;
365373 var dpuncloakindex = uncloakedTabs . indexOf ( dpTabId ) ;
366374 if ( dpuncloakindex != - 1 ) uncloakedTabs . splice ( dpuncloakindex , 1 ) ;
367375 if ( cloakedTabs . indexOf ( dpTabId ) == - 1 ) cloakedTabs . push ( dpTabId ) ;
368- magician ( 'true' , sender . tab . id ) ;
369376 }
370377 localStorage [ "enable" ] = "true" ;
371378 } else {
0 commit comments