71 #ifndef NET_INSTAWEB_REWRITER_PUBLIC_DELAY_IMAGES_FILTER_H_
72 #define NET_INSTAWEB_REWRITER_PUBLIC_DELAY_IMAGES_FILTER_H_
76 #include "pagespeed/kernel/base/basictypes.h"
77 #include "pagespeed/kernel/base/string.h"
78 #include "pagespeed/kernel/base/string_util.h"
79 #include "pagespeed/kernel/html/html_element.h"
80 #include "pagespeed/kernel/html/html_filter.h"
82 namespace net_instaweb {
88 static const char kDelayImagesSuffix[];
89 static const char kDelayImagesInlineSuffix[];
90 static const char kImageOnloadCode[];
91 static const char kImageOnloadJsSnippet[];
97 virtual void StartElementImpl(HtmlElement* element) { }
98 virtual void EndElementImpl(HtmlElement* element);
100 virtual void EndDocument();
102 virtual const char* Name()
const {
return "DelayImages"; }
104 virtual void DetermineEnabled(GoogleString* disabled_reason);
106 static void InitStats(Statistics* statistics);
107 static void Terminate();
108 ScriptUsage GetScriptUsage()
const override {
return kWillInjectScripts; }
113 void MaybeAddImageOnloadJsSnippet(HtmlElement* element);
116 void InsertLowResImagesAndJs(HtmlElement* element,
bool insert_after_element);
119 void InsertHighResJs(HtmlElement* element);
123 bool ShouldRewriteInplace()
const;
125 int num_low_res_inlined_images_;
126 StringStringMap low_res_data_map_;
131 bool insert_low_res_images_inplace_;
137 bool lazyload_highres_images_;
139 bool is_script_inserted_;
141 bool added_image_onload_js_;
Definition: common_filter.h:47
Definition: rewrite_driver.h:98
virtual void StartDocumentImpl()
Definition: delay_images_filter.h:86