19 #ifndef NET_INSTAWEB_REWRITER_PUBLIC_JS_INLINE_FILTER_H_
20 #define NET_INSTAWEB_REWRITER_PUBLIC_JS_INLINE_FILTER_H_
24 #include "net/instaweb/http/public/semantic_type.h"
32 #include "pagespeed/kernel/base/string.h"
34 namespace net_instaweb {
36 class HtmlCharactersNode;
43 static const char kNumJsInlined[];
48 virtual void EndDocument();
49 virtual void StartElementImpl(HtmlElement* element);
50 virtual void EndElementImpl(HtmlElement* element);
51 virtual void Characters(HtmlCharactersNode* characters);
52 virtual const char* Name()
const {
return "InlineJs"; }
58 return driver()->
options()->HasInlineUnauthorizedResourceType(
59 semantic_type::kScript) ?
60 RewriteDriver::kInlineUnauthorizedResources :
61 RewriteDriver::kInlineOnlyAuthorizedResources;
65 static void InitStats(Statistics* statistics);
71 bool ShouldInline(
const ResourcePtr& resource, GoogleString* reason)
const;
72 void RenderInline(
const ResourcePtr& resource,
const StringPiece& text,
73 HtmlElement* element);
75 const size_t size_threshold_bytes_;
85 Variable* num_js_inlined_;
Definition: common_filter.h:48
virtual void Characters(HtmlCharactersNode *characters)
Definition: rewrite_driver.h:98
Inline small Javascript files.
Definition: js_inline_filter.h:41
virtual void StartDocumentImpl()
virtual bool IntendedForInlining() const
Definition: js_inline_filter.h:63
InlineAuthorizationPolicy
See CreateInputResource.
Definition: rewrite_driver.h:135
const RewriteOptions * options() const
Return the options used for this RewriteDriver.
Definition: rewrite_driver.h:478
virtual RewriteDriver::InlineAuthorizationPolicy AllowUnauthorizedDomain() const
Definition: js_inline_filter.h:56