19 #ifndef NET_INSTAWEB_REWRITER_PUBLIC_CRITICAL_SELECTOR_FINDER_H_
20 #define NET_INSTAWEB_REWRITER_PUBLIC_CRITICAL_SELECTOR_FINDER_H_
22 #include "net/instaweb/rewriter/critical_keys.pb.h"
27 #include "pagespeed/kernel/base/string.h"
29 namespace net_instaweb {
44 StringSet critical_selectors;
53 static const char kCriticalSelectorsValidCount[];
54 static const char kCriticalSelectorsExpiredCount[];
55 static const char kCriticalSelectorsNotFoundCount[];
56 static const char kCriticalSelectorsPropertyName[];
63 NonceGenerator* nonce_generator, Statistics* stats);
66 static void InitStats(Statistics* statistics);
68 bool IsCriticalSelector(
RewriteDriver* driver,
const GoogleString& selector);
78 const StringSet& selector_set, StringPiece nonce,
84 const StringSet& selector_set, StringPiece nonce,
int support_interval,
87 MessageHandler* message_handler, Timer* timer);
111 void UpdateCriticalSelectorInfoInDriver(
RewriteDriver* driver);
114 NonceGenerator* nonce_generator_;
116 TimedVariable* critical_selectors_valid_count_;
117 TimedVariable* critical_selectors_expired_count_;
118 TimedVariable* critical_selectors_not_found_count_;
126 NonceGenerator* nonce_generator,
130 static void WriteCriticalSelectorsToPropertyCacheFromBeacon(
131 const StringSet& selector_set, StringPiece nonce,
138 static const int kDefaultSupportInterval = 10;
141 virtual int SupportInterval()
const {
return kDefaultSupportInterval; }
Abstract interface for implementing a PropertyPage.
Definition: property_cache.h:291
Definition: critical_selector_finder.h:43
Definition: property_cache.h:186
Adds property-semantics to a raw cache API.
Definition: property_cache.h:180
Definition: critical_selector_finder.h:123
CriticalSelectorFinder(const PropertyCache::Cohort *cohort, NonceGenerator *nonce_generator, Statistics *stats)
virtual void WriteCriticalSelectorsToPropertyCache(const StringSet &selector_set, StringPiece nonce, RewriteDriver *driver)
Definition: critical_selector_finder.h:51
BeaconMetadata PrepareForBeaconInsertion(const StringSet &selector_set, RewriteDriver *driver)
Definition: rewrite_driver.h:98
virtual int SupportInterval() const =0
Gets the SupportInterval for a new beacon result.
static void WriteCriticalSelectorsToPropertyCacheStatic(const StringSet &selector_set, StringPiece nonce, int support_interval, bool should_replace_prior_result, const PropertyCache *cache, const PropertyCache::Cohort *cohort, AbstractPropertyPage *page, MessageHandler *message_handler, Timer *timer)
virtual bool ShouldReplacePriorResult() const
Returns true if a beacon result should replace all previous results.
Definition: critical_selector_finder.h:102