19 #ifndef NET_INSTAWEB_REWRITER_PUBLIC_CSS_COMBINE_FILTER_H_
20 #define NET_INSTAWEB_REWRITER_PUBLIC_CSS_COMBINE_FILTER_H_
24 #include "pagespeed/kernel/base/basictypes.h"
25 #include "pagespeed/kernel/base/scoped_ptr.h"
26 #include "pagespeed/kernel/base/string_util.h"
27 #include "pagespeed/kernel/util/url_multipart_encoder.h"
29 namespace net_instaweb {
32 class HtmlIEDirectiveNode;
36 class UrlSegmentEncoder;
51 static void InitStats(Statistics* statistics);
54 virtual void EndDocument();
55 virtual void StartElementImpl(HtmlElement* element);
56 virtual void EndElementImpl(HtmlElement* element) {}
59 virtual void IEDirective(HtmlIEDirectiveNode* directive);
60 virtual const char* Name()
const {
return "CssCombine"; }
61 virtual const UrlSegmentEncoder*
encoder()
const {
62 return &multipart_encoder_;
66 virtual const char* id()
const {
return RewriteOptions::kCssCombinerId; }
72 CssCombiner* combiner();
73 void NextCombination(StringPiece debug_help);
74 Context* MakeContext();
76 scoped_ptr<Context> context_;
77 UrlMultipartEncoder multipart_encoder_;
78 bool end_document_found_;
81 Variable* css_combine_opportunities_;
virtual void DetermineEnabled(GoogleString *disabled_reason)
virtual RewriteContext * MakeRewriteContext()
static const char kCssCombineOpportunities[]
Definition: css_combine_filter.h:44
virtual const UrlSegmentEncoder * encoder() const
Definition: css_combine_filter.h:61
static const char kCssFileCountReduction[]
CSS file reduction (Optimally this equals kCssCombineOpportunities).
Definition: css_combine_filter.h:46
virtual void StartDocumentImpl()
Definition: rewrite_filter.h:35
Definition: rewrite_driver.h:98
Definition: rewrite_context.h:146
Definition: css_combine_filter.h:39