summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--content/handlers/css/hints.c4
-rw-r--r--content/handlers/html/box_construct.c13
-rw-r--r--content/handlers/html/css.c5
-rw-r--r--desktop/options.h3
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)