Commit 256119a5 authored by Link Mauve's avatar Link Mauve

Add an option to disable CSS parsing.

Fixes #3340.
parent 8af1a39d
......@@ -166,6 +166,10 @@ use_bookmarks_method =
# colored text for example.
#enable_xhtml_im = true
# If XHTML-IM is enabled, you may want to reject style parsing, to keep
# only semantic elements formatting.
#enable_css_parsing = true
# Stream Management (XEP-0198) is an extension designed to improve
# the reliability of XMPP in unreliable network conditions (such
# as mobile networks). It can however increase bandwidth usage.
......
......@@ -52,6 +52,7 @@ DEFAULT_CONFIG = {
'display_user_color_in_join_part': True,
'enable_avatars': False,
'enable_carbons': True,
'enable_css_parsing': True,
'enable_user_activity': True,
'enable_user_gaming': True,
'enable_user_mood': True,
......
......@@ -17,13 +17,15 @@ import hashlib
import re
from base64 import b64encode, b64decode
from os import path
from slixmpp.xmlstream import ET
from urllib.parse import unquote
from io import BytesIO
from xml import sax
from xml.sax import saxutils
from slixmpp.xmlstream import ET
from poezio.config import config
digits = '0123456789' # never trust the modules
XHTML_NS = 'http://www.w3.org/1999/xhtml'
......@@ -311,6 +313,7 @@ class XHTMLHandler(sax.ContentHandler):
self.tmp_dir = tmp_dir
self.extract_images = extract_images
self.enable_css_parsing = config.get('enable_css_parsing')
@property
def result(self):
......@@ -336,7 +339,7 @@ class XHTMLHandler(sax.ContentHandler):
attrs = {name: value for ((ns, name), value) in attrs.items() if ns is None}
self.attrs.append(attrs)
if 'style' in attrs:
if 'style' in attrs and self.enable_css_parsing:
style = _parse_css(attrs['style'])
self.append_formatting(style)
......@@ -420,7 +423,7 @@ class XHTMLHandler(sax.ContentHandler):
builder.append('\n')
self.is_pre = False
if 'style' in attrs:
if 'style' in attrs and self.enable_css_parsing:
self.pop_formatting()
if 'title' in attrs:
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment