19 #ifndef NET_INSTAWEB_REWRITER_PUBLIC_CRITICAL_CSS_BEACON_FILTER_H_
20 #define NET_INSTAWEB_REWRITER_PUBLIC_CRITICAL_CSS_BEACON_FILTER_H_
26 #include "pagespeed/kernel/base/basictypes.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"
31 #include "pagespeed/kernel/http/semantic_type.h"
40 namespace net_instaweb {
52 static const char kInitializePageSpeedJs[];
56 static const char kCriticalCssNoBeaconDueToMissingData[];
57 static const char kCriticalCssSkippedDueToCharset[];
62 static void InitStats(Statistics* statistics);
64 virtual const char* Name()
const {
return "CriticalCssBeacon"; }
65 virtual const char* id()
const {
return "cb"; }
73 return driver()->
options()->HasInlineUnauthorizedResourceType(
74 semantic_type::kStylesheet) ?
75 RewriteDriver::kInlineUnauthorizedResources :
76 RewriteDriver::kInlineOnlyAuthorizedResources;
81 ScriptUsage GetScriptUsage()
const override {
return kWillInjectScripts; }
85 virtual void Summarize(Css::Stylesheet* stylesheet,
86 GoogleString* out)
const;
92 static void FindSelectorsFromRuleset(
const Css::Ruleset& ruleset,
93 StringSet* selectors);
95 static void FindSelectorsFromStylesheet(
const Css::Stylesheet& css,
96 StringSet* selectors);
99 void AppendSelectorsInitJs(GoogleString* script,
const StringSet& selectors);
102 void AppendBeaconInitJs(
const BeaconMetadata& metadata, GoogleString* script);
105 Variable* critical_css_beacon_added_count_;
108 Variable* critical_css_no_beacon_due_to_missing_data_;
111 Variable* critical_css_skipped_due_to_charset_;
virtual bool MustSummarize(HtmlElement *element) const
virtual void DetermineEnabled(GoogleString *disabled_reason)
virtual void Summarize(Css::Stylesheet *stylesheet, GoogleString *out) const
virtual bool IntendedForInlining() const
Selectors are inlined into javascript.
Definition: critical_css_beacon_filter.h:80
virtual void SummariesDone()
virtual RewriteDriver::InlineAuthorizationPolicy AllowUnauthorizedDomain() const
Definition: critical_css_beacon_filter.h:71
Definition: critical_css_beacon_filter.h:50
Definition: rewrite_driver.h:98
static const char kCriticalCssBeaconAddedCount[]
Statistics:
Definition: critical_css_beacon_filter.h:55
InlineAuthorizationPolicy
See CreateInputResource.
Definition: rewrite_driver.h:135
const RewriteOptions * options() const
Return the options used for this RewriteDriver.
Definition: rewrite_driver.h:490
Definition: css_summarizer_base.h:52