Introduction
Introduction Statistics Contact Development Disclaimer Help
Only get webkit context and settings once - surf - surf browser, a WebKit based…
git clone git://git.suckless.org/surf
Log
Files
Refs
README
LICENSE
---
commit d3ee6528607d460b61870e69310e732992962073
parent 1f5b8f3bd1f37d4d3dc45d21285f34ef4752dbaa
Author: Quentin Rameau <[email protected]>
Date: Sun, 10 Apr 2022 18:43:45 +0200
Only get webkit context and settings once
Diffstat:
M surf.c | 58 ++++++++++++++++++-----------…
1 file changed, 33 insertions(+), 25 deletions(-)
---
diff --git a/surf.c b/surf.c
@@ -101,6 +101,8 @@ typedef struct {
typedef struct Client {
GtkWidget *win;
WebKitWebView *view;
+ WebKitSettings *settings;
+ WebKitWebContext *context;
WebKitWebInspector *inspector;
WebKitFindController *finder;
WebKitHitTestResult *mousepos;
@@ -750,7 +752,6 @@ void
setparameter(Client *c, int refresh, ParamName p, const Arg *a)
{
GdkRGBA bgcolor = { 0 };
- WebKitSettings *s = webkit_web_view_get_settings(c->view);
modparams[p] = curconfig[p].prio;
@@ -760,7 +761,7 @@ setparameter(Client *c, int refresh, ParamName p, const Arg…
case AccessWebcam:
return; /* do nothing */
case CaretBrowsing:
- webkit_settings_set_enable_caret_browsing(s, a->i);
+ webkit_settings_set_enable_caret_browsing(c->settings, a->i);
refresh = 0;
break;
case Certificate:
@@ -769,36 +770,37 @@ setparameter(Client *c, int refresh, ParamName p, const A…
return; /* do not update */
case CookiePolicies:
webkit_cookie_manager_set_accept_policy(
- webkit_web_context_get_cookie_manager(
- webkit_web_view_get_context(c->view)),
+ webkit_web_context_get_cookie_manager(c->context),
cookiepolicy_get());
refresh = 0;
break;
case DarkMode:
g_object_set(gtk_settings_get_default(),
"gtk-application-prefer-dark-theme", a->i, NULL);
+ return;
break;
case DiskCache:
- webkit_web_context_set_cache_model(
- webkit_web_view_get_context(c->view), a->i ?
+ webkit_web_context_set_cache_model(c->context, a->i ?
WEBKIT_CACHE_MODEL_WEB_BROWSER :
WEBKIT_CACHE_MODEL_DOCUMENT_VIEWER);
return; /* do not update */
case DefaultCharset:
- webkit_settings_set_default_charset(s, a->v);
+ webkit_settings_set_default_charset(c->settings, a->v);
return; /* do not update */
case DNSPrefetch:
- webkit_settings_set_enable_dns_prefetching(s, a->i);
+ webkit_settings_set_enable_dns_prefetching(c->settings, 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…
+ webkit_settings_set_allow_file_access_from_file_urls(
+ c->settings, a->i);
+ webkit_settings_set_allow_universal_access_from_file_urls(
+ c->settings, a->i);
return; /* do not update */
case FontSize:
- webkit_settings_set_default_font_size(s, a->i);
+ webkit_settings_set_default_font_size(c->settings, a->i);
return; /* do not update */
case FrameFlattening:
- webkit_settings_set_enable_frame_flattening(s, a->i);
+ webkit_settings_set_enable_frame_flattening(c->settings, a->i);
break;
case Geolocation:
refresh = 0;
@@ -808,21 +810,22 @@ setparameter(Client *c, int refresh, ParamName p, const A…
webkit_web_view_set_background_color(c->view, &bgcolor…
return; /* do not update */
case Inspector:
- webkit_settings_set_enable_developer_extras(s, a->i);
+ webkit_settings_set_enable_developer_extras(c->settings, a->i);
return; /* do not update */
case Java:
- webkit_settings_set_enable_java(s, a->i);
+ webkit_settings_set_enable_java(c->settings, a->i);
return; /* do not update */
case JavaScript:
- webkit_settings_set_enable_javascript(s, a->i);
+ webkit_settings_set_enable_javascript(c->settings, a->i);
break;
case KioskMode:
return; /* do nothing */
case LoadImages:
- webkit_settings_set_auto_load_images(s, a->i);
+ webkit_settings_set_auto_load_images(c->settings, a->i);
break;
case MediaManualPlay:
- webkit_settings_set_media_playback_requires_user_gesture(s, a-…
+ webkit_settings_set_media_playback_requires_user_gesture(
+ c->settings, a->i);
break;
case PreferredLanguages:
return; /* do nothing */
@@ -839,20 +842,20 @@ setparameter(Client *c, int refresh, ParamName p, const A…
case ShowIndicators:
break;
case SmoothScrolling:
- webkit_settings_set_enable_smooth_scrolling(s, a->i);
+ webkit_settings_set_enable_smooth_scrolling(c->settings, a->i);
return; /* do not update */
case SiteQuirks:
- webkit_settings_set_enable_site_specific_quirks(s, a->i);
+ webkit_settings_set_enable_site_specific_quirks(
+ c->settings, a->i);
break;
case SpellChecking:
webkit_web_context_set_spell_checking_enabled(
- webkit_web_view_get_context(c->view), a->i);
+ c->context, a->i);
return; /* do not update */
case SpellLanguages:
return; /* do nothing */
case StrictTLS:
- webkit_web_context_set_tls_errors_policy(
- webkit_web_view_get_context(c->view), a->i ?
+ webkit_web_context_set_tls_errors_policy(c->context, a->i ?
WEBKIT_TLS_ERRORS_POLICY_FAIL :
WEBKIT_TLS_ERRORS_POLICY_IGNORE);
break;
@@ -864,7 +867,7 @@ setparameter(Client *c, int refresh, ParamName p, const Arg…
refresh = 0;
break;
case WebGL:
- webkit_settings_set_enable_webgl(s, a->i);
+ webkit_settings_set_enable_webgl(c->settings, a->i);
break;
case ZoomLevel:
webkit_web_view_set_zoom_level(c->view, a->f);
@@ -910,8 +913,8 @@ setcert(Client *c, const char *uri)
if ((uri = strstr(uri, "https://"))) {
uri += sizeof("https://") - 1;
host = g_strndup(uri, strchr(uri, '/') - uri);
- webkit_web_context_allow_tls_certificate_for_host(
- webkit_web_view_get_context(c->view), cert, host);
+ webkit_web_context_allow_tls_certificate_for_host(c->context,
+ cert, host);
g_free(host);
}
@@ -1110,6 +1113,8 @@ newview(Client *c, WebKitWebView *rv)
/* Webview */
if (rv) {
v = WEBKIT_WEB_VIEW(webkit_web_view_new_with_related_view(rv));
+ context = webkit_web_view_get_context(v);
+ settings = webkit_web_view_get_settings(v);
} else {
settings = webkit_settings_new_with_settings(
"allow-file-access-from-file-urls", curconfig[FileURLsCross…
@@ -1223,6 +1228,9 @@ newview(Client *c, WebKitWebView *rv)
g_signal_connect(G_OBJECT(v), "web-process-terminated",
G_CALLBACK(webprocessterminated), c);
+ c->context = context;
+ c->settings = settings;
+
return v;
}
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.