From b9b04d4404c63b9307b57d0bd30ebc42ea52c8b8 Mon Sep 17 00:00:00 2001 From: Leonardo Taccari Date: Sat, 8 Jun 2019 17:46:30 +0200 Subject: [PATCH] Add support for UserAgent configuration. --- config.def.h | 1 + surf.c | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/config.def.h b/config.def.h index 34265f6..5c932ce 100644 --- a/config.def.h +++ b/config.def.h @@ -46,6 +46,7 @@ static Parameter defconfig[ParameterLast] = { [SpellLanguages] = { { .v = ((char *[]){ "en_US", NULL }) }, }, [StrictTLS] = { { .i = 1 }, }, [Style] = { { .i = 1 }, }, + [UserAgent] = { { .v = "" }, }, [WebGL] = { { .i = 0 }, }, [ZoomLevel] = { { .f = 1.0 }, }, }; diff --git a/surf.c b/surf.c index 2b54e3c..eb49ea7 100644 --- a/surf.c +++ b/surf.c @@ -80,6 +80,7 @@ typedef enum { SpellLanguages, StrictTLS, Style, + UserAgent, WebGL, ZoomLevel, ParameterLast @@ -265,6 +266,7 @@ static ParamName loadtransient[] = { PreferredLanguages, ShowIndicators, StrictTLS, + UserAgent, ParameterLast }; @@ -846,6 +848,10 @@ setparameter(Client *c, int refresh, ParamName p, const Arg *a) setstyle(c, getstyle(geturi(c))); refresh = 0; break; + case UserAgent: + if (a->v && g_strcmp0(a->v, "")) + webkit_settings_set_user_agent(s, a->v); + break; case WebGL: webkit_settings_set_enable_webgl(s, a->i); break; @@ -1016,7 +1022,10 @@ newwindow(Client *c, const Arg *a, int noembed) } cmd[i++] = curconfig[JavaScript].val.i ? "-S" : "-s"; cmd[i++] = curconfig[StrictTLS].val.i ? "-T" : "-t"; - if (fulluseragent && g_strcmp0(fulluseragent, "")) { + if (curconfig[UserAgent].val.v && g_strcmp0(curconfig[UserAgent].val.v, "")) { + cmd[i++] = "-u"; + cmd[i++] = curconfig[UserAgent].val.v; + } else if (fulluseragent && g_strcmp0(fulluseragent, "")) { cmd[i++] = "-u"; cmd[i++] = fulluseragent; } @@ -1119,7 +1128,9 @@ newview(Client *c, WebKitWebView *rv) /* For more interesting settings, have a look at * http://webkitgtk.org/reference/webkit2gtk/stable/WebKitSettings.html */ - if (strcmp(fulluseragent, "")) { + if (strcmp(curconfig[UserAgent].val.v, "")) { + webkit_settings_set_user_agent(settings, curconfig[UserAgent].val.v); + } else if (strcmp(fulluseragent, "")) { webkit_settings_set_user_agent(settings, fulluseragent); } else if (surfuseragent) { webkit_settings_set_user_agent_with_application_details( -- 2.21.0