static void setparameter(Client *c, int refresh, ParamName p, const Arg *a);
static const char *getcert(const char *uri);
static void setcert(Client *c, const char *file);
static void setparameter(Client *c, int refresh, ParamName p, const Arg *a);
static const char *getcert(const char *uri);
static void setcert(Client *c, const char *file);
XChangeProperty(dpy, c->xid,
atoms[a], XA_STRING, 8, PropModeReplace,
(unsigned char *)v, strlen(v) + 1);
XChangeProperty(dpy, c->xid,
atoms[a], XA_STRING, 8, PropModeReplace,
(unsigned char *)v, strlen(v) + 1);
XGetWindowProperty(dpy, c->xid, atoms[a], 0L, BUFSIZ, False, XA_STRING,
&adummy, &idummy, &ldummy, &ldummy, &p);
if (p)
XGetWindowProperty(dpy, c->xid, atoms[a], 0L, BUFSIZ, False, XA_STRING,
&adummy, &idummy, &ldummy, &ldummy, &p);
if (p)
- togglestats[1] = curconfig[CaretBrowsing].val.b ? 'C' : 'c';
- togglestats[2] = curconfig[Geolocation].val.b ? 'G' : 'g';
- togglestats[3] = curconfig[DiskCache].val.b ? 'D' : 'd';
- togglestats[4] = curconfig[LoadImages].val.b ? 'I' : 'i';
- togglestats[5] = curconfig[JavaScript].val.b ? 'S' : 's';
- togglestats[6] = curconfig[Plugins].val.b ? 'V' : 'v';
- togglestats[7] = curconfig[Style].val.b ? 'M' : 'm';
- togglestats[8] = curconfig[FrameFlattening].val.b ? 'F' : 'f';
- togglestats[9] = curconfig[Certificate].val.b ? 'X' : 'x';
- togglestats[10] = curconfig[StrictTLS].val.b ? 'T' : 't';
+ togglestats[1] = curconfig[CaretBrowsing].val.i ? 'C' : 'c';
+ togglestats[2] = curconfig[Geolocation].val.i ? 'G' : 'g';
+ togglestats[3] = curconfig[DiskCache].val.i ? 'D' : 'd';
+ togglestats[4] = curconfig[LoadImages].val.i ? 'I' : 'i';
+ togglestats[5] = curconfig[JavaScript].val.i ? 'S' : 's';
+ togglestats[6] = curconfig[Plugins].val.i ? 'V' : 'v';
+ togglestats[7] = curconfig[Style].val.i ? 'M' : 'm';
+ togglestats[8] = curconfig[FrameFlattening].val.i ? 'F' : 'f';
+ togglestats[9] = curconfig[Certificate].val.i ? 'X' : 'x';
+ togglestats[10] = curconfig[StrictTLS].val.i ? 'T' : 't';
- for (i = 0; i < ParameterLast; ++i) {
- if (defconfig[i].force)
- continue;
- if (newconfig[i].force)
- setparameter(c, 0, i, &newconfig[i].val);
- else if (curconfig[i].force)
- setparameter(c, 0, i, &defconfig[i].val);
+ for (i = 0; (p = params[i]) != ParameterLast; ++i) {
+ switch(p) {
+ case Certificate:
+ case CookiePolicies:
+ case Style:
+ config = defconfig[p].force ? defconfig :
+ newconfig[p].force ? newconfig :
+ defconfig;
+ break;
+ default:
+ if (defconfig[p].force)
+ continue;
+ config = newconfig[p].force ? newconfig :
+ curconfig[p].force ? defconfig :
+ NULL;
+ }
+
+ if (config)
+ setparameter(c, 0, p, &config[p].val);
- webkit_settings_set_enable_dns_prefetching(s, a->b);
+ webkit_settings_set_enable_dns_prefetching(s, a->i);
+ return; /* do not update */
+ case FileURLsCrossAccess:
+ webkit_settings_set_allow_file_access_from_file_urls(s, a->i);
+ webkit_settings_set_allow_universal_access_from_file_urls(s, a->i);
return; /* do not update */
case FontSize:
webkit_settings_set_default_font_size(s, a->i);
return; /* do not update */
case FrameFlattening:
return; /* do not update */
case FontSize:
webkit_settings_set_default_font_size(s, a->i);
return; /* do not update */
case FrameFlattening:
- cmd[i++] = curconfig[RunInFullscreen].val.b ? "-F" : "-f" ;
- cmd[i++] = curconfig[Geolocation].val.b ? "-G" : "-g" ;
- cmd[i++] = curconfig[LoadImages].val.b ? "-I" : "-i" ;
- cmd[i++] = curconfig[KioskMode].val.b ? "-K" : "-k" ;
- cmd[i++] = curconfig[Style].val.b ? "-M" : "-m" ;
- cmd[i++] = curconfig[Inspector].val.b ? "-N" : "-n" ;
- cmd[i++] = curconfig[Plugins].val.b ? "-P" : "-p" ;
+ cmd[i++] = curconfig[RunInFullscreen].val.i ? "-F" : "-f" ;
+ cmd[i++] = curconfig[Geolocation].val.i ? "-G" : "-g" ;
+ cmd[i++] = curconfig[LoadImages].val.i ? "-I" : "-i" ;
+ cmd[i++] = curconfig[KioskMode].val.i ? "-K" : "-k" ;
+ cmd[i++] = curconfig[Style].val.i ? "-M" : "-m" ;
+ cmd[i++] = curconfig[Inspector].val.i ? "-N" : "-n" ;
+ cmd[i++] = curconfig[Plugins].val.i ? "-P" : "-p" ;
- "auto-load-images", curconfig[LoadImages].val.b,
+ "allow-file-access-from-file-urls", curconfig[FileURLsCrossAccess].val.i,
+ "allow-universal-access-from-file-urls", curconfig[FileURLsCrossAccess].val.i,
+ "auto-load-images", curconfig[LoadImages].val.i,
"default-charset", curconfig[DefaultCharset].val.v,
"default-font-size", curconfig[FontSize].val.i,
"default-charset", curconfig[DefaultCharset].val.v,
"default-font-size", curconfig[FontSize].val.i,
- "enable-caret-browsing", curconfig[CaretBrowsing].val.b,
- "enable-developer-extras", curconfig[Inspector].val.b,
- "enable-dns-prefetching", curconfig[DNSPrefetch].val.b,
- "enable-frame-flattening", curconfig[FrameFlattening].val.b,
- "enable-html5-database", curconfig[DiskCache].val.b,
- "enable-html5-local-storage", curconfig[DiskCache].val.b,
- "enable-java", curconfig[Java].val.b,
- "enable-javascript", curconfig[JavaScript].val.b,
- "enable-plugins", curconfig[Plugins].val.b,
- "enable-accelerated-2d-canvas", curconfig[AcceleratedCanvas].val.b,
- "enable-site-specific-quirks", curconfig[SiteQuirks].val.b,
- "enable-smooth-scrolling", curconfig[SmoothScrolling].val.b,
- "media-playback-requires-user-gesture", curconfig[MediaManualPlay].val.b,
+ "enable-caret-browsing", curconfig[CaretBrowsing].val.i,
+ "enable-developer-extras", curconfig[Inspector].val.i,
+ "enable-dns-prefetching", curconfig[DNSPrefetch].val.i,
+ "enable-frame-flattening", curconfig[FrameFlattening].val.i,
+ "enable-html5-database", curconfig[DiskCache].val.i,
+ "enable-html5-local-storage", curconfig[DiskCache].val.i,
+ "enable-java", curconfig[Java].val.i,
+ "enable-javascript", curconfig[JavaScript].val.i,
+ "enable-plugins", curconfig[Plugins].val.i,
+ "enable-accelerated-2d-canvas", curconfig[AcceleratedCanvas].val.i,
+ "enable-site-specific-quirks", curconfig[SiteQuirks].val.i,
+ "enable-smooth-scrolling", curconfig[SmoothScrolling].val.i,
+ "media-playback-requires-user-gesture", curconfig[MediaManualPlay].val.i,
webkit_web_context_set_spell_checking_languages(context,
curconfig[SpellLanguages].val.v);
webkit_web_context_set_spell_checking_enabled(context,
webkit_web_context_set_spell_checking_languages(context,
curconfig[SpellLanguages].val.v);
webkit_web_context_set_spell_checking_enabled(context,
gdk_window_set_events(gwin, GDK_ALL_EVENTS_MASK);
gdk_window_add_filter(gwin, processx, c);
}
gdk_window_set_events(gwin, GDK_ALL_EVENTS_MASK);
gdk_window_add_filter(gwin, processx, c);
}
/* Disabled until we write some WebKitWebExtension for
* manipulating the DOM directly.
evalscript(c, "document.documentElement.style.overflow = '%s'",
/* Disabled until we write some WebKitWebExtension for
* manipulating the DOM directly.
evalscript(c, "document.documentElement.style.overflow = '%s'",
- if (curconfig[Geolocation].val.b)
- webkit_permission_request_allow(r);
- else
- webkit_permission_request_deny(r);
- return TRUE;
+ param = Geolocation;
+ } else if (WEBKIT_IS_USER_MEDIA_PERMISSION_REQUEST(r)) {
+ if (webkit_user_media_permission_is_for_audio_device(
+ WEBKIT_USER_MEDIA_PERMISSION_REQUEST(r)))
+ param = AccessMicrophone;
+ else if (webkit_user_media_permission_is_for_video_device(
+ WEBKIT_USER_MEDIA_PERMISSION_REQUEST(r)))
+ param = AccessWebcam;
+ } else {
+ return FALSE;