From 07ed1bbf8c3daaab3cd9b358c064b2d8b8d29108 Mon Sep 17 00:00:00 2001 From: "Edward Z. Yang" Date: Thu, 5 Feb 2009 18:04:10 -0500 Subject: [PATCH] Fix broken trusted comments functionality. This fix is slightly hackish, as we simply treat comments as whitespace. This should largely be correct, and breaks no current test cases, although it could result in noncompliant behavior. Signed-off-by: Edward Z. Yang --- library/HTMLPurifier/ChildDef/Table.php | 2 +- library/HTMLPurifier/Token/Comment.php | 1 + tests/HTMLPurifier/HTMLT/trusted-comments-required.htmlt | 5 +++++ tests/HTMLPurifier/HTMLT/trusted-comments-table.htmlt | 4 ++++ tests/HTMLPurifier/HTMLT/trusted-comments.htmlt | 4 ++++ 5 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 tests/HTMLPurifier/HTMLT/trusted-comments-required.htmlt create mode 100644 tests/HTMLPurifier/HTMLT/trusted-comments-table.htmlt create mode 100644 tests/HTMLPurifier/HTMLT/trusted-comments.htmlt diff --git a/library/HTMLPurifier/ChildDef/Table.php b/library/HTMLPurifier/ChildDef/Table.php index 2608497a..34f0227d 100644 --- a/library/HTMLPurifier/ChildDef/Table.php +++ b/library/HTMLPurifier/ChildDef/Table.php @@ -110,7 +110,7 @@ class HTMLPurifier_ChildDef_Table extends HTMLPurifier_ChildDef $collection[] = $token; continue; default: - if ($token instanceof HTMLPurifier_Token_Text && $token->is_whitespace) { + if (!empty($token->is_whitespace)) { $collection[] = $token; $tag_index++; } diff --git a/library/HTMLPurifier/Token/Comment.php b/library/HTMLPurifier/Token/Comment.php index 963e0a90..dc6bdcab 100644 --- a/library/HTMLPurifier/Token/Comment.php +++ b/library/HTMLPurifier/Token/Comment.php @@ -6,6 +6,7 @@ class HTMLPurifier_Token_Comment extends HTMLPurifier_Token { public $data; /**< Character data within comment. */ + public $is_whitespace = true; /** * Transparent constructor. * diff --git a/tests/HTMLPurifier/HTMLT/trusted-comments-required.htmlt b/tests/HTMLPurifier/HTMLT/trusted-comments-required.htmlt new file mode 100644 index 00000000..2ce367bf --- /dev/null +++ b/tests/HTMLPurifier/HTMLT/trusted-comments-required.htmlt @@ -0,0 +1,5 @@ +--INI-- +HTML.Trusted = true +--HTML-- + +--EXPECT-- diff --git a/tests/HTMLPurifier/HTMLT/trusted-comments-table.htmlt b/tests/HTMLPurifier/HTMLT/trusted-comments-table.htmlt new file mode 100644 index 00000000..085a0d02 --- /dev/null +++ b/tests/HTMLPurifier/HTMLT/trusted-comments-table.htmlt @@ -0,0 +1,4 @@ +--INI-- +HTML.Trusted = true +--HTML-- +
Foo
diff --git a/tests/HTMLPurifier/HTMLT/trusted-comments.htmlt b/tests/HTMLPurifier/HTMLT/trusted-comments.htmlt new file mode 100644 index 00000000..8b565774 --- /dev/null +++ b/tests/HTMLPurifier/HTMLT/trusted-comments.htmlt @@ -0,0 +1,4 @@ +--INI-- +HTML.Trusted = true +--HTML-- +