Introduction
Introduction Statistics Contact Development Disclaimer Help
tMove all necessary initialisation to newview() - surf - customized build of su…
git clone git://src.adamsgaard.dk/surf
Log
Files
Refs
README
LICENSE
---
commit 0f3e3bf66986b0a9613b03c43ff204b1c009f6bc
parent ad538bb00a38c5df7d7140414756724c1045307d
Author: Quentin Rameau <[email protected]>
Date: Wed, 18 Nov 2015 17:17:49 +0100
Move all necessary initialisation to newview()
Most all the settings and callbacks are set before view creation.
Create a related view (with inherited settings) if asked to.
Diffstat:
M config.def.h | 2 +-
M surf.c | 112 +++++++++++++++--------------…
2 files changed, 54 insertions(+), 60 deletions(-)
---
diff --git a/config.def.h b/config.def.h
t@@ -4,7 +4,7 @@ static char *useragent = "Mozilla/5.0 (X11; U; Unix; en-U…
"Chrome/24.0.1295.0 Safari/537.15 Surf/"VERSION;
static char *scriptfile = "~/.surf/script.js";
static char *styledir = "~/.surf/styles/";
-static char *cachefolder = "~/.surf/cache/";
+static char *cachedir = "~/.surf/cache/";
static Bool kioskmode = FALSE; /* Ignore shortcuts */
static Bool showindicators = TRUE; /* Show indicators in window title */
diff --git a/surf.c b/surf.c
t@@ -334,6 +334,7 @@ cleanup(void)
g_free(cookiefile);
g_free(scriptfile);
g_free(stylefile);
+ g_free(cachedir);
}
WebKitCookieAcceptPolicy
t@@ -800,6 +801,8 @@ newview(Client *c, WebKitWebView *rv)
{
WebKitWebView *v;
WebKitSettings *settings;
+ WebKitUserContentManager *contentmanager;
+ WebKitWebContext *context;
char *ua;
/* Webview */
t@@ -807,43 +810,57 @@ newview(Client *c, WebKitWebView *rv)
v = WEBKIT_WEB_VIEW(
webkit_web_view_new_with_related_view(rv));
} else {
- v = WEBKIT_WEB_VIEW(webkit_web_view_new());
-
- settings = webkit_web_view_get_settings(v);
+ settings = webkit_settings_new_with_settings(
+ "auto-load-images", loadimages,
+ "default-font-size", defaultfontsize,
+ "enable-caret-browsing", enablecaretbrowsing,
+ "enable-developer-extras", enableinspector,
+ "enable-dns-prefetching", enablednsprefetching,
+ "enable-frame-flattening", enableframeflattening,
+ "enable-html5-database", enablecache,
+ "enable-html5-local-storage", enablecache,
+ "enable-javascript", enablescripts,
+ "enable-plugins", enableplugins,
+ NULL);
if (!(ua = getenv("SURF_USERAGENT")))
ua = useragent;
- g_object_set(G_OBJECT(settings), "user-agent", ua, NULL);
- g_object_set(G_OBJECT(settings),
- "auto-load-images", loadimages, NULL);
- g_object_set(G_OBJECT(settings),
- "enable-plugins", enableplugins, NULL);
- g_object_set(G_OBJECT(settings),
- "enable-scripts", enablescripts, NULL);
- g_object_set(G_OBJECT(settings),
- "enable-spatial-navigation", enablespatialbrowsin…
- g_object_set(G_OBJECT(settings),
- "enable-developer-extras", enableinspector, NULL);
- g_object_set(G_OBJECT(settings),
- "enable-default-context-menu", kioskmode ^ 1, NUL…
- g_object_set(G_OBJECT(settings),
- "default-font-size", defaultfontsize, NULL);
- g_object_set(G_OBJECT(settings),
- "resizable-text-areas", 1, NULL);
- if (enablestyle)
- setstyle(c, getstyle("about:blank"));
-
- if (enableinspector) {
- c->inspector = webkit_web_view_get_inspector(v);
- g_signal_connect(G_OBJECT(c->inspector), "inspect-web-…
- G_CALLBACK(inspector_new), c);
- g_signal_connect(G_OBJECT(c->inspector), "show-window",
- G_CALLBACK(inspector_show), c);
- g_signal_connect(G_OBJECT(c->inspector), "close-window…
- G_CALLBACK(inspector_close), c);
- g_signal_connect(G_OBJECT(c->inspector), "finished",
- G_CALLBACK(inspector_finished), c);
- c->isinspecting = false;
- }
+ webkit_settings_set_user_agent(settings, ua);
+ /* Have a look at http://webkitgtk.org/reference/webkit2gtk/st…
+ * for more interesting settings */
+
+ contentmanager = webkit_user_content_manager_new();
+
+ context = webkit_web_context_new_with_website_data_manager(
+ webkit_website_data_manager_new(
+ "base-cache-directory", cachedir,
+ "base-data-directory", cachedir,
+ NULL));
+
+ /* rendering process model, can be a shared unique one or one …
+ * view */
+ webkit_web_context_set_process_model(context,
+ WEBKIT_PROCESS_MODEL_MULTIPLE_SECONDARY_PROCESSES);
+ /* ssl */
+ webkit_web_context_set_tls_errors_policy(context, strictssl ?
+ WEBKIT_TLS_ERRORS_POLICY_FAIL : WEBKIT_TLS_ERRORS_POLICY_I…
+ /* disk cache */
+ webkit_web_context_set_cache_model(context, enablecache ?
+ WEBKIT_CACHE_MODEL_WEB_BROWSER : WEBKIT_CACHE_MODEL_DOCUME…
+
+ /* Currently only works with text file to be compatible with c…
+ webkit_cookie_manager_set_persistent_storage(
+ webkit_web_context_get_cookie_manager(context), cookiefile,
+ WEBKIT_COOKIE_PERSISTENT_STORAGE_TEXT);
+ /* cookie policy */
+ webkit_cookie_manager_set_accept_policy(
+ webkit_web_context_get_cookie_manager(context),
+ cookiepolicy_get());
+
+ v = g_object_new(WEBKIT_TYPE_WEB_VIEW,
+ "settings", settings,
+ "user-content-manager", contentmanager,
+ "web-context", context,
+ NULL);
}
g_signal_connect(G_OBJECT(v),
t@@ -1196,7 +1213,7 @@ setup(void)
/* dirs and files */
cookiefile = buildfile(cookiefile);
scriptfile = buildfile(scriptfile);
- cachefolder = buildpath(cachefolder);
+ cachedir = buildpath(cachedir);
if (stylefile == NULL) {
styledir = buildpath(styledir);
for (i = 0; i < LENGTH(styles); i++) {
t@@ -1221,29 +1238,6 @@ setup(void)
stylefile = g_strconcat("file://", stylepath, NULL);
g_free(stylepath);
}
-
- /* cookie policy */
- webkit_cookie_manager_set_persistent_storage(
- webkit_web_context_get_cookie_manager(context), cookiefile,
- WEBKIT_COOKIE_PERSISTENT_STORAGE_TEXT);
- webkit_cookie_manager_set_accept_policy(
- webkit_web_context_get_cookie_manager(context),
- cookiepolicy_get());
-
- /* rendering process model, can be a shared unique one or one for each
- * view */
- webkit_web_context_set_process_model(context,
- WEBKIT_PROCESS_MODEL_MULTIPLE_SECONDARY_PROCESSES);
-
- /* disk cache */
- webkit_web_context_set_cache_model(context, enablecache ?
- WEBKIT_CACHE_MODEL_WEB_BROWSER :
- WEBKIT_CACHE_MODEL_DOCUMENT_VIEWER);
-
- /* ssl */
- webkit_web_context_set_tls_errors_policy(context, strictssl ?
- WEBKIT_TLS_ERRORS_POLICY_FAIL :
- WEBKIT_TLS_ERRORS_POLICY_IGNORE);
}
void
You are viewing proxied material from mx1.adamsgaard.dk. 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.