summaryrefslogtreecommitdiff
path: root/desktop/netsurf.c
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/netsurf.c')
-rw-r--r--desktop/netsurf.c80
1 files changed, 38 insertions, 42 deletions
diff --git a/desktop/netsurf.c b/desktop/netsurf.c
index 8aa949a5a..bd785898f 100644
--- a/desktop/netsurf.c
+++ b/desktop/netsurf.c
@@ -24,14 +24,19 @@
#include <stdio.h>
#include <stdlib.h>
#include <libwapcaplet/libwapcaplet.h>
+#include <dom/dom.h>
#include "netsurf/inttypes.h"
#include "utils/config.h"
+#include "utils/errors.h"
+#include "utils/nscolour.h"
#include "utils/nsoption.h"
#include "utils/corestrings.h"
#include "utils/log.h"
+#include "utils/string.h"
#include "utils/utf8.h"
#include "utils/messages.h"
+#include "utils/useragent.h"
#include "content/content_factory.h"
#include "content/fetchers.h"
#include "content/hlcache.h"
@@ -41,16 +46,21 @@
#include "image/image.h"
#include "image/image_cache.h"
#include "javascript/js.h"
-#include "render/html.h"
-#include "render/textplain.h"
+#include "html/html.h"
+#include "text/textplain.h"
#include "netsurf/browser_window.h"
#include "desktop/system_colour.h"
+#include "desktop/page-info.h"
#include "desktop/searchweb.h"
#include "netsurf/misc.h"
#include "desktop/gui_internal.h"
#include "netsurf/netsurf.h"
+
+/** \todo QUERY - Remove this import later */
+#include "desktop/browser_private.h"
+
/** speculative pre-conversion small image size
*
* Experimenting by visiting every page from default page in order and
@@ -89,43 +99,10 @@
static void netsurf_lwc_iterator(lwc_string *str, void *pw)
{
- NSLOG(netsurf, INFO, "[%3u] %.*s", str->refcnt,
+ NSLOG(netsurf, WARNING, "[%3"PRIu32"] %.*s", str->refcnt,
(int)lwc_string_length(str), lwc_string_data(str));
}
-/**
- * Dispatch a low-level cache query to the frontend
- *
- * \param query Query descriptor
- * \param pw Private data
- * \param cb Continuation callback
- * \param cbpw Private data for continuation
- * \return NSERROR_OK
- */
-static nserror netsurf_llcache_query_handler(const llcache_query *query,
- void *pw, llcache_query_response cb, void *cbpw)
-{
- nserror res = NSERROR_OK;
-
- switch (query->type) {
- case LLCACHE_QUERY_AUTH:
- guit->misc->login(query->url, query->data.auth.realm, cb, cbpw);
- break;
-
- case LLCACHE_QUERY_REDIRECT:
- /** \todo Need redirect query dialog */
- /* For now, do nothing, as this query type isn't emitted yet */
- break;
-
- case LLCACHE_QUERY_SSL:
- res = guit->misc->cert_verify(query->url, query->data.ssl.certs,
- query->data.ssl.num, cb, cbpw);
- break;
- }
-
- return res;
-}
-
/* exported interface documented in netsurf/netsurf.h */
nserror netsurf_init(const char *store_path)
{
@@ -133,7 +110,6 @@ nserror netsurf_init(const char *store_path)
struct hlcache_parameters hlcache_parameters = {
.bg_clean_time = HL_CACHE_CLEAN_TIME,
.llcache = {
- .cb = netsurf_llcache_query_handler,
.minimum_lifetime = LLCACHE_STORE_MIN_LIFETIME,
.minimum_bandwidth = LLCACHE_STORE_MIN_BANDWIDTH,
.maximum_bandwidth = LLCACHE_STORE_MAX_BANDWIDTH,
@@ -161,6 +137,10 @@ nserror netsurf_init(const char *store_path)
if (ret != NSERROR_OK)
return ret;
+ ret = nscolour_update();
+ if (ret != NSERROR_OK)
+ return ret;
+
/* set up cache limits based on the memory cache size option */
hlcache_parameters.llcache.limit = nsoption_int(memory_cache_size);
@@ -175,10 +155,10 @@ nserror netsurf_init(const char *store_path)
hlcache_parameters.llcache.fetch_attempts = nsoption_uint(max_retried_fetches);
/* image cache is 25% of total memory cache size */
- image_cache_parameters.limit = (hlcache_parameters.llcache.limit * 25) / 100;
+ image_cache_parameters.limit = hlcache_parameters.llcache.limit / 4;
/* image cache hysteresis is 20% of the image cache size */
- image_cache_parameters.hysteresis = (image_cache_parameters.limit * 20) / 100;
+ image_cache_parameters.hysteresis = image_cache_parameters.limit / 5;
/* account for image cache use from total */
hlcache_parameters.llcache.limit -= image_cache_parameters.limit;
@@ -187,10 +167,13 @@ nserror netsurf_init(const char *store_path)
hlcache_parameters.llcache.store.limit = nsoption_uint(disc_cache_size);
/* set backing store hysterissi to 20% */
- hlcache_parameters.llcache.store.hysteresis = (hlcache_parameters.llcache.store.limit * 20) / 100;;
+ hlcache_parameters.llcache.store.hysteresis = hlcache_parameters.llcache.store.limit / 5;
/* set the path to the backing store */
- hlcache_parameters.llcache.store.path = store_path;
+ hlcache_parameters.llcache.store.path =
+ nsoption_charp(disc_cache_path) ?
+ nsoption_charp(disc_cache_path) :
+ store_path;
/* image handler bitmap cache */
ret = image_cache_init(&image_cache_parameters);
@@ -233,6 +216,11 @@ nserror netsurf_init(const char *store_path)
js_initialise();
+ ret = page_info_init();
+ if (ret != NSERROR_OK) {
+ return ret;
+ }
+
return NSERROR_OK;
}
@@ -247,7 +235,10 @@ void netsurf_exit(void)
NSLOG(netsurf, INFO, "Closing GUI");
guit->misc->quit();
-
+
+ NSLOG(netsurf, INFO, "Finalising page-info module");
+ page_info_fini();
+
NSLOG(netsurf, INFO, "Finalising JavaScript");
js_finalise();
@@ -259,6 +250,8 @@ void netsurf_exit(void)
NSLOG(netsurf, INFO, "Closing fetches");
fetcher_quit();
+ /* Now the fetchers are done, our user-agent string can go */
+ free_user_agent_string();
/* dump any remaining cache entries */
image_cache_fini();
@@ -279,6 +272,9 @@ void netsurf_exit(void)
messages_destroy();
corestrings_fini();
+ if (dom_namespace_finalise() != DOM_NO_ERR) {
+ NSLOG(netsurf, WARNING, "Unable to finalise DOM namespace strings");
+ }
NSLOG(netsurf, INFO, "Remaining lwc strings:");
lwc_iterate_strings(netsurf_lwc_iterator, NULL);