19 #ifndef NET_INSTAWEB_REWRITER_PUBLIC_CRITICAL_CSS_BEACON_FILTER_H_
20 #define NET_INSTAWEB_REWRITER_PUBLIC_CRITICAL_CSS_BEACON_FILTER_H_
25 #include "pagespeed/kernel/base/basictypes.h"
26 #include "pagespeed/kernel/base/string.h"
27 #include "pagespeed/kernel/base/string_util.h"
28 #include "pagespeed/kernel/http/semantic_type.h"
37 namespace net_instaweb {
39 struct BeaconMetadata;
51 static const char kInitializePageSpeedJs[];
55 static const char kCriticalCssNoBeaconDueToMissingData[];
56 static const char kCriticalCssSkippedDueToCharset[];
61 static void InitStats(Statistics* statistics);
63 virtual const char* Name()
const {
return "CriticalCssBeacon"; }
64 virtual const char* id()
const {
return "cb"; }
72 return driver()->
options()->HasInlineUnauthorizedResourceType(
73 semantic_type::kStylesheet) ?
74 RewriteDriver::kInlineUnauthorizedResources :
75 RewriteDriver::kInlineOnlyAuthorizedResources;
83 virtual void Summarize(Css::Stylesheet* stylesheet,
84 GoogleString* out)
const;
90 static void FindSelectorsFromRuleset(
const Css::Ruleset& ruleset,
91 StringSet* selectors);
93 static void FindSelectorsFromStylesheet(
const Css::Stylesheet& css,
94 StringSet* selectors);
97 void AppendSelectorsInitJs(GoogleString* script,
const StringSet& selectors);
100 void AppendBeaconInitJs(
const BeaconMetadata& metadata, GoogleString* script);
103 Variable* critical_css_beacon_added_count_;
106 Variable* critical_css_no_beacon_due_to_missing_data_;
109 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:79
virtual void SummariesDone()
virtual RewriteDriver::InlineAuthorizationPolicy AllowUnauthorizedDomain() const
Definition: critical_css_beacon_filter.h:70
Definition: critical_css_beacon_filter.h:49
Definition: rewrite_driver.h:98
static const char kCriticalCssBeaconAddedCount[]
Statistics:
Definition: critical_css_beacon_filter.h:54
InlineAuthorizationPolicy
See CreateInputResource.
Definition: rewrite_driver.h:135
const RewriteOptions * options() const
Return the options used for this RewriteDriver.
Definition: rewrite_driver.h:478
Definition: css_summarizer_base.h:52