@@ -210,6 +210,48 @@ function nextZoomLevel(currentZoom, steps) {
210210 }
211211}
212212
213+ function setProxy ( request , sender , proxy_type ) {
214+ const currentTab = request . tab ;
215+ const tabId = request . tabId ;
216+ const registryEntry = request . registryEntry ;
217+
218+ var getting = browser . proxy . settings . get ( { } ) ;
219+
220+ getting . then ( ( got ) => {
221+ got . value . proxyType = proxy_type ;
222+
223+ var msg ;
224+ if ( proxy_type == "none" )
225+ msg = "None proxy" ;
226+ else if ( proxy_type == "autoDetect" )
227+ msg = "Auto detect proxy" ;
228+ else if ( proxy_type == "system" )
229+ msg = "System proxy" ;
230+ else if ( proxy_type == "manual" )
231+ msg = "Manual proxy:" + got . value . http ;
232+
233+ browser . proxy . settings . set ( { value : got . value } )
234+ . then ( ( res ) => {
235+ if ( res ) {
236+ chrome . tabs . sendMessage ( tabId , {
237+ frameId : sender . frameId ,
238+ handler : "showMessage" ,
239+ message : msg
240+ } ) ;
241+ } else
242+ throw new Error ( ) ;
243+ } )
244+ . catch ( ( err ) => {
245+ chrome . tabs . sendMessage ( tabId , {
246+ frameId : sender . frameId ,
247+ handler : "showMessage" ,
248+ message : "Required private browsing permission"
249+ } ) ;
250+ }
251+ ) ;
252+ } ) ;
253+ }
254+
213255// These are commands which are bound to keystrokes which must be handled by the background page.
214256// They are mapped in commands.js.
215257const BackgroundCommands = {
@@ -411,6 +453,23 @@ const BackgroundCommands = {
411453 chrome . tabs . reload ( tab . id , { bypassCache : true } ) ;
412454 } ) ;
413455 } ,
456+
457+ setProxyNone ( request , sender ) {
458+ setProxy ( request , sender , "none" ) ;
459+ } ,
460+
461+ setProxyAutodetect ( request , sender ) {
462+ setProxy ( request , sender , "autoDetect" ) ;
463+ } ,
464+
465+ setProxySystem ( request , sender ) {
466+ setProxy ( request , sender , "system" ) ;
467+ } ,
468+
469+ setProxyManual ( request , sender ) {
470+ setProxy ( request , sender , "manual" ) ;
471+ } ,
472+
414473} ;
415474
416475async function forCountTabs ( count , currentTab , callback ) {
0 commit comments