Page Speed Optimization Libraries  1.6.29.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Static Public Attributes | Protected Member Functions
net_instaweb::CriticalSelectorFilter Class Reference
Inheritance diagram for net_instaweb::CriticalSelectorFilter:
net_instaweb::CssSummarizerBase net_instaweb::RewriteFilter net_instaweb::CommonFilter

List of all members.

Public Member Functions

 CriticalSelectorFilter (RewriteDriver *rewrite_driver)
virtual const char * Name () const
virtual const char * id () const

Static Public Attributes

static const char kAddStylesFunction []
static const char kAddStylesInvocation []

Protected Member Functions

virtual void Summarize (Css::Stylesheet *stylesheet, GoogleString *out) const
virtual void RenderSummary (int pos, HtmlElement *element, HtmlCharactersNode *char_node)
virtual void WillNotRenderSummary (int pos, HtmlElement *element, HtmlCharactersNode *char_node)
virtual GoogleString CacheKeySuffix () const
virtual void StartDocumentImpl ()
 Parser callbacks.
virtual void EndDocument ()
virtual void RenderDone ()
virtual void DetermineEnabled ()
 Filter control API.

Member Function Documentation

virtual GoogleString net_instaweb::CriticalSelectorFilter::CacheKeySuffix ( ) const [protected, virtual]

Since our computation depends on the selectors that are relevant to the webpage, we incorporate them into the cache key as well.

Reimplemented from net_instaweb::CssSummarizerBase.

virtual void net_instaweb::CriticalSelectorFilter::RenderSummary ( int  pos,
HtmlElement *  element,
HtmlCharactersNode *  char_node 
) [protected, virtual]

This can be optionally overridden to modify a CSS element based on a successfully computed summary. It might not be invoked if cached information is not readily available, and will not be invoked if CSS parsing failed or some other error occurred. Invocation occurs from a thread with HTML parser context state, so both DOM modification and GetSummaryForStyle() are safe to use. If invoked, the method will be called before SummariesDone().

pos is the position of the element in the summary table.

element points to the <link> or <style> element that was summarized. If the element was a <style>, char_node will also point to its contents node; otherwise it will be NULL.

The default implementation does nothing.

Reimplemented from net_instaweb::CssSummarizerBase.

virtual void net_instaweb::CriticalSelectorFilter::Summarize ( Css::Stylesheet *  stylesheet,
GoogleString *  out 
) const [protected, virtual]

Overrides of CssSummarizerBase summary API. These help us compute the critical portions of the various fragments in the page, and to write them out to the page. We also use this to pick up the output of filters before us, like rewrite_css; so we run this even on things that will not contain on-screen critical CSS.

Implements net_instaweb::CssSummarizerBase.

virtual void net_instaweb::CriticalSelectorFilter::WillNotRenderSummary ( int  pos,
HtmlElement *  element,
HtmlCharactersNode *  char_node 
) [protected, virtual]

Like RenderSummary, but called in cases where we're unable to render a summary for some reason (including not being able to compute one). Note: not called when we're canceled due to disable_further_processing.

Like with RenderSummary, this corresponds to entry [pos] in the summary table, and elements points to the <link> or <style> containing CSS, with char_node being non-null in case it was a <style>.

Reimplemented from net_instaweb::CssSummarizerBase.


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