19 #ifndef NET_INSTAWEB_REWRITER_PUBLIC_CRITICAL_IMAGES_BEACON_FILTER_H_
20 #define NET_INSTAWEB_REWRITER_PUBLIC_CRITICAL_IMAGES_BEACON_FILTER_H_
25 #include "pagespeed/kernel/base/basictypes.h"
26 #include "pagespeed/kernel/base/statistics.h"
27 #include "pagespeed/kernel/base/string.h"
28 #include "pagespeed/kernel/base/string_util.h"
29 #include "pagespeed/kernel/html/html_element.h"
30 #include "pagespeed/kernel/html/html_filter.h"
32 namespace net_instaweb {
40 static const char* kImageOnloadCode;
47 virtual void DetermineEnabled(GoogleString* disabled_reason);
49 static void InitStats(Statistics* statistics);
52 virtual void EndDocument();
53 virtual void StartElementImpl(HtmlElement* element) { }
54 virtual void EndElementImpl(HtmlElement* element);
55 virtual const char* Name()
const {
return "CriticalImagesBeacon"; }
56 ScriptUsage GetScriptUsage()
const override {
return kWillInjectScripts; }
61 static bool ShouldApply(RewriteDriver* rewrite_driver);
69 void MaybeAddBeaconJavascript(HtmlElement* element);
71 BeaconMetadata beacon_metadata_;
72 StringSet image_url_hashes_;
73 bool insert_beacon_js_;
75 Variable* critical_images_beacon_added_count_;
77 bool added_beacon_js_;
Definition: common_filter.h:47
static bool ShouldApply(RewriteDriver *rewrite_driver)
Definition: critical_images_beacon_filter.h:38
static const char kCriticalImagesBeaconAddedCount[]
Counters.
Definition: critical_images_beacon_filter.h:42
Definition: rewrite_driver.h:98
virtual void StartDocumentImpl()
Definition: critical_images_beacon_filter.h:51