19 #ifndef NET_INSTAWEB_REWRITER_PUBLIC_JAVASCRIPT_FILTER_H_
20 #define NET_INSTAWEB_REWRITER_PUBLIC_JAVASCRIPT_FILTER_H_
22 #include "net/instaweb/htmlparse/public/html_element.h"
30 namespace net_instaweb {
32 class HtmlCharactersNode;
33 class HtmlIEDirectiveNode;
34 class JavascriptRewriteConfig;
64 static void InitStats(Statistics* statistics);
67 virtual void StartElementImpl(HtmlElement* element);
68 virtual void Characters(HtmlCharactersNode* characters);
69 virtual void EndElementImpl(HtmlElement* element);
70 virtual void IEDirective(HtmlIEDirectiveNode* directive);
72 virtual const char* Name()
const {
return "Javascript"; }
73 virtual const char* id()
const {
return RewriteOptions::kJavascriptMinId; }
76 static JavascriptRewriteConfig* InitializeConfig(RewriteDriver* driver);
80 RewriteContext* parent,
const ResourceSlotPtr& slot);
91 inline void RewriteInlineScript(HtmlCharactersNode* body_node);
92 inline void RewriteExternalScript(
93 HtmlElement* script_in_progress, HtmlElement::Attribute* script_src);
98 void InitializeConfigIfNecessary();
102 virtual bool output_source_map()
const {
return false; }
104 ScriptType script_type_;
107 bool some_missing_scripts_;
108 scoped_ptr<JavascriptRewriteConfig> config_;
109 ScriptTagScanner script_tag_scanner_;
111 DISALLOW_COPY_AND_ASSIGN(JavascriptFilter);
119 virtual const char* Name()
const {
return "Javascript_Source_Map"; }
120 virtual const char* id()
const {
121 return RewriteOptions::kJavascriptMinSourceMapId;
125 virtual bool output_source_map()
const {
return true; }
virtual void StartDocumentImpl()
Definition: javascript_filter.h:66
Definition: javascript_filter.h:60
virtual void Characters(HtmlCharactersNode *characters)
virtual RewriteContext * MakeNestedRewriteContext(RewriteContext *parent, const ResourceSlotPtr &slot)
virtual RewriteContext * MakeRewriteContext()
Definition: rewrite_filter.h:37
Definition: rewrite_driver.h:98
Definition: javascript_filter.h:114