about summary refs log tree commit diff
diff options
context:
space:
mode:
authorQuentin Rameau <[email protected]>2015-11-20 17:12:00 +0100
committerQuentin Rameau <[email protected]>2015-11-20 17:12:00 +0100
commit5bca2223399bb18bada2a48db7411d181e3186e6 (patch)
tree6b4e415d427a74a1ef2077b36fe4b2f764605a53
parentAdapt updatetitle() (diff)
downloadsurf-5bca2223399bb18bada2a48db7411d181e3186e6.tar.gz
surf-5bca2223399bb18bada2a48db7411d181e3186e6.tar.bz2
surf-5bca2223399bb18bada2a48db7411d181e3186e6.zip
Adapt user agent handling
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).
-rw-r--r--config.def.h5
-rw-r--r--surf.c13
2 files changed, 11 insertions, 7 deletions
diff --git a/config.def.h b/config.def.h
index ac78f0e..50ce75d 100644
--- a/config.def.h
+++ b/config.def.h
@@ -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 16ec398..601887a 100644
--- 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(