diff options
author | John Mark Bell <jmb@netsurf-browser.org> | 2010-04-04 17:17:24 +0000 |
---|---|---|
committer | John Mark Bell <jmb@netsurf-browser.org> | 2010-04-04 17:17:24 +0000 |
commit | 69f02e926f746b31500f46572d606fdc482ff0cb (patch) | |
tree | 438e52c0db585579cb75afcb0e3d59c9a777b4cb /render | |
parent | 487d4c3ae384fafded41ee0b4203bd82f5268b57 (diff) | |
download | netsurf-69f02e926f746b31500f46572d606fdc482ff0cb.tar.gz netsurf-69f02e926f746b31500f46572d606fdc482ff0cb.tar.bz2 |
Make the high-level cache drop contents of unacceptable type on the floor.
svn path=/trunk/netsurf/; revision=10238
Diffstat (limited to 'render')
-rw-r--r-- | render/favicon.c | 33 | ||||
-rw-r--r-- | render/html.c | 11 |
2 files changed, 21 insertions, 23 deletions
diff --git a/render/favicon.c b/render/favicon.c index 06ff0b94f..d1eaaacdd 100644 --- a/render/favicon.c +++ b/render/favicon.c @@ -148,6 +148,18 @@ char *favicon_get_icon_ref(struct content *c, xmlNode *html) bool favicon_get_icon(struct content *c, xmlNode *html) { + static const content_type permitted_types[] = { +#ifdef WITH_BMP + CONTENT_ICO, +#endif +#if defined(WITH_MNG) || defined(WITH_PNG) + CONTENT_PNG, +#endif +#ifdef WITH_GIF + CONTENT_GIF, +#endif + CONTENT_UNKNOWN + }; char *url; nserror error; @@ -157,7 +169,7 @@ bool favicon_get_icon(struct content *c, xmlNode *html) error = hlcache_handle_retrieve(url, LLCACHE_RETRIEVE_NO_ERROR_PAGES, content__get_url(c), NULL, favicon_callback, c, NULL, - &c->data.html.favicon); + permitted_types, &c->data.html.favicon); free(url); @@ -171,29 +183,12 @@ bool favicon_get_icon(struct content *c, xmlNode *html) nserror favicon_callback(hlcache_handle *icon, const hlcache_event *event, void *pw) { - static const content_type permitted_types[] = { -#ifdef WITH_BMP - CONTENT_ICO, -#endif -#if defined(WITH_MNG) || defined(WITH_PNG) - CONTENT_PNG, -#endif -#ifdef WITH_GIF - CONTENT_GIF, -#endif - CONTENT_UNKNOWN - }; struct content *c = pw; - const content_type *type; switch (event->type) { case CONTENT_MSG_LOADING: /* check that the favicon is really a correct image type */ - for (type = permitted_types; *type != CONTENT_UNKNOWN; type++) - if (content_get_type(icon) == *type) - break; - - if (*type == CONTENT_UNKNOWN) { + if (content_get_type(icon) == CONTENT_UNKNOWN) { union content_msg_data msg_data; LOG(("%s is not a favicon", content_get_url(icon))); diff --git a/render/html.c b/render/html.c index 2ead62fc3..f50146d95 100644 --- a/render/html.c +++ b/render/html.c @@ -783,6 +783,7 @@ bool html_meta_refresh(struct content *c, xmlNode *head) bool html_find_stylesheets(struct content *c, xmlNode *html) { + static const content_type accept[] = { CONTENT_CSS, CONTENT_UNKNOWN }; xmlNode *node; char *rel, *type, *media, *href, *url, *url2; unsigned int i = STYLESHEET_START; @@ -819,7 +820,7 @@ bool html_find_stylesheets(struct content *c, xmlNode *html) ns_error = hlcache_handle_retrieve(default_stylesheet_url, 0, content__get_url(c), NULL, - html_convert_css_callback, c, &child, + html_convert_css_callback, c, &child, accept, &c->data.html.stylesheets[ STYLESHEET_BASE].data.external); if (ns_error != NSERROR_OK) @@ -830,7 +831,7 @@ bool html_find_stylesheets(struct content *c, xmlNode *html) if (c->data.html.quirks == BINDING_QUIRKS_MODE_FULL) { ns_error = hlcache_handle_retrieve(quirks_stylesheet_url, 0, content__get_url(c), NULL, - html_convert_css_callback, c, &child, + html_convert_css_callback, c, &child, accept, &c->data.html.stylesheets[ STYLESHEET_QUIRKS].data.external); if (ns_error != NSERROR_OK) @@ -842,7 +843,7 @@ bool html_find_stylesheets(struct content *c, xmlNode *html) if (option_block_ads) { ns_error = hlcache_handle_retrieve(adblock_stylesheet_url, 0, content__get_url(c), NULL, - html_convert_css_callback, c, &child, + html_convert_css_callback, c, &child, accept, &c->data.html.stylesheets[ STYLESHEET_ADBLOCK].data.external); if (ns_error != NSERROR_OK) @@ -951,6 +952,7 @@ bool html_find_stylesheets(struct content *c, xmlNode *html) ns_error = hlcache_handle_retrieve(url2, 0, content__get_url(c), NULL, html_convert_css_callback, c, &child, + accept, &c->data.html.stylesheets[i]. data.external); @@ -1246,7 +1248,7 @@ bool html_fetch_object(struct content *c, const char *url, struct box *box, } error = hlcache_handle_retrieve(url2, 0, content__get_url(c), NULL, - html_object_callback, c, &child, + html_object_callback, c, &child, permitted_types, &c_fetch); /* No longer need normalized url */ @@ -1313,6 +1315,7 @@ bool html_replace_object(struct content *c, unsigned int i, const char *url) /* initialise fetch */ error = hlcache_handle_retrieve(url2, 0, content__get_url(c), NULL, html_object_callback, c, &child, + c->data.html.object[i].permitted_types, &c_fetch); free(url2); |