commit e4b120452ac0427a83ed05b7de14299f7b09618d
parent 8cbfabe8e9535eb72ce46723a055702d1f3070e2
Author: Zach Rice <bynxmusic@gmail.com>
Date: Mon, 18 May 2026 19:09:38 -0400
Add hardware accel patch, enable a few features
Diffstat:
2 files changed, 17 insertions(+), 5 deletions(-)
diff --git a/config.def.h b/config.def.h
@@ -17,8 +17,8 @@ static char *adblockfile = "~/.surf/adblock.json";
*/
static Parameter defconfig[ParameterLast] = {
/* parameter Arg value priority */
- [AccessMicrophone] = { { .i = 0 }, },
- [AccessWebcam] = { { .i = 0 }, },
+ [AccessMicrophone] = { { .i = 1 }, },
+ [AccessWebcam] = { { .i = 1 }, },
[Certificate] = { { .i = 0 }, },
[CaretBrowsing] = { { .i = 0 }, },
[CookiePolicies] = { { .v = "@Aa" }, },
@@ -30,6 +30,7 @@ static Parameter defconfig[ParameterLast] = {
[FileURLsCrossAccess] = { { .i = 0 }, },
[FontSize] = { { .i = 12 }, },
[Geolocation] = { { .i = 0 }, },
+ [HardwareAcceleration] = { { .i = 1 }, },
[HideBackground] = { { .i = 0 }, },
[Inspector] = { { .i = 1 }, },
[JavaScript] = { { .i = 1 }, },
@@ -42,12 +43,12 @@ static Parameter defconfig[ParameterLast] = {
[ScrollBars] = { { .i = 1 }, },
[ShowIndicators] = { { .i = 1 }, },
[SiteQuirks] = { { .i = 1 }, },
- [SmoothScrolling] = { { .i = 0 }, },
- [SpellChecking] = { { .i = 0 }, },
+ [SmoothScrolling] = { { .i = 1 }, },
+ [SpellChecking] = { { .i = 1 }, },
[SpellLanguages] = { { .v = ((char *[]){ "en_US", NULL }) }, },
[StrictTLS] = { { .i = 1 }, },
[Style] = { { .i = 1 }, },
- [WebGL] = { { .i = 0 }, },
+ [WebGL] = { { .i = 1 }, },
[ZoomLevel] = { { .f = 1.0 }, },
};
diff --git a/surf.c b/surf.c
@@ -65,6 +65,7 @@ typedef enum {
FileURLsCrossAccess,
FontSize,
Geolocation,
+ HardwareAcceleration,
HideBackground,
Inspector,
JavaScript,
@@ -288,6 +289,7 @@ static ParamName loadcommitted[] = {
DefaultCharset,
FontSize,
Geolocation,
+ HardwareAcceleration,
HideBackground,
Inspector,
// KioskMode,
@@ -685,6 +687,7 @@ gettogglestats(Client *c)
togglestats[4] = curconfig[LoadImages].val.i ? 'I' : 'i';
togglestats[5] = curconfig[JavaScript].val.i ? 'S' : 's';
togglestats[6] = curconfig[Style].val.i ? 'M' : 'm';
+ togglestats[7] = curconfig[HardwareAcceleration].val.i ? 'A' : 'a';
togglestats[8] = curconfig[Certificate].val.i ? 'X' : 'x';
togglestats[9] = curconfig[StrictTLS].val.i ? 'T' : 't';
}
@@ -810,6 +813,11 @@ setparameter(Client *c, int refresh, ParamName p, const Arg *a)
case Geolocation:
refresh = 0;
break;
+ case HardwareAcceleration:
+ webkit_settings_set_hardware_acceleration_policy(c->settings, a->i ?
+ WEBKIT_HARDWARE_ACCELERATION_POLICY_ON_DEMAND :
+ WEBKIT_HARDWARE_ACCELERATION_POLICY_NEVER);
+ break;
case HideBackground:
if (a->i)
webkit_web_view_set_background_color(c->view, &bgcolor);
@@ -1177,6 +1185,9 @@ newview(Client *c, WebKitWebView *rv)
"enable-site-specific-quirks", curconfig[SiteQuirks].val.i,
"enable-smooth-scrolling", curconfig[SmoothScrolling].val.i,
"enable-webgl", curconfig[WebGL].val.i,
+ "hardware-acceleration-policy", curconfig[HardwareAcceleration].val.i ?
+ WEBKIT_HARDWARE_ACCELERATION_POLICY_ON_DEMAND :
+ WEBKIT_HARDWARE_ACCELERATION_POLICY_NEVER,
"media-playback-requires-user-gesture", curconfig[MediaManualPlay].val.i,
NULL);
/* For more interesting settings, have a look at