19 #ifndef NET_INSTAWEB_REWRITER_PUBLIC_ADD_INSTRUMENTATION_FILTER_H_
20 #define NET_INSTAWEB_REWRITER_PUBLIC_ADD_INSTRUMENTATION_FILTER_H_
24 #include "pagespeed/kernel/base/basictypes.h"
25 #include "pagespeed/kernel/base/string.h"
26 #include "pagespeed/kernel/base/string_util.h"
27 #include "pagespeed/kernel/html/html_element.h"
28 #include "pagespeed/kernel/html/html_filter.h"
30 namespace net_instaweb {
38 static const char kLoadTag[];
39 static const char kUnloadTag[];
40 static GoogleString* kUnloadScriptFormatXhtml;
41 static GoogleString* kTailScriptFormatXhtml;
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 "AddInstrumentation"; }
57 ScriptUsage GetScriptUsage()
const override {
return kWillInjectScripts; }
60 virtual void DetermineEnabled(GoogleString* disabled_reason);
67 GoogleString GetScriptJs(StringPiece event);
71 void AddHeadScript(HtmlElement* element);
74 bool added_head_script_;
75 bool added_unload_script_;
Definition: common_filter.h:47
Variable * instrumentation_script_added_count_
The total number of times instrumentation script is added.
Definition: add_instrumentation_filter.h:63
virtual void StartDocumentImpl()
static const char kInstrumentationScriptAddedCount[]
Counters.
Definition: add_instrumentation_filter.h:44
Definition: rewrite_driver.h:98
Injects javascript instrumentation for monitoring page-rendering time.
Definition: add_instrumentation_filter.h:36