]> Skullheadx's Git Forge - surf.git/commitdiff
Adapt user agent handling
authorQuentin Rameau <quinq@fifth.space>
Fri, 20 Nov 2015 16:12:00 +0000 (17:12 +0100)
committerQuentin Rameau <quinq@fifth.space>
Fri, 20 Nov 2015 16:12:00 +0000 (17:12 +0100)
Now we can only append Surf version to the default WebKit user agent
instead of setting the whole string (while this remains possible to do).

config.def.h
surf.c

index ac78f0e21c205a2e7023172cc8a796c79b06f2a1..50ce75dc6d3aba08908d9d319367bc354e6e5ddf 100644 (file)
@@ -1,7 +1,6 @@
 /* modifier 0 means no modifier */
-static char *useragent      = "Mozilla/5.0 (X11; U; Unix; en-US) "
-                              "AppleWebKit/537.15 (KHTML, like Gecko) "
-                              "Chrome/24.0.1295.0 Safari/537.15 Surf/"VERSION;
+static int surfuseragent    = 1;  /* Append Surf version to default WebKit user agent */
+static char *fulluseragent  = ""; /* Or override the whole user agent string */
 static char *scriptfile     = "~/.surf/script.js";
 static char *styledir       = "~/.surf/styles/";
 static char *cachedir       = "~/.surf/cache/";
diff --git a/surf.c b/surf.c
index 16ec39881eabcaef8b1167c4f2d136e030b88e51..601887a8ed4932119cdbdc0dfeaebd94e8fff11a 100644 (file)
--- a/surf.c
+++ b/surf.c
@@ -112,6 +112,7 @@ static char pagestats[2];
 static GTlsDatabase *tlsdb;
 static int cookiepolicy;
 static char *stylefile = NULL;
+static const char *useragent;
 
 static void addaccelgroup(Client *c);
 static char *buildfile(const char *path);
@@ -899,7 +900,6 @@ newview(Client *c, WebKitWebView *rv)
        WebKitSettings *settings;
        WebKitUserContentManager *contentmanager;
        WebKitWebContext *context;
-       char *ua;
 
        /* Webview */
        if (rv) {
@@ -918,12 +918,17 @@ newview(Client *c, WebKitWebView *rv)
                    "enable-javascript", enablescripts,
                    "enable-plugins", enableplugins,
                    NULL);
-               if (!(ua = getenv("SURF_USERAGENT")))
-                       ua = useragent;
-               webkit_settings_set_user_agent(settings, ua);
                /* Have a look at http://webkitgtk.org/reference/webkit2gtk/stable/WebKitSettings.html
                 * for more interesting settings */
 
+               if (strcmp(fulluseragent, "")) {
+                       webkit_settings_set_user_agent(settings, fulluseragent);
+               } else if (surfuseragent) {
+                       webkit_settings_set_user_agent_with_application_details(
+                           settings, "Surf", VERSION);
+               }
+               useragent = webkit_settings_get_user_agent(settings);
+
                contentmanager = webkit_user_content_manager_new();
 
                context = webkit_web_context_new_with_website_data_manager(