19 #ifndef NET_INSTAWEB_REWRITER_PUBLIC_MOBILIZE_REWRITE_FILTER_H_
20 #define NET_INSTAWEB_REWRITER_PUBLIC_MOBILIZE_REWRITE_FILTER_H_
26 #include "pagespeed/kernel/base/basictypes.h"
27 #include "pagespeed/kernel/base/statistics.h"
28 #include "pagespeed/kernel/base/string.h"
29 #include "pagespeed/kernel/base/string_util.h"
30 #include "pagespeed/kernel/html/html_element.h"
31 #include "pagespeed/kernel/html/html_filter.h"
32 #include "pagespeed/kernel/http/user_agent_matcher.h"
34 namespace net_instaweb {
75 static const char kPagesMobilized[];
80 static void InitStats(Statistics* statistics);
85 const char* user_agent,
86 const UserAgentMatcher* matcher);
87 virtual void DetermineEnabled(GoogleString* disabled_reason);
89 virtual void EndDocument();
90 virtual void RenderDone();
91 virtual void StartElementImpl(HtmlElement* element);
92 virtual void EndElementImpl(HtmlElement* element);
93 virtual const char* Name()
const {
return "MobilizeRewrite"; }
94 ScriptUsage GetScriptUsage()
const override {
return kWillInjectScripts; }
97 void AppendStylesheet(StringPiece css_file_name,
98 StaticAssetEnum::StaticAsset asset,
99 HtmlElement* element);
100 void AddStyle(HtmlElement* element);
102 GoogleString GetMobJsInitScript();
104 int body_element_depth_;
105 bool added_viewport_;
108 bool saw_end_document_;
112 Variable* num_pages_mobilized_;
Definition: common_filter.h:47
virtual void StartDocumentImpl()
Definition: rewrite_driver.h:98
static bool IsApplicableFor(RewriteDriver *driver)
True if options or request UA suggest we will actually do mobilization.
Definition: mobilize_rewrite_filter.h:73
Definition: rewrite_options.h:84
friend class MobilizeRewriteFilterTest
Used for overriding default behavior in testing.
Definition: mobilize_rewrite_filter.h:115