23 #ifndef NET_INSTAWEB_REWRITER_PUBLIC_JS_COMBINE_FILTER_H_
24 #define NET_INSTAWEB_REWRITER_PUBLIC_JS_COMBINE_FILTER_H_
31 #include "pagespeed/kernel/base/basictypes.h"
32 #include "pagespeed/kernel/base/scoped_ptr.h"
33 #include "pagespeed/kernel/base/string.h"
34 #include "pagespeed/kernel/base/string_util.h"
35 #include "pagespeed/kernel/html/html_element.h"
36 #include "pagespeed/kernel/html/html_node.h"
37 #include "pagespeed/kernel/util/url_multipart_encoder.h"
38 #include "pagespeed/kernel/util/url_segment_encoder.h"
40 namespace pagespeed {
namespace js {
struct JsTokenizerPatterns; } }
42 namespace net_instaweb {
75 static void InitStats(Statistics* statistics);
76 virtual const char* id()
const {
77 return RewriteOptions::kJavascriptCombinerId;
89 virtual void StartElementImpl(HtmlElement* element);
90 virtual void EndElementImpl(HtmlElement* element);
91 virtual void Characters(HtmlCharactersNode* characters);
94 virtual void IEDirective(HtmlIEDirectiveNode* directive);
95 virtual const char* Name()
const {
return "JsCombine"; }
97 virtual const UrlSegmentEncoder*
encoder()
const {
105 friend class JsCombineFilterTest;
107 void ConsiderJsForCombination(HtmlElement* element,
108 HtmlElement::Attribute* src);
111 static GoogleString VarName(
const RewriteDriver* rewrite_driver,
112 const GoogleString& url);
114 void NextCombination();
116 Context* MakeContext();
118 JsCombiner* combiner()
const;
122 HtmlElement* current_js_script_;
124 scoped_ptr<Context> context_;
125 UrlMultipartEncoder encoder_;
Definition: js_combine_filter.h:65
virtual void StartDocumentImpl()
RewriteFilter overrides — HTML parsing event handlers.
virtual RewriteContext * MakeRewriteContext()
virtual void DetermineEnabled(GoogleString *disabled_reason)
virtual void Characters(HtmlCharactersNode *characters)
static void InitStats(Statistics *statistics)
Registers the provided statistics variable names with 'statistics'.
virtual const UrlSegmentEncoder * encoder() const
Definition: js_combine_filter.h:97
Definition: rewrite_filter.h:37
Definition: rewrite_driver.h:98
JsCombineFilter(RewriteDriver *rewrite_driver)
static const char kJsFileCountReduction[]
statistics variable name
Definition: js_combine_filter.h:67
static bool IsLikelyStrictMode(const pagespeed::js::JsTokenizerPatterns *jstp, StringPiece input)