surf-proxyconfig-20240905-9ef79b.diff - sites - public wiki contents of suckless.org
 (HTM) git clone git://git.suckless.org/sites
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
       surf-proxyconfig-20240905-9ef79b.diff (2397B)
       ---
            1 --- config.def.h.orig        2024-09-05 06:51:02 UTC
            2 +++ config.def.h
            3 @@ -36,6 +36,9 @@ static Parameter defconfig[ParameterLast] = {
            4          [LoadImages]          =       { { .i = 1 },     },
            5          [MediaManualPlay]     =       { { .i = 1 },     },
            6          [PreferredLanguages]  =       { { .v = (char *[]){ NULL } }, },
            7 +        [ProxyIgnoreHosts]    =       { { .v = (char *[]){ NULL } }, },
            8 +        [ProxyMode]           =       { { .i = SystemProxy }, },
            9 +        [ProxyUrl]            =       { { .v = (char *) NULL }, },
           10          [RunInFullscreen]     =       { { .i = 0 },     },
           11          [ScrollBars]          =       { { .i = 1 },     },
           12          [ShowIndicators]      =       { { .i = 1 },     },
           13 --- surf.c.orig        2024-09-05 06:51:09 UTC
           14 +++ surf.c
           15 @@ -50,6 +50,12 @@ enum {
           16          OnAny   = OnDoc | OnLink | OnImg | OnMedia | OnEdit | OnBar | OnSel,
           17  };
           18  
           19 +enum {
           20 +        CustomProxy = WEBKIT_NETWORK_PROXY_MODE_CUSTOM,
           21 +        SystemProxy = WEBKIT_NETWORK_PROXY_MODE_DEFAULT,
           22 +        NoProxy   = WEBKIT_NETWORK_PROXY_MODE_NO_PROXY,
           23 +};
           24 +
           25  typedef enum {
           26          AccessMicrophone,
           27          AccessWebcam,
           28 @@ -72,6 +78,9 @@ typedef enum {
           29          LoadImages,
           30          MediaManualPlay,
           31          PreferredLanguages,
           32 +        ProxyIgnoreHosts,
           33 +        ProxyMode,
           34 +        ProxyUrl,
           35          RunInFullscreen,
           36          ScrollBars,
           37          ShowIndicators,
           38 @@ -1099,6 +1108,7 @@ newview(Client *c, WebKitWebView *rv)
           39          WebKitWebContext *context;
           40          WebKitCookieManager *cookiemanager;
           41          WebKitUserContentManager *contentmanager;
           42 +        WebKitNetworkProxySettings *proxysettings;
           43  
           44          /* Webview */
           45          if (rv) {
           46 @@ -1157,6 +1167,28 @@ newview(Client *c, WebKitWebView *rv)
           47                  webkit_web_context_set_tls_errors_policy(context,
           48                      curconfig[StrictTLS].val.i ? WEBKIT_TLS_ERRORS_POLICY_FAIL :
           49                      WEBKIT_TLS_ERRORS_POLICY_IGNORE);
           50 +                /* proxy */
           51 +                switch (curconfig[ProxyMode].val.i) {
           52 +                        case CustomProxy:
           53 +                                proxysettings = webkit_network_proxy_settings_new(
           54 +                                        curconfig[ProxyUrl].val.v,
           55 +                                        curconfig[ProxyIgnoreHosts].val.v);
           56 +                                webkit_web_context_set_network_proxy_settings(context,
           57 +                                        CustomProxy,
           58 +                                        proxysettings);
           59 +                                break;
           60 +                        case NoProxy:
           61 +                                webkit_web_context_set_network_proxy_settings(context,
           62 +                                        NoProxy,
           63 +                                        NULL);
           64 +                                break;
           65 +                        case SystemProxy:
           66 +                        default:
           67 +                                webkit_web_context_set_network_proxy_settings(context,
           68 +                                        SystemProxy,
           69 +                                        proxysettings);
           70 +                                break;
           71 +                }
           72                  /* disk cache */
           73                  webkit_web_context_set_cache_model(context,
           74                      curconfig[DiskCache].val.i ? WEBKIT_CACHE_MODEL_WEB_BROWSER :