Page Speed Optimization Libraries  1.4.26.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Protected Member Functions
net_instaweb::HtmlWriterFilter Class Reference
Inheritance diagram for net_instaweb::HtmlWriterFilter:
net_instaweb::HtmlFilter net_instaweb::BlinkFilter net_instaweb::CacheHtmlFilter net_instaweb::ComputeVisibleTextFilter net_instaweb::FlushEarlyContentWriterFilter net_instaweb::SuppressPreheadFilter net_instaweb::SplitHtmlFilter

List of all members.

Public Member Functions

 HtmlWriterFilter (HtmlParse *html_parse)
void set_writer (Writer *writer)
virtual void StartDocument ()
virtual void EndDocument ()
 Note: EndDocument will be called imediately before the last Flush call.
virtual void StartElement (HtmlElement *element)
virtual void EndElement (HtmlElement *element)
virtual void Cdata (HtmlCdataNode *cdata)
 Called for CDATA blocks (e.g. <![CDATA[foobar]]>)
virtual void Comment (HtmlCommentNode *comment)
 Called for HTML comments that aren't IE directives (e.g. ).
virtual void IEDirective (HtmlIEDirectiveNode *directive)
virtual void Characters (HtmlCharactersNode *characters)
 Called for raw characters between tags.
virtual void Directive (HtmlDirectiveNode *directive)
 Called for HTML directives (e.g. <!doctype foobar>).
virtual void Flush ()
virtual void DetermineEnabled ()
void set_max_column (int max_column)
void set_case_fold (bool case_fold)
virtual const char * Name () const
 The name of this filter -- used for logging and debugging.

Protected Member Functions

virtual void Clear ()
 Clear various variables for rewriting a new html file.
Writerwriter ()
void TerminateLazyCloseElement ()
 Terminates the current lazy close element if it is not already terminated.

Member Function Documentation

Invoked by rewrite driver where all filters should determine whether they are enabled for this request.

Implements net_instaweb::HtmlFilter.

virtual void net_instaweb::HtmlWriterFilter::Flush ( ) [virtual]

Notifies the Filter that a flush is occurring. A filter that's generating streamed output should flush at this time. A filter that's mutating elements can mutate any element seen since the most recent flush; once an element is flushed it is already on the wire to its destination and it's too late to mutate. Flush is initiated by an application calling HttpParse::Flush().

Flush() is called after all other handlers during a HttpParse::Flush().

Implements net_instaweb::HtmlFilter.

Reimplemented in net_instaweb::BlinkFilter, and net_instaweb::CacheHtmlFilter.

virtual void net_instaweb::HtmlWriterFilter::IEDirective ( HtmlIEDirectiveNode directive) [virtual]

Called for an IE directive; typically used for CSS styling. See http://msdn.microsoft.com/en-us/library/ms537512(VS.85).aspx

Todo:
TODO(mdsteele): Should we try to maintain the nested structure of the conditionals, in the same way that we maintain nesting of elements?

Implements net_instaweb::HtmlFilter.

Reimplemented in net_instaweb::ComputeVisibleTextFilter.

Starts a new document. Filters should clear their state in this function, as the same Filter instance may be used for multiple HTML documents.

Implements net_instaweb::HtmlFilter.

Reimplemented in net_instaweb::SplitHtmlFilter, net_instaweb::FlushEarlyContentWriterFilter, net_instaweb::BlinkFilter, net_instaweb::ComputeVisibleTextFilter, net_instaweb::CacheHtmlFilter, and net_instaweb::SuppressPreheadFilter.

virtual void net_instaweb::HtmlWriterFilter::StartElement ( HtmlElement element) [virtual]

When an HTML element is encountered during parsing, each filter's StartElement method is called. The HtmlElement lives for the entire duration of the document.

Todo:
TODO(jmarantz): consider passing handles rather than pointers and reference-counting them instead to save memory on long documents.

Implements net_instaweb::HtmlFilter.

Reimplemented in net_instaweb::SplitHtmlFilter, net_instaweb::FlushEarlyContentWriterFilter, net_instaweb::BlinkFilter, net_instaweb::ComputeVisibleTextFilter, net_instaweb::CacheHtmlFilter, and net_instaweb::SuppressPreheadFilter.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines