diff --git a/core/lib/presentation/utils/html_transformer/text/sanitize_html_transformers.dart b/core/lib/presentation/utils/html_transformer/text/sanitize_html_transformers.dart new file mode 100644 index 0000000000..baf2b9cd71 --- /dev/null +++ b/core/lib/presentation/utils/html_transformer/text/sanitize_html_transformers.dart @@ -0,0 +1,17 @@ + +import 'dart:convert'; + +import 'package:core/presentation/utils/html_transformer/base/text_transformer.dart'; +import 'package:core/utils/app_logger.dart'; + +class SanitizeHtmlTransformers extends TextTransformer { + + const SanitizeHtmlTransformers(); + + @override + String process(String text) { + final htmlEncoded = const HtmlEscape().convert(text); + log('HtmlSanitizerTransformers::process:htmlEncoded: $htmlEncoded'); + return htmlEncoded; + } +} \ No newline at end of file diff --git a/core/lib/utils/app_logger.dart b/core/lib/utils/app_logger.dart index 201e21e7c4..860ecb973d 100644 --- a/core/lib/utils/app_logger.dart +++ b/core/lib/utils/app_logger.dart @@ -6,9 +6,9 @@ import 'package:flutter/material.dart'; final logHistory = _Dispatcher(""); void log(String? value) { - String v = value ?? ""; - logHistory.value = "$v\n${logHistory.value}"; if (kDebugMode) { + String v = value ?? ""; + logHistory.value = "$v\n${logHistory.value}"; print(v); } } diff --git a/lib/features/composer/presentation/widgets/toolbar_rich_text_builder.dart b/lib/features/composer/presentation/widgets/toolbar_rich_text_builder.dart index a696187720..c320b2a308 100644 --- a/lib/features/composer/presentation/widgets/toolbar_rich_text_builder.dart +++ b/lib/features/composer/presentation/widgets/toolbar_rich_text_builder.dart @@ -1,7 +1,6 @@ -import 'dart:developer'; - import 'package:core/presentation/extensions/color_extension.dart'; import 'package:core/presentation/resources/image_paths.dart'; +import 'package:core/utils/app_logger.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; import 'package:get/get.dart'; diff --git a/lib/features/email/data/local/html_analyzer.dart b/lib/features/email/data/local/html_analyzer.dart index e984239891..465507a187 100644 --- a/lib/features/email/data/local/html_analyzer.dart +++ b/lib/features/email/data/local/html_analyzer.dart @@ -3,6 +3,7 @@ import 'package:core/data/network/dio_client.dart'; import 'package:core/presentation/utils/html_transformer/dom/add_tooltip_link_transformers.dart'; import 'package:core/presentation/utils/html_transformer/html_transform.dart'; import 'package:core/presentation/utils/html_transformer/text/convert_url_string_to_html_links_transformers.dart'; +import 'package:core/presentation/utils/html_transformer/text/sanitize_html_transformers.dart'; import 'package:core/presentation/utils/html_transformer/transform_configuration.dart'; import 'package:model/email/email_content.dart'; import 'package:model/email/email_content_type.dart'; @@ -33,8 +34,13 @@ class HtmlAnalyzer { case EmailContentType.textPlain: final htmlTransform = HtmlTransform(emailContent.content); final message = htmlTransform.transformToTextPlain( - transformConfiguration: TransformConfiguration.create( - customTextTransformers: [const ConvertUrlStringToHtmlLinksTransformers()])); + transformConfiguration: TransformConfiguration.create( + customTextTransformers: [ + const ConvertUrlStringToHtmlLinksTransformers(), + const SanitizeHtmlTransformers(), + ] + ) + ); return EmailContent(emailContent.type, message); default: return emailContent;