r10033 jmb - in /branches/jmb/new-cache: content/ css/ image/
render/
netsurf at semichrome.net
netsurf at semichrome.net
Sat Feb 13 12:24:21 GMT 2010
Author: jmb
Date: Sat Feb 13 06:24:21 2010
New Revision: 10033
URL: http://source.netsurf-browser.org?rev=10033&view=rev
Log:
Remove parent content pointer from _create callback API.
Remove dictionary from content_css_data: this is redundant as there's one in the containing content.
Modified:
branches/jmb/new-cache/content/content.c
branches/jmb/new-cache/css/css.c
branches/jmb/new-cache/css/css.h
branches/jmb/new-cache/image/bmp.c
branches/jmb/new-cache/image/bmp.h
branches/jmb/new-cache/image/gif.c
branches/jmb/new-cache/image/gif.h
branches/jmb/new-cache/image/ico.c
branches/jmb/new-cache/image/ico.h
branches/jmb/new-cache/image/mng.c
branches/jmb/new-cache/image/mng.h
branches/jmb/new-cache/image/png.c
branches/jmb/new-cache/image/png.h
branches/jmb/new-cache/image/rsvg.c
branches/jmb/new-cache/image/rsvg.h
branches/jmb/new-cache/image/svg.c
branches/jmb/new-cache/image/svg.h
branches/jmb/new-cache/render/directory.c
branches/jmb/new-cache/render/directory.h
branches/jmb/new-cache/render/html.c
branches/jmb/new-cache/render/html.h
branches/jmb/new-cache/render/textplain.c
branches/jmb/new-cache/render/textplain.h
Modified: branches/jmb/new-cache/content/content.c
URL: http://source.netsurf-browser.org/branches/jmb/new-cache/content/content.c?rev=10033&r1=10032&r2=10033&view=diff
==============================================================================
--- branches/jmb/new-cache/content/content.c (original)
+++ branches/jmb/new-cache/content/content.c Sat Feb 13 06:24:21 2010
@@ -245,8 +245,7 @@
/** An entry in handler_map. */
struct handler_entry {
- bool (*create)(struct content *c, struct content *parent,
- const char *params[]);
+ bool (*create)(struct content *c, const char *params[]);
bool (*process_data)(struct content *c, char *data, unsigned int size);
bool (*convert)(struct content *c, int width, int height);
void (*reformat)(struct content *c, int width, int height);
@@ -499,7 +498,7 @@
c->status = CONTENT_STATUS_LOADING;
if (handler_map[type].create) {
- if (!handler_map[type].create(c, parent, params)) {
+ if (!handler_map[type].create(c, params)) {
c->type = CONTENT_UNKNOWN;
c->status = CONTENT_STATUS_ERROR;
return false;
Modified: branches/jmb/new-cache/css/css.c
URL: http://source.netsurf-browser.org/branches/jmb/new-cache/css/css.c?rev=10033&r1=10032&r2=10033&view=diff
==============================================================================
--- branches/jmb/new-cache/css/css.c (original)
+++ branches/jmb/new-cache/css/css.c Sat Feb 13 06:24:21 2010
@@ -49,27 +49,21 @@
* Initialise a CSS content
*
* \param c Content to initialise
- * \param parent Parent content, or NULL if top-level
* \param params Content-Type parameters
* \return true on success, false on failure
*/
-bool nscss_create(struct content *c, struct content *parent,
- const char *params[])
+bool nscss_create(struct content *c, const char *params[])
{
const char *charset = NULL;
css_origin origin = CSS_ORIGIN_AUTHOR;
uint64_t media = CSS_MEDIA_ALL;
- lwc_context *dict = NULL;
- bool quirks = true;
uint32_t i;
union content_msg_data msg_data;
- css_error error;
/** \todo what happens about the allocator? */
/** \todo proper error reporting */
/* Find charset specified on HTTP layer, if any */
- /** \todo What happens if there isn't one and parent content exists? */
for (i = 0; params[i] != NULL; i += 2) {
if (strcasecmp(params[i], "charset") == 0) {
charset = params[i + 1];
@@ -77,73 +71,14 @@
}
}
- if (parent != NULL) {
- assert(parent->type == CONTENT_HTML ||
- parent->type == CONTENT_CSS);
-
- if (parent->type == CONTENT_HTML) {
- assert(parent->data.html.dict != NULL);
-
-//newcache
-#if 0
- if (c == parent->data.html.
- stylesheets[STYLESHEET_BASE].c ||
- c == parent->data.html.
- stylesheets[STYLESHEET_QUIRKS].c ||
- c == parent->data.html.
- stylesheets[STYLESHEET_ADBLOCK].c)
- origin = CSS_ORIGIN_UA;
-
- quirks = (parent->data.html.quirks !=
- BINDING_QUIRKS_MODE_NONE);
-
- for (i = 0; i < parent->data.html.stylesheet_count;
- i++) {
- if (parent->data.html.stylesheets[i].c == c) {
- media = parent->data.html.
- stylesheets[i].media;
- break;
- }
- }
-#endif
-
- dict = parent->data.html.dict;
- } else {
- assert(parent->data.css.sheet != NULL);
- assert(parent->data.css.dict != NULL);
-
- error = css_stylesheet_get_origin(
- parent->data.css.sheet, &origin);
- if (error != CSS_OK) {
- msg_data.error = "?";
- content_broadcast(c, CONTENT_MSG_ERROR,
- msg_data);
- return false;
- }
-
- error = css_stylesheet_quirks_allowed(
- parent->data.css.sheet, &quirks);
- if (error != CSS_OK) {
- msg_data.error = "?";
- content_broadcast(c, CONTENT_MSG_ERROR,
- msg_data);
- return false;
- }
-
- for (i = 0; i < parent->data.css.import_count; i++) {
- if (parent->data.css.imports[i].c == c) {
- media = parent->data.css.
- imports[i].media;
- break;
- }
- }
-
- dict = parent->data.css.dict;
- }
- }
-
- if (nscss_create_css_data(&c->data.css, dict, content_get_url(c),
- charset, origin, media, quirks) != NSERROR_OK) {
+ if (charset == NULL) {
+ /* No charset specified, use fallback, if any */
+ /** \todo libcss will take this as gospel, which is wrong */
+ charset = c->fallback_charset;
+ }
+
+ if (nscss_create_css_data(&c->data.css, c->dict, content_get_url(c),
+ charset, origin, media, c->quirks) != NSERROR_OK) {
msg_data.error = messages_get("NoMemory");
content_broadcast(c, CONTENT_MSG_ERROR, msg_data);
return false;
@@ -170,28 +105,15 @@
{
css_error error;
- if (dict == NULL) {
- lwc_error lerror = lwc_create_context(myrealloc, NULL, &dict);
-
- if (lerror != lwc_error_ok) {
- return NSERROR_NOMEM;
- }
- }
-
- c->dict = lwc_context_ref(dict);
c->import_count = 0;
c->imports = NULL;
error = css_stylesheet_create(CSS_LEVEL_21, charset,
- url, NULL, origin, media, quirks, false,
- c->dict,
+ url, NULL, origin, media, quirks, false, dict,
myrealloc, NULL,
nscss_resolve_url, NULL,
&c->sheet);
if (error != CSS_OK) {
- lwc_context_unref(c->dict);
- c->dict = NULL;
-
return NSERROR_NOMEM;
}
@@ -250,7 +172,7 @@
size_t size;
css_error error;
- error = nscss_convert_css_data(&c->data.css, w, h);
+ error = nscss_convert_css_data(&c->data.css, w, h, c->dict);
if (error != CSS_OK) {
msg_data.error = "?";
content_broadcast(c, CONTENT_MSG_ERROR, msg_data);
@@ -299,12 +221,14 @@
/**
* Convert CSS data ready for use
*
- * \param c CSS data to convert
- * \param w Width of area content will be displayed in
- * \param h Height of area content will be displayed in
+ * \param c CSS data to convert
+ * \param w Width of area content will be displayed in
+ * \param h Height of area content will be displayed in
+ * \param dict String internment context
* \return CSS error
*/
-css_error nscss_convert_css_data(struct content_css_data *c, int w, int h)
+css_error nscss_convert_css_data(struct content_css_data *c, int w, int h,
+ lwc_context *dict)
{
uint32_t i = 0;
css_error error;
@@ -371,7 +295,7 @@
} else {
error = css_stylesheet_create(CSS_LEVEL_DEFAULT,
NULL, "", NULL, CSS_ORIGIN_AUTHOR,
- media, false, false, c->dict,
+ media, false, false, dict,
myrealloc, NULL,
nscss_resolve_url, NULL,
&sheet);
@@ -423,11 +347,6 @@
if (c->sheet != NULL) {
css_stylesheet_destroy(c->sheet);
c->sheet = NULL;
- }
-
- if (c->dict != NULL) {
- lwc_context_unref(c->dict);
- c->dict = NULL;
}
}
Modified: branches/jmb/new-cache/css/css.h
URL: http://source.netsurf-browser.org/branches/jmb/new-cache/css/css.h?rev=10033&r1=10032&r2=10033&view=diff
==============================================================================
--- branches/jmb/new-cache/css/css.h (original)
+++ branches/jmb/new-cache/css/css.h Sat Feb 13 06:24:21 2010
@@ -33,8 +33,6 @@
*/
struct content_css_data
{
- lwc_context *dict; /**< Dictionary to intern strings in */
-
css_stylesheet *sheet; /**< Stylesheet object */
uint32_t import_count; /**< Number of sheets imported */
@@ -49,8 +47,7 @@
uint64_t media; /**< Media types that sheet applies to */
};
-bool nscss_create(struct content *c, struct content *parent,
- const char *params[]);
+bool nscss_create(struct content *c, const char *params[]);
bool nscss_process_data(struct content *c, char *data, unsigned int size);
@@ -63,7 +60,8 @@
uint64_t media, bool quirks);
css_error nscss_process_css_data(struct content_css_data *c, char *data,
unsigned int size);
-css_error nscss_convert_css_data(struct content_css_data *c, int w, int h);
+css_error nscss_convert_css_data(struct content_css_data *c, int w, int h,
+ lwc_context *dict);
void nscss_destroy_css_data(struct content_css_data *c);
struct nscss_import *nscss_get_imports(struct content *c, uint32_t *n);
Modified: branches/jmb/new-cache/image/bmp.c
URL: http://source.netsurf-browser.org/branches/jmb/new-cache/image/bmp.c?rev=10033&r1=10032&r2=10033&view=diff
==============================================================================
--- branches/jmb/new-cache/image/bmp.c (original)
+++ branches/jmb/new-cache/image/bmp.c Sat Feb 13 06:24:21 2010
@@ -49,8 +49,7 @@
.bitmap_get_bpp = bitmap_get_bpp
};
-bool nsbmp_create(struct content *c, struct content *parent,
- const char *params[])
+bool nsbmp_create(struct content *c, const char *params[])
{
union content_msg_data msg_data;
Modified: branches/jmb/new-cache/image/bmp.h
URL: http://source.netsurf-browser.org/branches/jmb/new-cache/image/bmp.h?rev=10033&r1=10032&r2=10033&view=diff
==============================================================================
--- branches/jmb/new-cache/image/bmp.h (original)
+++ branches/jmb/new-cache/image/bmp.h Sat Feb 13 06:24:21 2010
@@ -40,8 +40,7 @@
extern bmp_bitmap_callback_vt bmp_bitmap_callbacks; /** Only to be used by ICO code. */
-bool nsbmp_create(struct content *c, struct content *parent,
- const char *params[]);
+bool nsbmp_create(struct content *c, const char *params[]);
bool nsbmp_convert(struct content *c, int width, int height);
void nsbmp_destroy(struct content *c);
bool nsbmp_redraw(struct content *c, int x, int y,
Modified: branches/jmb/new-cache/image/gif.c
URL: http://source.netsurf-browser.org/branches/jmb/new-cache/image/gif.c?rev=10033&r1=10032&r2=10033&view=diff
==============================================================================
--- branches/jmb/new-cache/image/gif.c (original)
+++ branches/jmb/new-cache/image/gif.c Sat Feb 13 06:24:21 2010
@@ -64,8 +64,7 @@
};
-bool nsgif_create(struct content *c, struct content *parent,
- const char *params[])
+bool nsgif_create(struct content *c, const char *params[])
{
union content_msg_data msg_data;
/* Initialise our data structure */
Modified: branches/jmb/new-cache/image/gif.h
URL: http://source.netsurf-browser.org/branches/jmb/new-cache/image/gif.h?rev=10033&r1=10032&r2=10033&view=diff
==============================================================================
--- branches/jmb/new-cache/image/gif.h (original)
+++ branches/jmb/new-cache/image/gif.h Sat Feb 13 06:24:21 2010
@@ -37,8 +37,7 @@
int current_frame; /**< current frame to display [0...(max-1)] */
};
-bool nsgif_create(struct content *c, struct content *parent,
- const char *params[]);
+bool nsgif_create(struct content *c, const char *params[]);
bool nsgif_convert(struct content *c, int width, int height);
void nsgif_destroy(struct content *c);
bool nsgif_redraw(struct content *c, int x, int y,
Modified: branches/jmb/new-cache/image/ico.c
URL: http://source.netsurf-browser.org/branches/jmb/new-cache/image/ico.c?rev=10033&r1=10032&r2=10033&view=diff
==============================================================================
--- branches/jmb/new-cache/image/ico.c (original)
+++ branches/jmb/new-cache/image/ico.c Sat Feb 13 06:24:21 2010
@@ -37,8 +37,7 @@
#include "utils/messages.h"
#include "utils/utils.h"
-bool nsico_create(struct content *c, struct content *parent,
- const char *params[])
+bool nsico_create(struct content *c, const char *params[])
{
union content_msg_data msg_data;
c->data.ico.ico = calloc(sizeof(ico_collection), 1);
Modified: branches/jmb/new-cache/image/ico.h
URL: http://source.netsurf-browser.org/branches/jmb/new-cache/image/ico.h?rev=10033&r1=10032&r2=10033&view=diff
==============================================================================
--- branches/jmb/new-cache/image/ico.h (original)
+++ branches/jmb/new-cache/image/ico.h Sat Feb 13 06:24:21 2010
@@ -35,8 +35,7 @@
struct ico_collection *ico; /** ICO collection data */
};
-bool nsico_create(struct content *c, struct content *parent,
- const char *params[]);
+bool nsico_create(struct content *c, const char *params[]);
bool nsico_convert(struct content *c, int width, int height);
void nsico_destroy(struct content *c);
bool nsico_redraw(struct content *c, int x, int y,
Modified: branches/jmb/new-cache/image/mng.c
URL: http://source.netsurf-browser.org/branches/jmb/new-cache/image/mng.c?rev=10033&r1=10032&r2=10033&view=diff
==============================================================================
--- branches/jmb/new-cache/image/mng.c (original)
+++ branches/jmb/new-cache/image/mng.c Sat Feb 13 06:24:21 2010
@@ -69,8 +69,7 @@
#endif
-bool nsmng_create(struct content *c, struct content *parent,
- const char *params[])
+bool nsmng_create(struct content *c, const char *params[])
{
mng_retcode code;
union content_msg_data msg_data;
Modified: branches/jmb/new-cache/image/mng.h
URL: http://source.netsurf-browser.org/branches/jmb/new-cache/image/mng.h?rev=10033&r1=10032&r2=10033&view=diff
==============================================================================
--- branches/jmb/new-cache/image/mng.h (original)
+++ branches/jmb/new-cache/image/mng.h Sat Feb 13 06:24:21 2010
@@ -40,8 +40,7 @@
void *handle;
};
-bool nsmng_create(struct content *c, struct content *parent,
- const char *params[]);
+bool nsmng_create(struct content *c, const char *params[]);
bool nsmng_process_data(struct content *c, char *data, unsigned int size);
bool nsmng_convert(struct content *c, int width, int height);
void nsmng_destroy(struct content *c);
Modified: branches/jmb/new-cache/image/png.c
URL: http://source.netsurf-browser.org/branches/jmb/new-cache/image/png.c?rev=10033&r1=10032&r2=10033&view=diff
==============================================================================
--- branches/jmb/new-cache/image/png.c (original)
+++ branches/jmb/new-cache/image/png.c Sat Feb 13 06:24:21 2010
@@ -51,8 +51,7 @@
static void end_callback(png_structp png, png_infop info);
-bool nspng_create(struct content *c, struct content *parent,
- const char *params[])
+bool nspng_create(struct content *c, const char *params[])
{
union content_msg_data msg_data;
Modified: branches/jmb/new-cache/image/png.h
URL: http://source.netsurf-browser.org/branches/jmb/new-cache/image/png.h?rev=10033&r1=10032&r2=10033&view=diff
==============================================================================
--- branches/jmb/new-cache/image/png.h (original)
+++ branches/jmb/new-cache/image/png.h Sat Feb 13 06:24:21 2010
@@ -41,8 +41,7 @@
size_t rowbytes; /**< Number of bytes per row */
};
-bool nspng_create(struct content *c, struct content *parent,
- const char *params[]);
+bool nspng_create(struct content *c, const char *params[]);
bool nspng_process_data(struct content *c, char *data, unsigned int size);
bool nspng_convert(struct content *c, int width, int height);
void nspng_destroy(struct content *c);
Modified: branches/jmb/new-cache/image/rsvg.c
URL: http://source.netsurf-browser.org/branches/jmb/new-cache/image/rsvg.c?rev=10033&r1=10032&r2=10033&view=diff
==============================================================================
--- branches/jmb/new-cache/image/rsvg.c (original)
+++ branches/jmb/new-cache/image/rsvg.c Sat Feb 13 06:24:21 2010
@@ -49,8 +49,7 @@
static inline void rsvg_argb_to_abgr(uint32_t pixels[], int width, int height,
size_t rowstride);
-bool rsvg_create(struct content *c, struct content *parent,
- const char *params[])
+bool rsvg_create(struct content *c, const char *params[])
{
struct content_rsvg_data *d = &c->data.rsvg;
union content_msg_data msg_data;
Modified: branches/jmb/new-cache/image/rsvg.h
URL: http://source.netsurf-browser.org/branches/jmb/new-cache/image/rsvg.h?rev=10033&r1=10032&r2=10033&view=diff
==============================================================================
--- branches/jmb/new-cache/image/rsvg.h (original)
+++ branches/jmb/new-cache/image/rsvg.h Sat Feb 13 06:24:21 2010
@@ -41,8 +41,7 @@
struct bitmap *bitmap; /**< Created NetSurf bitmap */
};
-bool rsvg_create(struct content *c, struct content *parent,
- const char *params[]);
+bool rsvg_create(struct content *c, const char *params[]);
bool rsvg_process_data(struct content *c, char *data, unsigned int size);
bool rsvg_convert(struct content *c, int width, int height);
void rsvg_destroy(struct content *c);
Modified: branches/jmb/new-cache/image/svg.c
URL: http://source.netsurf-browser.org/branches/jmb/new-cache/image/svg.c?rev=10033&r1=10032&r2=10033&view=diff
==============================================================================
--- branches/jmb/new-cache/image/svg.c (original)
+++ branches/jmb/new-cache/image/svg.c Sat Feb 13 06:24:21 2010
@@ -40,7 +40,7 @@
* Create a CONTENT_SVG.
*/
-bool svg_create(struct content *c, struct content *parent, const char *params[])
+bool svg_create(struct content *c, const char *params[])
{
union content_msg_data msg_data;
Modified: branches/jmb/new-cache/image/svg.h
URL: http://source.netsurf-browser.org/branches/jmb/new-cache/image/svg.h?rev=10033&r1=10032&r2=10033&view=diff
==============================================================================
--- branches/jmb/new-cache/image/svg.h (original)
+++ branches/jmb/new-cache/image/svg.h Sat Feb 13 06:24:21 2010
@@ -32,8 +32,7 @@
struct svgtiny_diagram *diagram;
};
-bool svg_create(struct content *c, struct content *parent,
- const char *params[]);
+bool svg_create(struct content *c, const char *params[]);
bool svg_convert(struct content *c, int width, int height);
void svg_destroy(struct content *c);
bool svg_redraw(struct content *c, int x, int y,
Modified: branches/jmb/new-cache/render/directory.c
URL: http://source.netsurf-browser.org/branches/jmb/new-cache/render/directory.c?rev=10033&r1=10032&r2=10033&view=diff
==============================================================================
--- branches/jmb/new-cache/render/directory.c (original)
+++ branches/jmb/new-cache/render/directory.c Sat Feb 13 06:24:21 2010
@@ -40,9 +40,8 @@
static const char footer[] = "</pre>\n</body>\n</html>\n";
-bool directory_create(struct content *c, struct content *parent,
- const char *params[]) {
- if (!html_create(c, parent, params))
+bool directory_create(struct content *c, const char *params[]) {
+ if (!html_create(c, params))
/* html_create() must have broadcast MSG_ERROR already, so we
* don't need to. */
return false;
Modified: branches/jmb/new-cache/render/directory.h
URL: http://source.netsurf-browser.org/branches/jmb/new-cache/render/directory.h?rev=10033&r1=10032&r2=10033&view=diff
==============================================================================
--- branches/jmb/new-cache/render/directory.h (original)
+++ branches/jmb/new-cache/render/directory.h Sat Feb 13 06:24:21 2010
@@ -29,8 +29,7 @@
#include "content/content_type.h"
-bool directory_create(struct content *c, struct content *parent,
- const char *params[]);
+bool directory_create(struct content *c, const char *params[]);
bool directory_convert(struct content *c, int width, int height);
void directory_destroy(struct content *c);
Modified: branches/jmb/new-cache/render/html.c
URL: http://source.netsurf-browser.org/branches/jmb/new-cache/render/html.c?rev=10033&r1=10032&r2=10033&view=diff
==============================================================================
--- branches/jmb/new-cache/render/html.c (original)
+++ branches/jmb/new-cache/render/html.c Sat Feb 13 06:24:21 2010
@@ -113,8 +113,7 @@
* created.
*/
-bool html_create(struct content *c, struct content *parent,
- const char *params[])
+bool html_create(struct content *c, const char *params[])
{
unsigned int i;
struct content_html_data *html = &c->data.html;
@@ -1141,7 +1140,8 @@
}
/* Convert the content -- manually, as we want the result */
- if (nscss_convert_css_data(sheet, c->width, c->height) != CSS_OK) {
+ if (nscss_convert_css_data(sheet, c->width, c->height,
+ c->data.html.dict) != CSS_OK) {
/* conversion failed */
nscss_destroy_css_data(sheet);
talloc_free(sheet);
Modified: branches/jmb/new-cache/render/html.h
URL: http://source.netsurf-browser.org/branches/jmb/new-cache/render/html.h?rev=10033&r1=10032&r2=10033&view=diff
==============================================================================
--- branches/jmb/new-cache/render/html.h (original)
+++ branches/jmb/new-cache/render/html.h Sat Feb 13 06:24:21 2010
@@ -185,8 +185,7 @@
extern bool html_redraw_debug;
-bool html_create(struct content *c, struct content *parent,
- const char *params[]);
+bool html_create(struct content *c, const char *params[]);
bool html_process_data(struct content *c, char *data, unsigned int size);
bool html_convert(struct content *c, int width, int height);
void html_reformat(struct content *c, int width, int height);
Modified: branches/jmb/new-cache/render/textplain.c
URL: http://source.netsurf-browser.org/branches/jmb/new-cache/render/textplain.c?rev=10033&r1=10032&r2=10033&view=diff
==============================================================================
--- branches/jmb/new-cache/render/textplain.c (original)
+++ branches/jmb/new-cache/render/textplain.c Sat Feb 13 06:24:21 2010
@@ -72,8 +72,7 @@
* Create a CONTENT_TEXTPLAIN.
*/
-bool textplain_create(struct content *c, struct content *parent,
- const char *params[])
+bool textplain_create(struct content *c, const char *params[])
{
unsigned int i;
char *utf8_data;
Modified: branches/jmb/new-cache/render/textplain.h
URL: http://source.netsurf-browser.org/branches/jmb/new-cache/render/textplain.h?rev=10033&r1=10032&r2=10033&view=diff
==============================================================================
--- branches/jmb/new-cache/render/textplain.h (original)
+++ branches/jmb/new-cache/render/textplain.h Sat Feb 13 06:24:21 2010
@@ -46,8 +46,7 @@
int formatted_width;
};
-bool textplain_create(struct content *c, struct content *parent,
- const char *params[]);
+bool textplain_create(struct content *c, const char *params[]);
bool textplain_process_data(struct content *c, char *data, unsigned int size);
bool textplain_convert(struct content *c, int width, int height);
void textplain_reformat(struct content *c, int width, int height);
More information about the netsurf-commits
mailing list