summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dillorc3
-rw-r--r--src/html.cc5
-rw-r--r--src/prefs.c6
-rw-r--r--src/prefs.h1
-rw-r--r--src/styleengine.cc2
5 files changed, 14 insertions, 3 deletions
diff --git a/dillorc b/dillorc
index 1d595d4f..0916c6f4 100644
--- a/dillorc
+++ b/dillorc
@@ -21,6 +21,9 @@
# Change this if you want to disable loading of CSS stylesheets.
#load_stylesheets=YES
+# Change this if you want to disable parsing of embedded CSS.
+#parse_embedded_css=YES
+
# Change the buffering scheme for drawing
# 0 no double buffering - useful for debugging
# 1 light buffering using a single back buffer for all windows
diff --git a/src/html.cc b/src/html.cc
index c9bcac22..f79f40a2 100644
--- a/src/html.cc
+++ b/src/html.cc
@@ -1654,8 +1654,9 @@ static void Html_tag_open_style(DilloHtml *html, const char *tag, int tagsize)
*/
static void Html_tag_close_style(DilloHtml *html, int TagIdx)
{
- html->styleEngine->parse(html->Stash->str, html->Stash->len,
- 0, CSS_ORIGIN_AUTHOR);
+ if (prefs.parse_embedded_css)
+ html->styleEngine->parse(html->Stash->str, html->Stash->len,
+ 0, CSS_ORIGIN_AUTHOR);
}
/*
diff --git a/src/prefs.c b/src/prefs.c
index 34d13db8..f7c286f8 100644
--- a/src/prefs.c
+++ b/src/prefs.c
@@ -79,6 +79,7 @@ typedef enum {
DRC_TOKEN_MIDDLE_CLICK_OPENS_NEW_TAB,
DRC_TOKEN_NOPROXY,
DRC_TOKEN_PANEL_SIZE,
+ DRC_TOKEN_PARSE_EMBEDDED_CSS,
DRC_TOKEN_PROXY,
DRC_TOKEN_PROXYUSER,
DRC_TOKEN_REFERER,
@@ -146,6 +147,7 @@ static const SymNode_t symbols[] = {
{ "middle_click_opens_new_tab", DRC_TOKEN_MIDDLE_CLICK_OPENS_NEW_TAB },
{ "no_proxy", DRC_TOKEN_NOPROXY },
{ "panel_size", DRC_TOKEN_PANEL_SIZE },
+ { "parse_embedded_css", DRC_TOKEN_PARSE_EMBEDDED_CSS },
{ "save_dir", DRC_TOKEN_SAVE_DIR },
{ "search_url", DRC_TOKEN_SEARCH_URL },
{ "show_back", DRC_TOKEN_SHOW_BACK },
@@ -264,6 +266,9 @@ static int Prefs_parse_pair(char *name, char *value)
else /* default to "medium" */
prefs.panel_size = P_medium;
break;
+ case DRC_TOKEN_PARSE_EMBEDDED_CSS:
+ prefs.parse_embedded_css = (strcmp(value, "YES") == 0);
+ break;
case DRC_TOKEN_SMALL_ICONS:
prefs.small_icons = (strcmp(value, "YES") == 0);
break;
@@ -463,6 +468,7 @@ void a_Prefs_init(void)
prefs.fullwindow_start=FALSE;
prefs.load_images=TRUE;
prefs.load_stylesheets=TRUE;
+ prefs.parse_embedded_css=TRUE;
prefs.buffered_drawing=1;
prefs.vw_fontname = dStrdup(D_VW_FONTNAME);
prefs.fw_fontname = dStrdup(D_FW_FONTNAME);
diff --git a/src/prefs.h b/src/prefs.h
index 9156c815..767530d2 100644
--- a/src/prefs.h
+++ b/src/prefs.h
@@ -59,6 +59,7 @@ struct _DilloPrefs {
bool_t fullwindow_start;
bool_t load_images;
bool_t load_stylesheets;
+ bool_t parse_embedded_css;
int32_t buffered_drawing;
char *vw_fontname;
char *fw_fontname;
diff --git a/src/styleengine.cc b/src/styleengine.cc
index fd160f29..4e234a3c 100644
--- a/src/styleengine.cc
+++ b/src/styleengine.cc
@@ -405,7 +405,7 @@ Style * StyleEngine::style0 (CssPropertyList *nonCssProperties) {
stack->getRef (stack->size () - 2)->style->backgroundColor;
// parse style information from style="" attribute, if it exists
- if (styleAttribute)
+ if (styleAttribute && prefs.parse_embedded_css)
styleAttributeProps =
a_Css_parse_declaration (styleAttribute, strlen (styleAttribute));