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);
WebKitSettings *settings;
WebKitUserContentManager *contentmanager;
WebKitWebContext *context;
- char *ua;
/* Webview */
if (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(
}
void
-newwindow(Client *c, const Arg *arg, gboolean noembed)
+newwindow(Client *c, const Arg *a, int noembed)
{
- guint i = 0;
- const char *cmd[18], *uri;
- const Arg a = { .v = (void *)cmd };
+ int i = 0;
char tmp[64];
+ const char *cmd[26], *uri;
+ const Arg arg = { .v = cmd };
cmd[i++] = argv0;
cmd[i++] = "-a";
cmd[i++] = cookiepolicies;
- if (!enablescrollbars)
- cmd[i++] = "-b";
+ cmd[i++] = enablescrollbars ? "-B" : "-b";
+ if (cookiefile && g_strcmp0(cookiefile, "")) {
+ cmd[i++] = "-c";
+ cmd[i++] = cookiefile;
+ }
+ cmd[i++] = enablecache ? "-D" : "-d";
if (embed && !noembed) {
cmd[i++] = "-e";
- snprintf(tmp, LENGTH(tmp), "%u", (int)embed);
+ snprintf(tmp, LENGTH(tmp), "%lu", embed);
cmd[i++] = tmp;
}
- if (!allowgeolocation)
- cmd[i++] = "-g";
- if (!loadimages)
- cmd[i++] = "-i";
- if (kioskmode)
- cmd[i++] = "-k";
- if (!enableplugins)
- cmd[i++] = "-p";
- if (!enablescripts)
- cmd[i++] = "-s";
+ cmd[i++] = runinfullscreen ? "-F" : "-f";
+ cmd[i++] = allowgeolocation ? "-G" : "-g";
+ cmd[i++] = loadimages ? "-I" : "-i";
+ cmd[i++] = kioskmode ? "-K" : "-k";
+ cmd[i++] = enablestyle ? "-M" : "-m";
+ cmd[i++] = enableinspector ? "-N" : "-n";
+ cmd[i++] = enableplugins ? "-P" : "-p";
+ if (scriptfile && g_strcmp0(scriptfile, "")) {
+ cmd[i++] = "-r";
+ cmd[i++] = scriptfile;
+ }
+ cmd[i++] = enablescripts ? "-S" : "-s";
+ if (stylefile && g_strcmp0(stylefile, "")) {
+ cmd[i++] = "-t";
+ cmd[i++] = stylefile;
+ }
+ if (fulluseragent && g_strcmp0(fulluseragent, "")) {
+ cmd[i++] = "-u";
+ cmd[i++] = fulluseragent;
+ }
if (showxid)
cmd[i++] = "-x";
- if (enablecache)
- cmd[i++] = "-D";
- cmd[i++] = "-c";
- cmd[i++] = cookiefile;
+ /* do not keep zoom level */
cmd[i++] = "--";
- uri = arg->v ? (char *)arg->v : c->linkhover;
- if (uri)
+ if ((uri = a->v))
cmd[i++] = uri;
- cmd[i++] = NULL;
- spawn(NULL, &a);
+ cmd[i] = NULL;
+
+ spawn(c, &arg);
}
GtkWidget *
void
updatetitle(Client *c)
{
- char *t;
+ char *title;
if (showindicators) {
gettogglestats(c);
getpagestats(c);
- if (c->linkhover) {
- t = g_strdup_printf("%s:%s | %s", togglestats, pagestats,
- c->linkhover);
- } else if (c->progress != 100) {
- t = g_strdup_printf("[%i%%] %s:%s | %s", c->progress,
- togglestats, pagestats,
- c->title == NULL ? "" : c->title);
+ if (c->progress != 100) {
+ title = g_strdup_printf("[%i%%] %s:%s | %s",
+ c->progress, togglestats, pagestats,
+ c->targeturi ? c->targeturi : c->title);
} else {
- t = g_strdup_printf("%s:%s | %s", togglestats, pagestats,
- c->title == NULL ? "" : c->title);
+ title = g_strdup_printf("%s:%s | %s",
+ togglestats, pagestats,
+ c->targeturi ? c->targeturi : c->title);
}
- gtk_window_set_title(GTK_WINDOW(c->win), t);
- g_free(t);
+ gtk_window_set_title(GTK_WINDOW(c->win), title);
+ g_free(title);
} else {
- gtk_window_set_title(GTK_WINDOW(c->win), (c->title == NULL) ?
- "" : c->title);
+ gtk_window_set_title(GTK_WINDOW(c->win), c->title ?
+ c->title : "");
}
}