19 #ifndef NET_INSTAWEB_REWRITER_PUBLIC_CSS_COMBINE_FILTER_H_
20 #define NET_INSTAWEB_REWRITER_PUBLIC_CSS_COMBINE_FILTER_H_
25 #include "pagespeed/kernel/base/basictypes.h"
26 #include "pagespeed/kernel/base/scoped_ptr.h"
27 #include "pagespeed/kernel/base/string_util.h"
28 #include "pagespeed/kernel/util/url_multipart_encoder.h"
30 namespace net_instaweb {
33 class HtmlIEDirectiveNode;
37 class UrlSegmentEncoder;
52 static void InitStats(Statistics* statistics);
55 virtual void EndDocument();
56 virtual void StartElementImpl(HtmlElement* element);
57 virtual void EndElementImpl(HtmlElement* element) {}
60 virtual void IEDirective(HtmlIEDirectiveNode* directive);
61 virtual const char* Name()
const {
return "CssCombine"; }
62 virtual const UrlSegmentEncoder*
encoder()
const {
63 return &multipart_encoder_;
67 virtual const char* id()
const {
return RewriteOptions::kCssCombinerId; }
73 CssCombiner* combiner();
74 void NextCombination(StringPiece debug_help);
75 Context* MakeContext();
77 CssTagScanner css_tag_scanner_;
78 scoped_ptr<Context> context_;
79 UrlMultipartEncoder multipart_encoder_;
80 bool end_document_found_;
83 Variable* css_combine_opportunities_;
85 DISALLOW_COPY_AND_ASSIGN(CssCombineFilter);
virtual void DetermineEnabled(GoogleString *disabled_reason)
virtual RewriteContext * MakeRewriteContext()
static const char kCssCombineOpportunities[]
Definition: css_combine_filter.h:45
virtual const UrlSegmentEncoder * encoder() const
Definition: css_combine_filter.h:62
static const char kCssFileCountReduction[]
CSS file reduction (Optimally this equals kCssCombineOpportunities).
Definition: css_combine_filter.h:47
virtual void StartDocumentImpl()
Definition: rewrite_filter.h:37
Definition: rewrite_driver.h:98
Definition: rewrite_context.h:144
Definition: css_combine_filter.h:40