diff options
Diffstat (limited to 'render')
-rw-r--r-- | render/directory.c | 4 | ||||
-rw-r--r-- | render/directory.h | 2 | ||||
-rw-r--r-- | render/favicon.c | 2 | ||||
-rw-r--r-- | render/html.c | 44 | ||||
-rw-r--r-- | render/html.h | 2 | ||||
-rw-r--r-- | render/textplain.c | 3 | ||||
-rw-r--r-- | render/textplain.h | 2 |
7 files changed, 20 insertions, 39 deletions
diff --git a/render/directory.c b/render/directory.c index 9f002d831..969b0c5b9 100644 --- a/render/directory.c +++ b/render/directory.c @@ -52,7 +52,7 @@ bool directory_create(struct content *c, const struct http_parameter *params) { return true; } -bool directory_convert(struct content *c, int width, int height) { +bool directory_convert(struct content *c) { char *path; DIR *parent; struct dirent *entry; @@ -135,7 +135,7 @@ bool directory_convert(struct content *c, int width, int height) { (uint8_t *) footer, sizeof(footer) - 1); c->type = CONTENT_HTML; - return html_convert(c, width, height); + return html_convert(c); } void directory_destroy(struct content *c) diff --git a/render/directory.h b/render/directory.h index 766593294..25e5f3281 100644 --- a/render/directory.h +++ b/render/directory.h @@ -31,7 +31,7 @@ struct http_parameter; bool directory_create(struct content *c, const struct http_parameter *params); -bool directory_convert(struct content *c, int width, int height); +bool directory_convert(struct content *c); void directory_destroy(struct content *c); #endif diff --git a/render/favicon.c b/render/favicon.c index 191c55e8a..9f7ad7647 100644 --- a/render/favicon.c +++ b/render/favicon.c @@ -155,7 +155,7 @@ bool favicon_get_icon(struct content *c, xmlNode *html) if (url == NULL) return false; - error = hlcache_handle_retrieve(url, 0, NULL, NULL, c->width, c->height, + error = hlcache_handle_retrieve(url, 0, NULL, NULL, favicon_callback, c, NULL, &c->data.html.favicon); free(url); diff --git a/render/html.c b/render/html.c index 37630c65f..3b3abb782 100644 --- a/render/html.c +++ b/render/html.c @@ -307,20 +307,18 @@ encoding_change: * - stylesheets are fetched * - favicon is retrieved * - the XML tree is converted to a box tree and object fetches are started - * - the box tree is laid out * * On exit, the content status will be either CONTENT_STATUS_DONE if the * document is completely loaded or CONTENT_STATUS_READY if objects are still * being fetched. */ -bool html_convert(struct content *c, int width, int height) +bool html_convert(struct content *c) { binding_error err; xmlNode *html, *head; union content_msg_data msg_data; unsigned long size; - unsigned int time_before, time_taken; struct form *f; /* finish parsing */ @@ -483,21 +481,6 @@ bool html_convert(struct content *c, int width, int height) } /*imagemap_dump(c);*/ - /* layout the box tree */ - html_set_status(c, messages_get("Formatting")); - content_broadcast(c, CONTENT_MSG_STATUS, msg_data); - LOG(("Layout document")); - time_before = wallclock(); - html_reformat(c, width, height); - time_taken = wallclock() - time_before; - LOG(("Layout took %dcs", time_taken)); - c->reformat_time = wallclock() + - ((time_taken < option_min_reflow_period ? - option_min_reflow_period : time_taken * 1.25)); - LOG(("Scheduling relayout no sooner than %dcs", - c->reformat_time - wallclock())); - /*box_dump(stderr, c->data.html.layout->children, 0);*/ - /* Destroy the parser binding */ binding_destroy_tree(c->data.html.parser_binding); c->data.html.parser_binding = NULL; @@ -835,7 +818,7 @@ bool html_find_stylesheets(struct content *c, xmlNode *html) c->active = 0; ns_error = hlcache_handle_retrieve(default_stylesheet_url, 0, - content__get_url(c), NULL, c->width, c->height, + content__get_url(c), NULL, html_convert_css_callback, c, &child, &c->data.html.stylesheets[ STYLESHEET_BASE].data.external); @@ -846,7 +829,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, c->width, c->height, + content__get_url(c), NULL, html_convert_css_callback, c, &child, &c->data.html.stylesheets[ STYLESHEET_QUIRKS].data.external); @@ -858,7 +841,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, c->width, c->height, + content__get_url(c), NULL, html_convert_css_callback, c, &child, &c->data.html.stylesheets[ STYLESHEET_ADBLOCK].data.external); @@ -967,7 +950,6 @@ bool html_find_stylesheets(struct content *c, xmlNode *html) HTML_STYLESHEET_EXTERNAL; ns_error = hlcache_handle_retrieve(url2, 0, content__get_url(c), NULL, - c->width, c->height, html_convert_css_callback, c, &child, &c->data.html.stylesheets[i]. data.external); @@ -1135,7 +1117,7 @@ bool html_process_style_element(struct content *c, unsigned int *index, } /* 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) != CSS_OK) { /* conversion failed */ nscss_destroy_css_data(sheet); talloc_free(sheet); @@ -1264,7 +1246,6 @@ bool html_fetch_object(struct content *c, const char *url, struct box *box, } error = hlcache_handle_retrieve(url2, 0, content__get_url(c), NULL, - available_width, available_height, html_object_callback, c, &child, &c_fetch); @@ -1331,8 +1312,6 @@ 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, - c->data.html.object[i].box->width, - c->data.html.object[i].box->height, html_object_callback, c, &child, &c_fetch); @@ -1509,12 +1488,7 @@ nserror html_object_callback(hlcache_handle *object, (c->status == CONTENT_STATUS_READY || c->status == CONTENT_STATUS_DONE) && (wallclock() > c->reformat_time)) { - unsigned int time_before = wallclock(), time_taken; content__reformat(c, c->available_width, c->height); - time_taken = wallclock() - time_before; - c->reformat_time = wallclock() + - ((time_taken < option_min_reflow_period ? - option_min_reflow_period : time_taken * 1.25)); } return NSERROR_OK; @@ -1724,6 +1698,9 @@ void html_stop(struct content *c) void html_reformat(struct content *c, int width, int height) { struct box *layout; + unsigned int time_before, time_taken; + + time_before = wallclock(); layout_document(c, width, height); layout = c->data.html.layout; @@ -1741,6 +1718,11 @@ void html_reformat(struct content *c, int width, int height) c->width = layout->x + layout->descendant_x1; if (c->height < layout->y + layout->descendant_y1) c->height = layout->y + layout->descendant_y1; + + time_taken = wallclock() - time_before; + c->reformat_time = wallclock() + + ((time_taken < option_min_reflow_period ? + option_min_reflow_period : time_taken * 1.25)); } diff --git a/render/html.h b/render/html.h index 5ce92ba3d..f56cb585e 100644 --- a/render/html.h +++ b/render/html.h @@ -187,7 +187,7 @@ extern bool html_redraw_debug; bool html_create(struct content *c, const struct http_parameter *params); bool html_process_data(struct content *c, char *data, unsigned int size); -bool html_convert(struct content *c, int width, int height); +bool html_convert(struct content *c); void html_reformat(struct content *c, int width, int height); void html_destroy(struct content *c); bool html_fetch_object(struct content *c, const char *url, struct box *box, diff --git a/render/textplain.c b/render/textplain.c index befa9aa50..c259a8b07 100644 --- a/render/textplain.c +++ b/render/textplain.c @@ -197,12 +197,11 @@ no_memory: * Convert a CONTENT_TEXTPLAIN for display. */ -bool textplain_convert(struct content *c, int width, int height) +bool textplain_convert(struct content *c) { iconv_close(c->data.textplain.iconv_cd); c->data.textplain.iconv_cd = 0; - textplain_reformat(c, width, height); c->status = CONTENT_STATUS_DONE; content_set_status(c, messages_get("Done")); diff --git a/render/textplain.h b/render/textplain.h index 50e29c5be..355695a4d 100644 --- a/render/textplain.h +++ b/render/textplain.h @@ -50,7 +50,7 @@ struct content_textplain_data { bool textplain_create(struct content *c, const struct http_parameter *params); bool textplain_process_data(struct content *c, char *data, unsigned int size); -bool textplain_convert(struct content *c, int width, int height); +bool textplain_convert(struct content *c); void textplain_reformat(struct content *c, int width, int height); void textplain_destroy(struct content *c); bool textplain_redraw(struct content *c, int x, int y, |