Page Speed Optimization Libraries
1.5.27.2
|
#include "html_filter.h"
Public Member Functions | |
virtual void | StartDocument ()=0 |
virtual void | EndDocument ()=0 |
Note: EndDocument will be called imediately before the last Flush call. | |
virtual void | StartElement (HtmlElement *element)=0 |
virtual void | EndElement (HtmlElement *element)=0 |
virtual void | Cdata (HtmlCdataNode *cdata)=0 |
Called for CDATA blocks (e.g. <![CDATA[foobar]]>) | |
virtual void | Comment (HtmlCommentNode *comment)=0 |
Called for HTML comments that aren't IE directives (e.g. ). | |
virtual void | IEDirective (HtmlIEDirectiveNode *directive)=0 |
virtual void | Characters (HtmlCharactersNode *characters)=0 |
Called for raw characters between tags. | |
virtual void | Directive (HtmlDirectiveNode *directive)=0 |
Called for HTML directives (e.g. <!doctype foobar>). | |
virtual void | Flush ()=0 |
virtual void | RenderDone () |
virtual void | DetermineEnabled ()=0 |
bool | is_enabled () const |
virtual const char * | Name () const =0 |
The name of this filter -- used for logging and debugging. | |
Protected Member Functions | |
void | set_is_enabled (bool is_enabled) |
Base-class used to register for HTML Parser Callbacks. Derive from this class and register with HtmlParse::AddFilter to use the HTML Parser.
virtual void net_instaweb::HtmlFilter::DetermineEnabled | ( | ) | [pure virtual] |
Invoked by rewrite driver where all filters should determine whether they are enabled for this request.
Implemented in net_instaweb::DelayImagesFilter, net_instaweb::JsCombineFilter, net_instaweb::CriticalSelectorFilter, net_instaweb::DeferIframeFilter, net_instaweb::CriticalCssBeaconFilter, net_instaweb::CriticalCssFilter, net_instaweb::EmptyHtmlFilter, net_instaweb::HtmlWriterFilter, net_instaweb::JsDisableFilter, net_instaweb::CssCombineFilter, net_instaweb::RewriteFilter, net_instaweb::CssMoveToHeadFilter, net_instaweb::InsertDnsPrefetchFilter, net_instaweb::CriticalImagesBeaconFilter, and net_instaweb::JsDeferDisabledFilter.
virtual void net_instaweb::HtmlFilter::Flush | ( | ) | [pure 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(), except RenderDone(), which (if in use) happens after Flush().
Implemented in net_instaweb::CombiningFilter, net_instaweb::GoogleAnalyticsFilter, net_instaweb::JsCombineFilter, net_instaweb::EmptyHtmlFilter, net_instaweb::BlinkFilter, net_instaweb::MetaTagFilter, net_instaweb::HtmlWriterFilter, net_instaweb::CacheHtmlFilter, net_instaweb::CssCombineFilter, net_instaweb::CssInlineImportToLinkFilter, net_instaweb::ScanFilter, net_instaweb::CssOutlineFilter, net_instaweb::JsOutlineFilter, net_instaweb::AddHeadFilter, net_instaweb::DebugFilter, and net_instaweb::FlushHtmlFilter.
virtual void net_instaweb::HtmlFilter::IEDirective | ( | HtmlIEDirectiveNode * | directive | ) | [pure virtual] |
Called for an IE directive; typically used for CSS styling. See http://msdn.microsoft.com/en-us/library/ms537512(VS.85).aspx
Implemented in net_instaweb::GoogleAnalyticsFilter, net_instaweb::LoggingFilter, net_instaweb::JsCombineFilter, net_instaweb::JavascriptFilter, net_instaweb::EmptyHtmlFilter, net_instaweb::ComputeVisibleTextFilter, net_instaweb::CssCombineFilter, net_instaweb::HtmlWriterFilter, and net_instaweb::ScanFilter.
bool net_instaweb::HtmlFilter::is_enabled | ( | ) | const [inline] |
Intended to be called from DetermineEnabled implementations in filters. Returns whether a filter is enabled.
virtual void net_instaweb::HtmlFilter::RenderDone | ( | ) | [virtual] |
Notifies a filter that an asynchronous rewrite & render computation phase has finished. This is not used by HtmlParse itself, but only by RewriteDriver for pre-render filters. Happens after the corresponding flush, for every flush window. Default implementation does nothing.
Reimplemented in net_instaweb::CssSummarizerBase, and net_instaweb::CriticalSelectorFilter.
virtual void net_instaweb::HtmlFilter::StartDocument | ( | ) | [pure virtual] |
Starts a new document. Filters should clear their state in this function, as the same Filter instance may be used for multiple HTML documents.
Implemented in net_instaweb::GoogleAnalyticsFilter, net_instaweb::MockFilter, net_instaweb::DelayImagesFilter, net_instaweb::LoggingFilter, net_instaweb::DeferIframeFilter, net_instaweb::SplitHtmlFilter, net_instaweb::CriticalCssFilter, net_instaweb::CommonFilter, net_instaweb::FlushEarlyContentWriterFilter, net_instaweb::EmptyHtmlFilter, net_instaweb::BlinkFilter, net_instaweb::ComputeVisibleTextFilter, net_instaweb::AddInstrumentationFilter, net_instaweb::CriticalImagesBeaconFilter, net_instaweb::JsDisableFilter, net_instaweb::CacheHtmlFilter, net_instaweb::HtmlWriterFilter, net_instaweb::CollapseWhitespaceFilter, net_instaweb::CssInlineImportToLinkFilter, net_instaweb::ScanFilter, net_instaweb::SuppressPreheadFilter, net_instaweb::StripNonCacheableFilter, net_instaweb::BaseTagFilter, net_instaweb::HandleNoscriptRedirectFilter, net_instaweb::DetectReflowJsDeferFilter, net_instaweb::DeterministicJsFilter, net_instaweb::RewrittenContentScanningFilter, net_instaweb::SupportNoscriptFilter, net_instaweb::CanonicalAttributes, and net_instaweb::AddHeadFilter.
virtual void net_instaweb::HtmlFilter::StartElement | ( | HtmlElement * | element | ) | [pure 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.
Implemented in net_instaweb::GoogleAnalyticsFilter, net_instaweb::MockFilter, net_instaweb::LoggingFilter, net_instaweb::DeferIframeFilter, net_instaweb::SplitHtmlFilter, net_instaweb::CriticalCssFilter, net_instaweb::FlushEarlyContentWriterFilter, net_instaweb::CommonFilter, net_instaweb::EmptyHtmlFilter, net_instaweb::BlinkFilter, net_instaweb::ComputeVisibleTextFilter, net_instaweb::JsDisableFilter, net_instaweb::AddInstrumentationFilter, net_instaweb::HtmlWriterFilter, net_instaweb::CacheHtmlFilter, net_instaweb::CssInlineImportToLinkFilter, net_instaweb::CollapseWhitespaceFilter, net_instaweb::HtmlAttributeQuoteRemoval, net_instaweb::SuppressPreheadFilter, net_instaweb::ScanFilter, net_instaweb::StripNonCacheableFilter, net_instaweb::BaseTagFilter, net_instaweb::HandleNoscriptRedirectFilter, net_instaweb::RewrittenContentScanningFilter, net_instaweb::DetectReflowJsDeferFilter, net_instaweb::DeterministicJsFilter, net_instaweb::SupportNoscriptFilter, net_instaweb::ElideAttributesFilter, net_instaweb::CanonicalAttributes, net_instaweb::AddHeadFilter, net_instaweb::BlinkBackgroundFilter, net_instaweb::PedanticFilter, and net_instaweb::DecodeRewrittenUrlsFilter.