00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00018
00019 #ifndef NET_INSTAWEB_REWRITER_PUBLIC_LAZYLOAD_IMAGES_FILTER_H_
00020 #define NET_INSTAWEB_REWRITER_PUBLIC_LAZYLOAD_IMAGES_FILTER_H_
00021
00022 #include "base/scoped_ptr.h"
00023 #include "net/instaweb/htmlparse/public/empty_html_filter.h"
00024
00025 namespace net_instaweb {
00026
00027 class HtmlElement;
00028 class RewriteDriver;
00029 class Statistics;
00030
00072 class LazyloadImagesFilter : public EmptyHtmlFilter {
00073 public:
00074 static const char* kImageLazyloadCode;
00075 static const char* kBlankImageSrc;
00076 static const char* kImageOnloadCode;
00077 static const char* kLoadAllImages;
00078
00079 explicit LazyloadImagesFilter(RewriteDriver* driver);
00080 virtual ~LazyloadImagesFilter();
00081
00082 virtual void StartDocument();
00083 virtual void StartElement(HtmlElement* element);
00084 virtual void EndElement(HtmlElement* element);
00085
00086 virtual const char* Name() const { return "Lazyload Images"; }
00087
00088 static void Initialize(Statistics* statistics);
00089 static void Terminate();
00090
00091 private:
00092 RewriteDriver* driver_;
00094 bool main_script_inserted_;
00096 bool abort_rewrite_;
00099 bool abort_script_inserted_;
00100 };
00101
00102 }
00103
00104 #endif ///< NET_INSTAWEB_REWRITER_PUBLIC_LAZYLOAD_IMAGES_FILTER_H_