19 #ifndef PAGESPEED_KERNEL_HTML_HTML_FILTER_H_
20 #define PAGESPEED_KERNEL_HTML_HTML_FILTER_H_
24 namespace net_instaweb {
27 class HtmlCharactersNode;
28 class HtmlCommentNode;
29 class HtmlDirectiveNode;
31 class HtmlIEDirectiveNode;
107 virtual void Flush() = 0;
146 virtual const char*
Name()
const = 0;
virtual bool CanModifyUrls()=0
Definition: html_filter.h:35
virtual void EndDocument()=0
Leaf node representing raw characters in HTML.
Definition: html_node.h:167
virtual void StartElement(HtmlElement *element)=0
Indicates this filter never injects scripts.
Definition: html_filter.h:55
virtual ScriptUsage GetScriptUsage() const =0
virtual void Directive(HtmlDirectiveNode *directive)=0
Called for HTML directives (e.g. <!doctype foobar>).
Definition: html_element.h:42
virtual void IEDirective(HtmlIEDirectiveNode *directive)=0
virtual void RenderDone()
virtual void DetermineEnabled(GoogleString *disabled_reason)=0
void set_is_enabled(bool is_enabled)
Definition: html_filter.h:131
virtual void Comment(HtmlCommentNode *comment)=0
Called for HTML comments that aren't IE directives (e.g. ).
std::string GoogleString
PAGESPEED_KERNEL_BASE_STRING_H_.
Definition: string.h:24
bool is_enabled() const
Definition: html_filter.h:125
virtual void Cdata(HtmlCdataNode *cdata)=0
Called for CDATA blocks (e.g. <![CDATA[foobar]]>)
ScriptUsage
Describes a filter's relationship with scripts.
Definition: html_filter.h:38
virtual void Characters(HtmlCharactersNode *characters)=0
Called for raw characters between tags.
Definition: html_filter.h:43
Leaf node representing an HTML directive.
Definition: html_node.h:233
virtual const char * Name() const =0
The name of this filter – used for logging and debugging.
virtual void StartDocument()=0
Definition: html_filter.h:49
Leaf node representing a CDATA section.
Definition: html_node.h:147
Leaf node representing an HTML IE directive.
Definition: html_node.h:213