diff options
-rw-r--r-- | content/handlers/css/hints.c | 4 | ||||
-rw-r--r-- | content/handlers/html/box_construct.c | 13 | ||||
-rw-r--r-- | content/handlers/html/css.c | 5 | ||||
-rw-r--r-- | desktop/options.h | 3 |
4 files changed, 20 insertions, 5 deletions
diff --git a/content/handlers/css/hints.c b/content/handlers/css/hints.c index defeae10a..286befab9 100644 --- a/content/handlers/css/hints.c +++ b/content/handlers/css/hints.c @@ -1587,6 +1587,10 @@ static void css_hint_list( dom_exception err; dom_string *attr; + if (nsoption_bool(author_level_css) == false) { + return; + } + err = dom_element_get_attribute(node, corestring_dom_type, &attr); if (err == DOM_NO_ERR && attr != NULL) { const char *attr_str = dom_string_data(attr); diff --git a/content/handlers/html/box_construct.c b/content/handlers/html/box_construct.c index eeadb8453..8519c2b1d 100644 --- a/content/handlers/html/box_construct.c +++ b/content/handlers/html/box_construct.c @@ -249,16 +249,19 @@ box_get_style(html_content *c, const css_computed_style *root_style, dom_node *n) { - dom_string *s; - dom_exception err; + dom_string *s = NULL; css_stylesheet *inline_style = NULL; css_select_results *styles; nscss_select_ctx ctx; /* Firstly, construct inline stylesheet, if any */ - err = dom_element_get_attribute(n, corestring_dom_style, &s); - if (err != DOM_NO_ERR) - return NULL; + if (nsoption_bool(author_level_css)) { + dom_exception err; + err = dom_element_get_attribute(n, corestring_dom_style, &s); + if (err != DOM_NO_ERR) { + return NULL; + } + } if (s != NULL) { inline_style = nscss_create_inline_style( diff --git a/content/handlers/html/css.c b/content/handlers/html/css.c index be17ac852..69d54580c 100644 --- a/content/handlers/html/css.c +++ b/content/handlers/html/css.c @@ -683,6 +683,11 @@ html_css_new_selection_context(html_content *c, css_select_ctx **ret_select_ctx) origin = CSS_ORIGIN_USER; } + if (origin == CSS_ORIGIN_AUTHOR && + nsoption_bool(author_level_css) == false) { + continue; + } + if (hsheet->sheet != NULL) { sheet = nscss_get_stylesheet(hsheet->sheet); } diff --git a/desktop/options.h b/desktop/options.h index a12275ef7..b74fab829 100644 --- a/desktop/options.h +++ b/desktop/options.h @@ -123,6 +123,9 @@ NSOPTION_BOOL(animate_images, true) /** Whether to execute javascript */ NSOPTION_BOOL(enable_javascript, false) +/** Whether to allow Author level CSS. */ +NSOPTION_BOOL(author_level_css, true) + /** Maximum time (in seconds) to wait for a script to run */ NSOPTION_INTEGER(script_timeout, 10) |