Add config option for microphone and webcam access
This commit is contained in:
parent
f5be376ccc
commit
bcd05ae321
2 changed files with 26 additions and 6 deletions
|
@ -10,6 +10,8 @@ static char *cookiefile = "~/.surf/cookies.txt";
|
|||
/* Webkit default features */
|
||||
static Parameter defconfig[ParameterLast] = {
|
||||
SETB(AcceleratedCanvas, 1),
|
||||
SETB(AccessMicrophone, 0),
|
||||
SETB(AccessWebcam, 0),
|
||||
SETB(Certificate, 0),
|
||||
SETB(CaretBrowsing, 0),
|
||||
SETV(CookiePolicies, "@Aa"),
|
||||
|
|
30
surf.c
30
surf.c
|
@ -61,6 +61,8 @@ enum {
|
|||
|
||||
typedef enum {
|
||||
AcceleratedCanvas,
|
||||
AccessMicrophone,
|
||||
AccessWebcam,
|
||||
CaretBrowsing,
|
||||
Certificate,
|
||||
CookiePolicies,
|
||||
|
@ -678,6 +680,10 @@ setparameter(Client *c, int refresh, ParamName p, const Arg *a)
|
|||
case AcceleratedCanvas:
|
||||
webkit_settings_set_enable_accelerated_2d_canvas(s, a->b);
|
||||
break;
|
||||
case AccessMicrophone:
|
||||
return; /* do nothing */
|
||||
case AccessWebcam:
|
||||
return; /* do nothing */
|
||||
case CaretBrowsing:
|
||||
webkit_settings_set_enable_caret_browsing(s, a->b);
|
||||
refresh = 0;
|
||||
|
@ -1450,15 +1456,27 @@ mousetargetchanged(WebKitWebView *v, WebKitHitTestResult *h, guint modifiers,
|
|||
gboolean
|
||||
permissionrequested(WebKitWebView *v, WebKitPermissionRequest *r, Client *c)
|
||||
{
|
||||
ParamName param = ParameterLast;
|
||||
|
||||
if (WEBKIT_IS_GEOLOCATION_PERMISSION_REQUEST(r)) {
|
||||
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;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
if (curconfig[param].val.b)
|
||||
webkit_permission_request_allow(r);
|
||||
else
|
||||
webkit_permission_request_deny(r);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
gboolean
|
||||
|
|
Loading…
Reference in a new issue