mirror of
https://github.com/ezyang/htmlpurifier.git
synced 2025-01-18 11:41:52 +00:00
Emit errors when body is extracted.
Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
This commit is contained in:
parent
f4c6e10ff7
commit
1a70bffd5a
3
NEWS
3
NEWS
@ -9,6 +9,9 @@ NEWS ( CHANGELOG and HISTORY ) HTMLPurifier
|
|||||||
. Internal change
|
. Internal change
|
||||||
==========================
|
==========================
|
||||||
|
|
||||||
|
4.1.1, unknown release date
|
||||||
|
- Emit an error for CollectErrors if a body is extracted
|
||||||
|
|
||||||
4.1.0, released 2010-04-26
|
4.1.0, released 2010-04-26
|
||||||
! Support proprietary height attribute on table element
|
! Support proprietary height attribute on table element
|
||||||
! Support YouTube slideshows that contain /cp/ in their URL.
|
! Support YouTube slideshows that contain /cp/ in their URL.
|
||||||
|
@ -23,6 +23,7 @@ $messages = array(
|
|||||||
'Lexer: Missing gt' => 'Missing greater-than sign (>), previous less-than sign (<) should be escaped',
|
'Lexer: Missing gt' => 'Missing greater-than sign (>), previous less-than sign (<) should be escaped',
|
||||||
'Lexer: Missing attribute key' => 'Attribute declaration has no key',
|
'Lexer: Missing attribute key' => 'Attribute declaration has no key',
|
||||||
'Lexer: Missing end quote' => 'Attribute declaration has no end quote',
|
'Lexer: Missing end quote' => 'Attribute declaration has no end quote',
|
||||||
|
'Lexer: Extracted body' => 'Removed document metadata tags',
|
||||||
|
|
||||||
'Strategy_RemoveForeignElements: Tag transform' => '<$1> element transformed into $CurrentToken.Serialized',
|
'Strategy_RemoveForeignElements: Tag transform' => '<$1> element transformed into $CurrentToken.Serialized',
|
||||||
'Strategy_RemoveForeignElements: Missing required attribute' => '$CurrentToken.Compact element missing required attribute $1',
|
'Strategy_RemoveForeignElements: Missing required attribute' => '$CurrentToken.Compact element missing required attribute $1',
|
||||||
|
@ -265,7 +265,15 @@ class HTMLPurifier_Lexer
|
|||||||
|
|
||||||
// extract body from document if applicable
|
// extract body from document if applicable
|
||||||
if ($config->get('Core.ConvertDocumentToFragment')) {
|
if ($config->get('Core.ConvertDocumentToFragment')) {
|
||||||
$html = $this->extractBody($html);
|
$e = false;
|
||||||
|
if ($config->get('Core.CollectErrors')) {
|
||||||
|
$e =& $context->get('ErrorCollector');
|
||||||
|
}
|
||||||
|
$new_html = $this->extractBody($html);
|
||||||
|
if ($e && $new_html != $html) {
|
||||||
|
$e->send(E_WARNING, 'Lexer: Extracted body');
|
||||||
|
}
|
||||||
|
$html = $new_html;
|
||||||
}
|
}
|
||||||
|
|
||||||
// expand entities that aren't the big five
|
// expand entities that aren't the big five
|
||||||
|
@ -13,6 +13,11 @@ class HTMLPurifier_Lexer_DirectLex_ErrorsTest extends HTMLPurifier_ErrorsHarness
|
|||||||
$lexer->parseAttributeString($input, $this->config, $this->context);
|
$lexer->parseAttributeString($input, $this->config, $this->context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function testExtractBody() {
|
||||||
|
$this->expectErrorCollection(E_WARNING, 'Lexer: Extracted body');
|
||||||
|
$this->invoke('<body>foo</body>');
|
||||||
|
}
|
||||||
|
|
||||||
function testUnclosedComment() {
|
function testUnclosedComment() {
|
||||||
$this->expectErrorCollection(E_WARNING, 'Lexer: Unclosed comment');
|
$this->expectErrorCollection(E_WARNING, 'Lexer: Unclosed comment');
|
||||||
$this->expectContext('CurrentLine', 1);
|
$this->expectContext('CurrentLine', 1);
|
||||||
|
Loading…
Reference in New Issue
Block a user