19 #ifndef NET_INSTAWEB_REWRITER_PUBLIC_JAVASCRIPT_FILTER_H_
20 #define NET_INSTAWEB_REWRITER_PUBLIC_JAVASCRIPT_FILTER_H_
29 #include "pagespeed/kernel/base/basictypes.h"
30 #include "pagespeed/kernel/base/scoped_ptr.h"
31 #include "pagespeed/kernel/base/statistics.h"
32 #include "pagespeed/kernel/html/html_element.h"
33 #include "pagespeed/kernel/html/html_filter.h"
34 #include "pagespeed/kernel/html/html_node.h"
36 namespace net_instaweb {
63 static void InitStats(Statistics* statistics);
66 void StartElementImpl(HtmlElement* element)
override;
67 void Characters(HtmlCharactersNode* characters)
override;
68 void EndElementImpl(HtmlElement* element)
override;
69 void IEDirective(HtmlIEDirectiveNode* directive)
override;
71 const char* Name()
const override {
return "Javascript"; }
72 const char* id()
const override {
return RewriteOptions::kJavascriptMinId; }
74 ScriptUsage GetScriptUsage()
const override {
return kWillInjectScripts; }
76 static JavascriptRewriteConfig* InitializeConfig(RewriteDriver* driver);
80 RewriteContext* parent,
const ResourceSlotPtr& slot)
override;
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_;
119 const char* Name()
const override {
return "Javascript_Source_Map"; }
120 const char* id()
const override {
121 return RewriteOptions::kJavascriptMinSourceMapId;
125 bool output_source_map()
const override {
return true; }
RewriteContext * MakeRewriteContext() override
Definition: javascript_filter.h:59
void Characters(HtmlCharactersNode *characters) override
RewriteContext * MakeNestedRewriteContext(RewriteContext *parent, const ResourceSlotPtr &slot) override
Definition: rewrite_filter.h:35
Definition: rewrite_driver.h:98
void StartDocumentImpl() override
Definition: javascript_filter.h:65
Definition: javascript_filter.h:114