@@ -3,9 +3,9 @@ const icons = ["fingerprint", "briefcase", "dollar", "cart", "circle", "gift", "
3
3
4
4
browser . webRequest . onBeforeRequest . addListener (
5
5
async function ( request ) {
6
- let puppets = await browser . storage . local . get ( "puppets" )
6
+ let puppets = await browser . storage . local . get ( "puppets" ) ;
7
7
if ( puppets && puppets . puppets ) {
8
- puppets = JSON . parse ( puppets . puppets ) . split ( '\n' )
8
+ puppets = JSON . parse ( puppets . puppets ) . split ( '\n' ) ;
9
9
}
10
10
let url = request . url ;
11
11
if ( url . includes ( "nation" ) || url . includes ( "container" ) ) {
@@ -17,58 +17,58 @@ browser.webRequest.onBeforeRequest.addListener(
17
17
for ( const segment of segments ) {
18
18
const [ key , value ] = segment . split ( '=' ) ;
19
19
if ( key && value ) {
20
- parameters [ key ] = value ;
20
+ parameters [ key ] = value ;
21
21
}
22
22
}
23
- return parameters . container || parameters . nation
24
- }
23
+ return parameters . container || parameters . nation ;
24
+ } ;
25
25
const index = puppets . findIndex ( ( puppet ) => puppet . toLowerCase ( ) . replaceAll ( " " , "_" ) === parameter ( ) ) ;
26
26
if ( index !== - 1 ) {
27
- const cookieStoreId = await createContainer ( puppets [ index ] ) ;
28
- if ( request . cookieStoreId === cookieStoreId ) return ;
29
- await createNewTabInContainer ( url , cookieStoreId , request . tabId ) ;
30
- return { } ;
27
+ const cookieStoreId = await createContainer ( puppets [ index ] ) ;
28
+ if ( request . cookieStoreId === cookieStoreId ) return ;
29
+ await createNewTabInContainer ( url , cookieStoreId , request . tabId ) ;
30
+ return { cancel : true } ;
31
31
}
32
32
}
33
- return { } ;
33
+ return { } ;
34
34
} ,
35
35
{ urls : [ "*://*.nationstates.net/*" ] , types : [ 'main_frame' ] } ,
36
36
[ "blocking" ]
37
- ) ;
37
+ ) ;
38
38
39
39
async function createContainer ( name ) {
40
40
try {
41
- const find = await browser . contextualIdentities . query ( { name } ) ;
42
- if ( find . length === 0 ) {
43
- const randomIcon = icons [ Math . floor ( Math . random ( ) * icons . length ) ]
44
- const randomColor = colors [ Math . floor ( Math . random ( ) * colors . length ) ] ;
45
- const container = await browser . contextualIdentities . create ( {
46
- name,
47
- icon : randomIcon ,
48
- color : randomColor ,
49
- } )
50
- return container . cookieStoreId ;
51
- } else {
52
- return find [ 0 ] . cookieStoreId ;
53
- }
41
+ const find = await browser . contextualIdentities . query ( { name } ) ;
42
+ if ( find . length === 0 ) {
43
+ const randomIcon = icons [ Math . floor ( Math . random ( ) * icons . length ) ] ;
44
+ const randomColor = colors [ Math . floor ( Math . random ( ) * colors . length ) ] ;
45
+ const container = await browser . contextualIdentities . create ( {
46
+ name,
47
+ icon : randomIcon ,
48
+ color : randomColor ,
49
+ } ) ;
50
+ return container . cookieStoreId ;
51
+ } else {
52
+ return find [ 0 ] . cookieStoreId ;
53
+ }
54
54
} catch ( error ) {
55
- console . error ( "Error creating or finding contextual identity:" , error ) ;
56
- throw error ;
55
+ console . error ( "Error creating or finding contextual identity:" , error ) ;
56
+ throw error ;
57
57
}
58
- }
58
+ }
59
59
60
- async function createNewTabInContainer ( url , cookieStoreId , originalTabId ) {
60
+ async function createNewTabInContainer ( url , cookieStoreId , originalTabId ) {
61
61
try {
62
- const activeTab = ( await browser . tabs . query ( { active : true } ) ) [ 0 ] ;
63
- if ( activeTab && activeTab . cookieStoreId === cookieStoreId ) {
64
- return ;
65
- }
66
- await browser . tabs . create ( { url , cookieStoreId , active : false } ) ;
67
- if ( originalTabId ) {
68
- await browser . tabs . remove ( originalTabId ) ;
69
- }
62
+ const originalTab = await browser . tabs . get ( originalTabId ) ;
63
+ await browser . tabs . create ( {
64
+ url ,
65
+ cookieStoreId ,
66
+ index : originalTab . index ,
67
+ active : false
68
+ } ) ;
69
+ await browser . tabs . remove ( originalTabId ) ;
70
70
} catch ( error ) {
71
- console . error ( "Error creating tab:" , error ) ;
72
- throw error ;
71
+ console . error ( "Error creating tab:" , error ) ;
72
+ throw error ;
73
73
}
74
- }
74
+ }
0 commit comments