20 #ifndef NET_INSTAWEB_REWRITER_PUBLIC_CACHE_HTML_FILTER_H_
21 #define NET_INSTAWEB_REWRITER_PUBLIC_CACHE_HTML_FILTER_H_
25 #include "net/instaweb/rewriter/cache_html_info.pb.h"
27 #include "net/instaweb/util/public/property_cache.h"
28 #include "pagespeed/kernel/base/basictypes.h"
29 #include "pagespeed/kernel/base/json.h"
30 #include "pagespeed/kernel/base/string.h"
31 #include "pagespeed/kernel/base/string_util.h"
32 #include "pagespeed/kernel/base/string_writer.h"
33 #include "pagespeed/kernel/html/html_writer_filter.h"
35 namespace net_instaweb {
48 virtual void StartDocument();
49 virtual void StartElement(HtmlElement* element);
50 virtual void EndElement(HtmlElement* element);
51 virtual void EndDocument();
52 void WriteString(StringPiece str);
54 virtual const char* Name()
const {
return "CacheHtmlFilter"; }
58 void SendNonCacheableObject(
const Json::Value& json);
62 GoogleString GetXpathOfCurrentElement(HtmlElement* element);
66 AttributesToNonCacheableValuesMap attribute_non_cacheable_values_map_;
67 std::vector<int> panel_number_num_instances_;
69 StringWriter string_writer_;
70 const HtmlElement* current_non_cacheable_element_;
71 GoogleString current_panel_id_;
72 const PropertyCache::Cohort* cohort_;
73 CacheHtmlInfo cache_html_info_;
75 std::vector<int> num_children_stack_;
Definition: rewrite_driver.h:98
Definition: rewrite_options.h:83
Definition: cache_html_filter.h:43