@@ -107,12 +107,16 @@ browser.contextMenus.create({ id: "redirectTab", title: 'Redirect', contexts: ["
107
107
browser . contextMenus . create ( { id : "reverseTab" , title : 'Redirect To Original' , contexts : [ "browser_action" ] } )
108
108
109
109
browser . contextMenus . create ( { id : "redirectLink" , title : 'Redirect' , contexts : [ "link" ] } )
110
+ browser . contextMenus . create ( { id : "redirectLinkInNewTab" , title : 'Redirect In New Tab' , contexts : [ "link" ] } )
110
111
browser . contextMenus . create ( { id : "reverseLink" , title : 'Redirect To Original' , contexts : [ "link" ] } )
112
+ browser . contextMenus . create ( { id : "reverseLinkInNewTab" , title : 'Redirect To Original In New Tab' , contexts : [ "link" ] } )
111
113
browser . contextMenus . create ( { id : "copyReverseLink" , title : 'Copy Original' , contexts : [ "link" ] } )
112
114
113
115
if ( ! isChrome ) {
114
116
browser . contextMenus . create ( { id : "redirectBookmark" , title : 'Redirect' , contexts : [ "bookmark" ] } )
117
+ browser . contextMenus . create ( { id : "redirectBookmarkInNewTab" , title : 'Redirect In New Tab' , contexts : [ "bookmark" ] } )
115
118
browser . contextMenus . create ( { id : "reverseBookmark" , title : 'Redirect To Original' , contexts : [ "bookmark" ] } )
119
+ browser . contextMenus . create ( { id : "reverseBookmarkInNewTab" , title : 'Redirect To Original In New Tab' , contexts : [ "bookmark" ] } )
116
120
browser . contextMenus . create ( { id : "copyReverseBookmark" , title : 'Copy Original' , contexts : [ "bookmark" ] } )
117
121
}
118
122
@@ -175,19 +179,30 @@ browser.contextMenus.onClicked.addListener(async (info) => {
175
179
await servicesHelper . copyRaw ( url )
176
180
return
177
181
}
178
- case 'redirectLink' : {
182
+ case 'redirectLink' :
183
+ case 'redirectLinkInNewTab' : {
179
184
const url = new URL ( info . linkUrl )
180
185
const newUrl = servicesHelper . redirect ( url , "main_frame" , null , true )
181
- if ( newUrl ) browser . tabs . create ( { url : newUrl } )
186
+ if ( newUrl ) {
187
+ if ( info . menuItemId == "redirectLink" ) browser . tabs . update ( { url : newUrl } )
188
+ else browser . tabs . create ( { url : newUrl } )
189
+ }
182
190
return
183
191
}
184
- case 'reverseLink' : {
192
+ case 'reverseLink' :
193
+ case 'reverseLinkInNewTab' : {
185
194
const url = new URL ( info . linkUrl )
186
195
const newUrl = await servicesHelper . reverse ( url )
187
196
if ( newUrl ) {
188
- browser . tabs . create ( { url : newUrl } , tab => {
189
- tabIdRedirects [ tab . id ] = false
190
- } )
197
+ if ( info . menuItemId == "reverseLink" ) {
198
+ browser . tabs . update ( { url : newUrl } , tab => {
199
+ tabIdRedirects [ tab . id ] = false
200
+ } )
201
+ } else {
202
+ browser . tabs . create ( { url : newUrl } , tab => {
203
+ tabIdRedirects [ tab . id ] = false
204
+ } )
205
+ }
191
206
}
192
207
return
193
208
}
@@ -199,22 +214,34 @@ browser.contextMenus.onClicked.addListener(async (info) => {
199
214
} ) ;
200
215
return
201
216
}
202
- case 'redirectBookmark' : {
217
+ case 'redirectBookmark' :
218
+ case 'redirectBookmarkInNewTab' : {
203
219
browser . bookmarks . get ( info . bookmarkId , bookmarks => {
204
220
const url = new URL ( bookmarks [ 0 ] . url )
205
221
const newUrl = servicesHelper . redirect ( url , "main_frame" , null , true )
206
- if ( newUrl ) browser . tabs . create ( { url : newUrl } )
222
+ if ( newUrl ) {
223
+ if ( info . menuItemId == 'redirectBookmark' ) browser . tabs . update ( { url : newUrl } )
224
+ else browser . tabs . create ( { url : newUrl } )
225
+ }
207
226
} )
227
+
208
228
return
209
229
}
210
- case 'reverseBookmark' : {
230
+ case 'reverseBookmark' :
231
+ case 'reverseBookmarkInNewTab' : {
211
232
browser . bookmarks . get ( info . bookmarkId , async bookmarks => {
212
233
const url = new URL ( bookmarks [ 0 ] . url )
213
234
const newUrl = await servicesHelper . reverse ( url )
214
235
if ( newUrl ) {
215
- browser . tabs . create ( { url : newUrl } , tab => {
216
- tabIdRedirects [ tab . id ] = false
217
- } )
236
+ if ( info . menuItemId == "reverseBookmark" ) {
237
+ browser . tabs . update ( { url : newUrl } , tab => {
238
+ tabIdRedirects [ tab . id ] = false
239
+ } )
240
+ } else {
241
+ browser . tabs . create ( { url : newUrl } , tab => {
242
+ tabIdRedirects [ tab . id ] = false
243
+ } )
244
+ }
218
245
}
219
246
} )
220
247
return
0 commit comments