Page Speed Optimization Libraries
1.13.35.1
|
#include "test_rewrite_driver_factory.h"
Classes | |
class | CreateFilterCallback |
class | CreateRewriterCallback |
class | PlatformSpecificConfigurationCallback |
Public Member Functions | |
TestRewriteDriverFactory (const ProcessContext &process_context, const StringPiece &temp_dir, MockUrlFetcher *mock_fetcher) | |
DelayCache * | delay_cache () |
LRUCache * | lru_cache () |
MockTimer * | mock_timer () |
MockHasher * | mock_hasher () |
MemFileSystem * | mem_file_system () |
MockUrlFetcher * | mock_url_async_fetcher () |
WaitUrlAsyncFetcher * | wait_url_async_fetcher () |
CountingUrlAsyncFetcher * | counting_url_async_fetcher () |
MockTimeCache * | mock_time_cache () |
void | SetupWaitFetcher () |
void | CallFetcherCallbacksForDriver (RewriteDriver *driver) |
MockMessageHandler * | mock_message_handler () |
MockScheduler * | mock_scheduler () |
bool | use_test_url_namer () const |
void | SetUseTestUrlNamer (bool x) |
void | AddCreateFilterCallback (CreateFilterCallback *callback) |
Does NOT take ownership of the callback. | |
void | ClearFilterCallbackVector () |
void | AddCreateRewriterCallback (CreateRewriterCallback *callback) |
Does NOT take ownership of the callback. | |
void | ClearRewriterCallbackVector () |
virtual bool | UseBeaconResultsInFilters () const |
By default this is false, but can be reset. | |
void | set_use_beacon_results_in_filters (bool b) |
void | AddPlatformSpecificConfigurationCallback (PlatformSpecificConfigurationCallback *callback) |
Does NOT take ownership of the callback. | |
void | ClearPlatformSpecificConfigurationCallback () |
virtual RewriteOptions * | NewRewriteOptions () |
Note that this disables ajax rewriting by default. | |
virtual ServerContext * | NewServerContext () |
Note that this enables html proxying. | |
virtual ServerContext * | NewDecodingServerContext () |
virtual bool | IsDebugClient (const GoogleString &ip) const |
Base method that returns true if the given ip is a debug ip. | |
void | set_add_platform_specific_decoding_passes (bool value) |
bool | add_platform_specific_decoding_passes () const |
void | AdvanceTimeMs (int64 delta_ms) |
Advances the mock scheduler by delta_ms. | |
const PropertyCache::Cohort * | SetupCohort (PropertyCache *cache, const GoogleString &cohort_name) |
Sets up the cohort in the PropertyCache provided. | |
CachePropertyStore * | cache_property_store () |
Public Member Functions inherited from net_instaweb::RewriteDriverFactory | |
RewriteDriverFactory (const ProcessContext &process_context, ThreadSystem *thread_system) | |
Takes ownership of thread_system. | |
void | InitializeDefaultOptions () |
void | set_html_parse_message_handler (MessageHandler *message_handler) |
void | set_message_handler (MessageHandler *message_handler) |
void | set_file_system (FileSystem *file_system) |
void | set_hasher (Hasher *hasher) |
void | set_nonce_generator (NonceGenerator *nonce_generator) |
void | set_url_namer (UrlNamer *url_namer) |
void | set_signature (SHA1Signature *signature) |
void | set_timer (Timer *timer) |
void | set_usage_data_reporter (UsageDataReporter *reporter) |
void | set_slurp_directory (const StringPiece &directory) |
void | set_slurp_read_only (bool read_only) |
void | set_slurp_print_urls (bool read_only) |
void | set_force_caching (bool u) |
void | set_base_url_async_fetcher (UrlAsyncFetcher *url_fetcher) |
bool | set_filename_prefix (StringPiece p) |
bool | slurping_enabled () const |
Determines whether Slurping is enabled. | |
MessageHandler * | html_parse_message_handler () |
MessageHandler * | message_handler () |
FileSystem * | file_system () |
NonceGenerator * | nonce_generator () |
Hasher * | hasher () |
UrlNamer * | url_namer () |
UserAgentMatcher * | user_agent_matcher () |
StaticAssetManager * | static_asset_manager () |
SHA1Signature * | signature () |
RewriteOptions * | default_options () |
virtual RewriteOptionsManager * | NewRewriteOptionsManager () |
Timer * | timer () |
NamedLockManager * | lock_manager () |
QueuedWorkerPool * | WorkerPool (WorkerPoolCategory pool) |
Scheduler * | scheduler () |
UsageDataReporter * | usage_data_reporter () |
const pagespeed::js::JsTokenizerPatterns * | js_tokenizer_patterns () const |
const std::vector< const UserAgentNormalizer * > & | user_agent_normalizers () |
virtual UrlAsyncFetcher * | ComputeUrlAsyncFetcher () |
ServerContext * | CreateServerContext () |
void | InitServerContext (ServerContext *server_context) |
ThreadSystem * | thread_system () |
const StringSet & | created_directories () const |
bool | async_rewrites () |
RewriteStats * | rewrite_stats () |
virtual bool | HasWaveforms () const |
Returns true if the server supports waveforms in its status page. | |
Statistics * | statistics () |
void | SetStatistics (Statistics *stats) |
Does not take ownership of Statistics. | |
virtual void | ShutDown () |
void | AddCreatedDirectory (const GoogleString &dir) |
Registers the directory as having been created by us. | |
virtual RewriteOptions * | NewRewriteOptionsForQuery () |
const GoogleString & | version_string () const |
get/set the version placed into the X-[Mod-]Page(s|-S)peed header. | |
void | set_version_string (const StringPiece &version_string) |
void | defer_cleanup (Function *f) |
template<class T > | |
void | TakeOwnership (T *obj) |
virtual ExperimentMatcher * | NewExperimentMatcher () |
Static Public Member Functions | |
static void | InitStats (Statistics *statistics) |
Static Public Member Functions inherited from net_instaweb::RewriteDriverFactory | |
static void | InitializeDefaultOptions (RewriteOptions *options) |
static void | InitStats (Statistics *statistics) |
static void | Initialize () |
Initializes static variables. Initialize/Terminate calls must be paired. | |
static void | Terminate () |
Static Public Attributes | |
static const int64 | kStartTimeMs |
Arbitrary time to start MockTimer. | |
static const char | kUrlNamerScheme [] |
Env.var URL_NAMER_SCHEME. | |
static const int | kMaxFetchGlobalQueueSize = 500 |
static const int | kFetchesPerHostOutgoingRequestThreshold = 100 |
static const int | kFetchesPerHostQueuedRequestThreshold = 500 |
Protected Member Functions | |
virtual Hasher * | NewHasher () |
virtual MessageHandler * | DefaultHtmlParseMessageHandler () |
virtual MessageHandler * | DefaultMessageHandler () |
virtual UrlAsyncFetcher * | DefaultAsyncUrlFetcher () |
virtual FileSystem * | DefaultFileSystem () |
virtual NonceGenerator * | DefaultNonceGenerator () |
virtual Timer * | DefaultTimer () |
virtual void | SetupCaches (ServerContext *server_context) |
virtual UrlNamer * | DefaultUrlNamer () |
virtual Scheduler * | CreateScheduler () |
virtual void | AddPlatformSpecificDecodingPasses (RewriteDriver *driver) |
virtual void | AddPlatformSpecificRewritePasses (RewriteDriver *driver) |
virtual void | ApplyPlatformSpecificConfiguration (RewriteDriver *driver) |
virtual NamedLockManager * | DefaultLockManager () |
Protected Member Functions inherited from net_instaweb::RewriteDriverFactory | |
bool | FetchersComputed () const |
virtual void | StopCacheActivity () |
StringPiece | filename_prefix () |
bool | TerminateServerContext (ServerContext *server_context) |
virtual SHA1Signature * | DefaultSignature () |
virtual CriticalImagesFinder * | DefaultCriticalImagesFinder (ServerContext *server_context) |
virtual CriticalSelectorFinder * | DefaultCriticalSelectorFinder (ServerContext *server_context) |
virtual UserAgentMatcher * | DefaultUserAgentMatcher () |
virtual UsageDataReporter * | DefaultUsageDataReporter () |
virtual void | AddPlatformSpecificUserAgentNormalizers (std::vector< const UserAgentNormalizer * > *out) |
virtual QueuedWorkerPool * | CreateWorkerPool (WorkerPoolCategory pool, StringPiece name) |
virtual int | LowPriorityLoadSheddingThreshold () const |
virtual void | FetcherSetupHooks () |
Called before creating the url fetchers. | |
virtual StringPiece | LockFilePrefix () |
virtual void | InitStaticAssetManager (StaticAssetManager *static_asset_manager) |
Initializes the StaticAssetManager. | |
void | InitStubDecodingServerContext (ServerContext *context) |
virtual std::shared_ptr < CentralController > | GetCentralController (NamedLockManager *lock_manager) |
void | RebuildDecodingDriverForTests (ServerContext *server_context) |
For use in tests. | |
void | reset_default_options (RewriteOptions *new_defaults) |
Additional Inherited Members | |
Public Types inherited from net_instaweb::RewriteDriverFactory | |
enum | WorkerPoolCategory { kHtmlWorkers, kRewriteWorkers, kLowPriorityRewriteWorkers, kNumWorkerPools } |
RewriteDriverFactory implementation for use in tests, using mock time, mock fetchers, and a memory-based file system.
|
protectedvirtual |
Provides an optional hook for adding rewriters to the .pagespeed. resource decoding chain. This should be used for rewriters that are specific to a particular RewriteDriverFactory implementation. The caller should only use the resulting driver for reconstructing a .pagespeed. resource, not for transforming HTML. Therefore, implementations should add any platform-specific rewriter whose id might appear in a .pagespeed. URL. This should be done independent of RewriteOptions, since we only store a single decoding driver globally to save memory.
Reimplemented from net_instaweb::RewriteDriverFactory.
|
protectedvirtual |
Provides an optional hook for adding rewrite passes to the HTML filter chain. This should be used for filters that are specific to a particular RewriteDriverFactory implementation.
Reimplemented from net_instaweb::RewriteDriverFactory.
|
protectedvirtual |
Provides an optional hook for customizing the RewriteDriver object using the options set on it. This is called before RewriteDriver::AddFilters() and AddPlatformSpecificRewritePasses().
Reimplemented from net_instaweb::RewriteDriverFactory.
|
protectedvirtual |
Subclasses can override this to create an appropriate Scheduler subclass if the default isn't acceptable.
Reimplemented from net_instaweb::RewriteDriverFactory.
|
protectedvirtual |
Implementors of RewriteDriverFactory must supply default definitions for each of these methods, although they may be overridden via set_ methods above. These methods all instantiate objects and transfer ownership to the caller.
Implements net_instaweb::RewriteDriverFactory.
|
protectedvirtual |
They may also supply a custom lock manager. The default implementation will use the file system.
Reimplemented from net_instaweb::RewriteDriverFactory.
|
protectedvirtual |
They may also supply a custom Url namer. The default implementation performs sharding and appends '.pagespeed.<filter>.<hash>.<extension>'.
Reimplemented from net_instaweb::RewriteDriverFactory.
|
virtual |
Create a new ServerContext used for decoding only. Unlike NewServerContext, the resulting ServerContext should not be fresh, but should have some of its platform dependencies injected — but just enough for decoding URLs, and not full operation. At the time of writing it needs the timer, url namer, hasher, message handler, and stats; expensive stuff like cache backends is not needed, however.
You may find InitStubDecodingServerContext() useful for doing that, as it will inject all of these from what's available in 'this'.
Implements net_instaweb::RewriteDriverFactory.
|
inline |
Enable or disable adding the contents of rewriter_callback_vector_ within AddPlatformSpecificRewritePasses. You'll also want to call RebuildDecodingDriverForTests.
|
protectedvirtual |
Called from InitServerContext, but virtualized separately as it is platform-specific. This method must call on the server context: set_http_cache, set_metadata_cache, set_filesystem_metadata_cache, and MakePropertyCaches.
Implements net_instaweb::RewriteDriverFactory.
|
static |
These constants are used to initialize the rate-controlling fetcher, which is instantiated unconditionally, with limits high enough that no tests will hit this unless they are trying to.