net_instaweb::CssFilter Class Reference

#include "css_filter.h"

Inheritance diagram for net_instaweb::CssFilter:
net_instaweb::RewriteFilter net_instaweb::CommonFilter net_instaweb::EmptyHtmlFilter net_instaweb::HtmlFilter

List of all members.

Classes

class  Context
 Context used by CssFilter under async flow. More...

Public Member Functions

 CssFilter (RewriteDriver *driver, CacheExtender *cache_extender, ImageRewriteFilter *image_rewriter, ImageCombineFilter *image_combiner)
virtual void StartDocumentImpl ()
virtual void StartElementImpl (HtmlElement *element)
virtual void Characters (HtmlCharactersNode *characters)
 Called for raw characters between tags.
virtual void EndElementImpl (HtmlElement *element)
virtual const char * Name () const
 The name of this filter -- used for logging and debugging.
virtual const char * id () const
virtual int FilterCacheFormatVersion () const
RewriteContextMakeNestedFlatteningContextInNewSlot (const ResourcePtr &resource, const GoogleString &location, CssFilter::Context *rewriter, RewriteContext *parent, CssHierarchy *hierarchy)

Static Public Member Functions

static void Initialize (Statistics *statistics)
static void Terminate ()
static void InitializeAtExitManager ()

Static Public Attributes

static const char kBlocksRewritten []
static const char kParseFailures []
static const char kRewritesDropped []
static const char kTotalBytesSaved []
static const char kTotalOriginalBytes []
static const char kUses []

Protected Member Functions

virtual RewriteContextMakeRewriteContext ()
virtual const UrlSegmentEncoderencoder () const
virtual RewriteContextMakeNestedRewriteContext (RewriteContext *parent, const ResourceSlotPtr &slot)

Friends

class Context

Detailed Description

Find and parse all CSS in the page and apply transformations including: minification, combining, refactoring, and optimizing sub-resources.

Currently only does basic minification.

Note that CssCombineFilter currently does combining (although there is a bug) but CssFilter will eventually replace this.

Currently only deals with inline <style> tags and external <link> resources. It does not consider style= attributes on arbitrary elements.


Constructor & Destructor Documentation

net_instaweb::CssFilter::CssFilter ( RewriteDriver driver,
CacheExtender cache_extender,
ImageRewriteFilter image_rewriter,
ImageCombineFilter image_combiner 
)
Parameters:
cache_extender 
Todo:
TODO(sligocki): Temporary pattern until we figure out a better way to do this without passing all filters around everywhere.

Member Function Documentation

virtual const UrlSegmentEncoder* net_instaweb::CssFilter::encoder (  )  const [protected, virtual]

All RewriteFilters define how they encode URLs and other associated information needed for a rewrite into a URL. The default implementation handles a single URL with no extra data. The filter owns the encoder.

Reimplemented from net_instaweb::RewriteFilter.

static void net_instaweb::CssFilter::InitializeAtExitManager (  )  [static]

Note: AtExitManager needs to be initialized or you get a nasty error: Check failed: false. Tried to RegisterCallback without an AtExitManager. This is called by Initialize.

virtual RewriteContext* net_instaweb::CssFilter::MakeNestedRewriteContext ( RewriteContext parent,
const ResourceSlotPtr slot 
) [protected, virtual]

Generates a nested RewriteContext appropriate for this filter. Default implementation returns NULL. This is used to implement ajax rewriting.

Reimplemented from net_instaweb::RewriteFilter.

virtual RewriteContext* net_instaweb::CssFilter::MakeRewriteContext (  )  [protected, virtual]

Generates a RewriteContext appropriate for this filter. Default implementation returns NULL. This must be overridden by filters. This is used to implement Fetch.

Reimplemented from net_instaweb::RewriteFilter.

virtual void net_instaweb::CssFilter::StartDocumentImpl (  )  [virtual]

Overload these implementer methods: Intentionally left abstract so that implementers don't forget to change the name from Blah to BlahImpl.

Implements net_instaweb::CommonFilter.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Generated on Tue May 29 16:33:57 2012 for Page Speed Optimization Libraries by  doxygen 1.6.3