Page Speed Optimization Libraries
1.13.35.1
|
#include "rewrite_options.h"
Classes | |
class | AllowVaryOn |
struct | BeaconUrl |
struct | Color |
class | DeprecatedProperty |
struct | ElementAttributeCategory |
Represents the content type of user-defined url-valued attributes. More... | |
class | ExperimentSpec |
struct | FilterEnumToIdAndNameEntry |
Maps a filter's enum (kAddHead) to its id ("ah") and name ("Add Head"). More... | |
struct | MobTheme |
struct | NameValue |
class | Option |
class | OptionBase |
class | OptionTemplateBase |
class | Properties |
class | Property |
class | PropertyBase |
class | PropertyLeaf |
class | ResponsiveDensities |
Public Types | |
enum | Filter { kAddBaseTag, kAddHead, kAddIds, kAddInstrumentation, kComputeStatistics, kCachePartialHtmlDeprecated, kCanonicalizeJavascriptLibraries, kCollapseWhitespace, kCombineCss, kCombineHeads, kCombineJavascript, kComputeCriticalCss, kComputeVisibleTextDeprecated, kConvertGifToPng, kConvertJpegToProgressive, kConvertJpegToWebp, kConvertMetaTags, kConvertPngToJpeg, kConvertToWebpAnimated, kConvertToWebpLossless, kDebug, kDecodeRewrittenUrls, kDedupInlinedImages, kDeferIframe, kDeferJavascript, kDelayImages, kDeterministicJs, kDisableJavascript, kDivStructure, kElideAttributes, kExperimentCollectMobImageInfo, kExperimentHttp2, kExplicitCloseTags, kExtendCacheCss, kExtendCacheImages, kExtendCachePdfs, kExtendCacheScripts, kFallbackRewriteCssUrls, kFixReflows, kFlattenCssImports, kFlushSubresources, kHandleNoscriptRedirect, kHintPreloadSubresources, kHtmlWriterFilter, kIncludeJsSourceMaps, kInlineCss, kInlineGoogleFontCss, kInlineImages, kInlineImportToLink, kInlineJavascript, kInPlaceOptimizeForBrowser, kInsertAmpLink, kInsertDnsPrefetch, kInsertGA, kInsertImageDimensions, kJpegSubsampling, kLazyloadImages, kLeftTrimUrls, kLocalStorageCache, kMakeGoogleAnalyticsAsync, kMakeShowAdsAsync, kMobilize, kMobilizePrecompute, kMoveCssAboveScripts, kMoveCssToHead, kOutlineCss, kOutlineJavascript, kPedantic, kPrioritizeCriticalCss, kRecompressJpeg, kRecompressPng, kRecompressWebp, kRemoveComments, kRemoveQuotes, kResizeImages, kResizeMobileImages, kResizeToRenderedImageDimensions, kResponsiveImages, kResponsiveImagesZoom, kRewriteCss, kRewriteDomains, kRewriteJavascriptExternal, kRewriteJavascriptInline, kRewriteStyleAttributes, kRewriteStyleAttributesWithUrl, kServeDeprecationNotice, kSplitHtml, kSplitHtmlHelper, kSpriteImages, kStripImageColorProfile, kStripImageMetaData, kStripScripts, kEndOfFilters } |
enum | EnabledEnum { kEnabledOff, kEnabledOn, kEnabledUnplugged, kEnabledStandby } |
enum | OptionScope { kQueryScope, kDirectoryScope, kServerScope, kLegacyProcessScope, kProcessScopeStrict } |
enum | RewriteLevel { kPassThrough, kOptimizeForBandwidth, kCoreFilters, kMobilizeFilters, kTestingCoreFilters, kAllFilters } |
enum | OptionSettingResult { kOptionOk, kOptionNameUnknown, kOptionValueInvalid } |
Used for return value of SetOptionFromName. | |
typedef EnumSet< Filter, kEndOfFilters > | FilterSet |
typedef std::vector< Filter > | FilterVector |
typedef std::set< GoogleString > | FilterIdSet |
Convenience name for a set of rewrite filter ids. | |
typedef std::pair < GoogleString, GoogleString > | OptionStringPair |
typedef std::set < OptionStringPair > | OptionSet |
typedef std::vector < PropertyBase * > | PropertyVector |
typedef std::vector< OptionBase * > | OptionBaseVector |
Convenience name for a set of rewrite options. | |
typedef std::set < semantic_type::Category > | ResourceCategorySet |
Public Member Functions | |
bool | AllowVaryOnAuto () const |
bool | AllowVaryOnAccept () const |
bool | AllowVaryOnSaveData () const |
bool | AllowVaryOnUserAgent () const |
GoogleString | AllowVaryOnToString () const |
bool | SupportSaveData () const |
void | set_allow_vary_on (const AllowVaryOn &x) |
int64 | ImageJpegQuality () const |
Image qualities and parameters, after applying the inheritance rules. | |
int64 | ImageJpegQualityForSmallScreen () const |
int64 | ImageJpegQualityForSaveData () const |
int64 | ImageWebpQuality () const |
int64 | ImageWebpQualityForSmallScreen () const |
int64 | ImageWebpQualityForSaveData () const |
int64 | ImageWebpAnimatedQuality () const |
int64 | ImageJpegNumProgressiveScansForSmallScreen () const |
bool | HasValidSmallScreenQualities () const |
bool | HasValidSaveDataQualities () const |
bool | ImageOptimizationEnabled () const |
RewriteOptions (ThreadSystem *thread_system) | |
bool | ModificationOK () const |
bool | MergeOK () const |
void | InitializeOptions (const Properties *properties) |
bool | modified () const |
void | SetDefaultRewriteLevel (RewriteLevel level) |
void | SetRewriteLevel (RewriteLevel level) |
bool | ValidateConfiguredHttpHeader (const GoogleString &name, const GoogleString &value, GoogleString *error_message) |
bool | ValidateAndAddResourceHeader (const StringPiece &name, const StringPiece &value, GoogleString *error_message) |
void | AddResourceHeader (const StringPiece &name, const StringPiece &value) |
const NameValue * | resource_header (int i) const |
int | num_resource_headers () const |
void | AddCustomFetchHeader (const StringPiece &name, const StringPiece &value) |
Specify a header to insert when fetching subresources. | |
const NameValue * | custom_fetch_header (int i) const |
int | num_custom_fetch_headers () const |
ExperimentSpec * | GetExperimentSpec (int id) const |
bool | AvailableExperimentId (int id) |
virtual ExperimentSpec * | AddExperimentSpec (const StringPiece &spec, MessageHandler *handler) |
virtual bool | SetExperimentState (int id) |
void | SetExperimentStateStr (const StringPiece &experiment_index) |
int | experiment_id () const |
int | experiment_spec_id (int i) const |
GoogleString | GetExperimentStateStr () const |
ExperimentSpec * | experiment_spec (int i) const |
int | num_experiments () const |
bool | enroll_experiment () const |
void | AddUrlValuedAttribute (const StringPiece &element, const StringPiece &attribute, semantic_type::Category category) |
void | UrlValuedAttribute (int index, StringPiece *element, StringPiece *attribute, semantic_type::Category *category) const |
int | num_url_valued_attributes () const |
void | AddInlineUnauthorizedResourceType (semantic_type::Category category) |
bool | HasInlineUnauthorizedResourceType (semantic_type::Category category) const |
void | ClearInlineUnauthorizedResourceTypes () |
void | set_inline_unauthorized_resource_types (ResourceCategorySet x) |
bool | RegisterLibrary (uint64 bytes, StringPiece md5_hash, StringPiece canonical_url) |
Store size, md5 hash and canonical url for library recognition. | |
const JavascriptLibraryIdentification * | javascript_library_identification () const |
RewriteLevel | level () const |
bool | AdjustFiltersByCommaSeparatedList (const StringPiece &filters, MessageHandler *handler) |
bool | EnableFiltersByCommaSeparatedList (const StringPiece &filters, MessageHandler *handler) |
bool | DisableFiltersByCommaSeparatedList (const StringPiece &filters, MessageHandler *handler) |
bool | ForbidFiltersByCommaSeparatedList (const StringPiece &filters, MessageHandler *handler) |
void | DisableAllFilters () |
Set rewrite level to kPassThrough and explicitly disable all filters. | |
void | DisableAllFiltersNotExplicitlyEnabled () |
void | EnableFilter (Filter filter) |
void | ForceEnableFilter (Filter filter) |
void | DisableFilter (Filter filter) |
void | DisableIfNotExplictlyEnabled (Filter filter) |
void | ForbidFilter (Filter filter) |
void | EnableFilters (const FilterSet &filter_set) |
void | DisableFilters (const FilterSet &filter_set) |
void | ForbidFilters (const FilterSet &filter_set) |
void | ClearFilters () |
void | SoftEnableFilterForTesting (Filter filter) |
void | EnableExtendCacheFilters () |
bool | Enabled (Filter filter) const |
bool | Forbidden (Filter filter) const |
bool | Forbidden (StringPiece filter_id) const |
void | GetEnabledFiltersRequiringScriptExecution (FilterVector *filters) const |
Returns the set of enabled filters that require JavaScript for execution. | |
void | DisableFiltersRequiringScriptExecution () |
Disables all filters that depend on executing custom javascript. | |
void | DisableFiltersThatCantRunInAjax () |
Disables all filters that cannot be run in an Ajax call. | |
bool | RequiresAddHead () const |
bool | UsePerOriginPropertyCachePage () const |
OptionSettingResult | SetOptionFromName (StringPiece name, StringPiece value, GoogleString *msg) |
OptionSettingResult | SetOptionFromName (StringPiece name, StringPiece value) |
Like above, but doesn't bother formatting the error message. | |
OptionSettingResult | SetOptionFromQuery (StringPiece name, StringPiece value) |
OptionSettingResult | SetOptionFromRemoteConfig (StringPiece name, StringPiece value) |
GoogleString | ScopeEnumToString (OptionScope scope) |
virtual OptionSettingResult | ParseAndSetOptionFromName1 (StringPiece name, StringPiece arg, GoogleString *msg, MessageHandler *handler) |
OptionSettingResult | ParseAndSetOptionFromNameWithScope (StringPiece name, StringPiece arg, OptionScope max_scope, GoogleString *msg, MessageHandler *handler) |
virtual OptionSettingResult | ParseAndSetOptionFromName2 (StringPiece name, StringPiece arg1, StringPiece arg2, GoogleString *msg, MessageHandler *handler) |
virtual OptionSettingResult | ParseAndSetOptionFromName3 (StringPiece name, StringPiece arg1, StringPiece arg2, StringPiece arg3, GoogleString *msg, MessageHandler *handler) |
bool | OptionValue (StringPiece option_name, const char **id, bool *was_set, GoogleString *value) const |
bool | SetOptionsFromName (const OptionSet &option_set, MessageHandler *handler) |
bool | SetOptionFromNameAndLog (StringPiece name, StringPiece value, MessageHandler *handler) |
int64 | css_outline_min_bytes () const |
void | set_css_outline_min_bytes (int64 x) |
const GoogleString & | ga_id () const |
void | set_ga_id (const GoogleString &id) |
void | set_content_experiment_id (const GoogleString &s) |
const GoogleString & | content_experiment_id () const |
void | set_content_experiment_variant_id (const GoogleString &s) |
const GoogleString & | content_experiment_variant_id () const |
bool | is_content_experiment () const |
bool | use_analytics_js () const |
void | set_use_analytics_js (bool x) |
bool | increase_speed_tracking () const |
void | set_increase_speed_tracking (bool x) |
int64 | js_outline_min_bytes () const |
void | set_js_outline_min_bytes (int64 x) |
int64 | progressive_jpeg_min_bytes () const |
void | set_progressive_jpeg_min_bytes (int64 x) |
int64 | css_flatten_max_bytes () const |
void | set_css_flatten_max_bytes (int64 x) |
bool | cache_small_images_unrewritten () const |
void | set_cache_small_images_unrewritten (bool x) |
int64 | image_resolution_limit_bytes () const |
void | set_image_resolution_limit_bytes (int64 x) |
int64 | ImageInlineMaxBytes () const |
Retrieve the image inlining threshold, but return 0 if it's disabled. | |
void | set_image_inline_max_bytes (int64 x) |
int64 | CssImageInlineMaxBytes () const |
Retrieve the css image inlining threshold, but return 0 if it's disabled. | |
void | set_css_image_inline_max_bytes (int64 x) |
int64 | MaxImageInlineMaxBytes () const |
The larger of ImageInlineMaxBytes and CssImageInlineMaxBytes. | |
int64 | css_inline_max_bytes () const |
void | set_css_inline_max_bytes (int64 x) |
int64 | google_font_css_inline_max_bytes () const |
void | set_google_font_css_inline_max_bytes (int64 x) |
int64 | js_inline_max_bytes () const |
void | set_js_inline_max_bytes (int64 x) |
int64 | max_html_cache_time_ms () const |
void | set_max_html_cache_time_ms (int64 x) |
int64 | max_html_parse_bytes () const |
void | set_max_html_parse_bytes (int64 x) |
int64 | max_cacheable_response_content_length () const |
void | set_max_cacheable_response_content_length (int64 x) |
int64 | min_resource_cache_time_to_rewrite_ms () const |
void | set_min_resource_cache_time_to_rewrite_ms (int64 x) |
bool | need_to_store_experiment_data () const |
void | set_need_to_store_experiment_data (bool x) |
int64 | blocking_fetch_timeout_ms () const |
void | set_blocking_fetch_timeout_ms (int64 x) |
bool | override_ie_document_mode () const |
void | set_override_ie_document_mode (bool x) |
bool | preserve_subresource_hints () const |
void | set_preserve_subresource_hints (bool x) |
bool | preserve_url_relativity () const |
void | set_preserve_url_relativity (bool x) |
bool | IsUrlCacheValid (StringPiece url, int64 time_ms, bool search_wildcards) const |
void | AddUrlCacheInvalidationEntry (StringPiece url_pattern, int64 timestamp_ms, bool ignores_metadata_and_pcache) |
void | PurgeUrl (StringPiece url, int64 timestamp_ms) |
Purge a cache entry for an exact URL, not a wildcard. | |
bool | IsUrlCacheInvalidationEntriesSorted () const |
void | set_cache_invalidation_timestamp_mutex (ThreadSystem::RWLock *lock) |
int64 | cache_invalidation_timestamp () const |
bool | has_cache_invalidation_timestamp_ms () const |
bool | UpdateCacheInvalidationTimestampMs (int64 timestamp_ms) LOCKS_EXCLUDED(cache_purge_mutex_.get()) |
bool | UpdateCachePurgeSet (const CopyOnWrite< PurgeSet > &purge_set) LOCKS_EXCLUDED(cache_purge_mutex_.get()) |
GoogleString | PurgeSetString () const |
int64 | idle_flush_time_ms () const |
void | set_idle_flush_time_ms (int64 x) |
int64 | flush_buffer_limit_bytes () const |
How much accumulated HTML will result in PSA introducing a flush. | |
void | set_flush_buffer_limit_bytes (int64 x) |
int | max_url_segment_size () const |
void | set_max_url_segment_size (int x) |
int | image_max_rewrites_at_once () const |
void | set_image_max_rewrites_at_once (int x) |
int | max_url_size () const |
The maximum size of the entire URL. If '0', this is left unlimited. | |
void | set_max_url_size (int x) |
int | rewrite_deadline_ms () const |
void | set_rewrite_deadline_ms (int x) |
bool | test_instant_fetch_rewrite_deadline () const |
void | set_test_instant_fetch_rewrite_deadline (bool x) |
void | set_test_only_prioritize_critical_css_dont_apply_original_css (bool x) |
bool | test_only_prioritize_critical_css_dont_apply_original_css () const |
int | domain_shard_count () const |
void | set_domain_shard_count (int64 x) |
void | set_enabled (EnabledEnum x) |
bool | enabled () const |
bool | unplugged () const |
bool | standby () const |
void | set_add_options_to_urls (bool x) |
bool | add_options_to_urls () const |
void | set_publicly_cache_mismatched_hashes_experimental (bool x) |
bool | publicly_cache_mismatched_hashes_experimental () const |
void | set_oblivious_pagespeed_urls (bool x) |
bool | oblivious_pagespeed_urls () const |
void | set_in_place_rewriting_enabled (bool x) |
bool | in_place_rewriting_enabled () const |
void | set_in_place_wait_for_optimized (bool x) |
bool | in_place_wait_for_optimized () const |
void | set_in_place_rewrite_deadline_ms (int x) |
int | in_place_rewrite_deadline_ms () const |
void | set_in_place_s_maxage_sec (int x) |
int | in_place_s_maxage_sec () const |
int | EffectiveInPlaceSMaxAgeSec () const |
void | set_in_place_preemptive_rewrite_css (bool x) |
bool | in_place_preemptive_rewrite_css () const |
void | set_in_place_preemptive_rewrite_css_images (bool x) |
bool | in_place_preemptive_rewrite_css_images () const |
void | set_in_place_preemptive_rewrite_images (bool x) |
bool | in_place_preemptive_rewrite_images () const |
void | set_in_place_preemptive_rewrite_javascript (bool x) |
bool | in_place_preemptive_rewrite_javascript () const |
void | set_private_not_vary_for_ie (bool x) |
bool | private_not_vary_for_ie () const |
void | set_combine_across_paths (bool x) |
bool | combine_across_paths () const |
void | set_log_background_rewrites (bool x) |
bool | log_background_rewrites () const |
void | set_log_mobilization_samples (bool x) |
bool | log_mobilization_samples () const |
void | set_log_rewrite_timing (bool x) |
bool | log_rewrite_timing () const |
void | set_log_url_indices (bool x) |
bool | log_url_indices () const |
void | set_lowercase_html_names (bool x) |
bool | lowercase_html_names () const |
void | set_always_rewrite_css (bool x) |
bool | always_rewrite_css () const |
void | set_respect_vary (bool x) |
bool | respect_vary () const |
void | set_respect_x_forwarded_proto (bool x) |
bool | respect_x_forwarded_proto () const |
void | set_flush_html (bool x) |
bool | flush_html () const |
void | set_serve_stale_if_fetch_error (bool x) |
bool | serve_stale_if_fetch_error () const |
void | set_serve_xhr_access_control_headers (bool x) |
bool | serve_xhr_access_control_headers () const |
void | set_proactively_freshen_user_facing_request (bool x) |
bool | proactively_freshen_user_facing_request () const |
void | set_serve_stale_while_revalidate_threshold_sec (int64 x) |
int64 | serve_stale_while_revalidate_threshold_sec () const |
void | set_default_cache_html (bool x) |
bool | default_cache_html () const |
void | set_modify_caching_headers (bool x) |
bool | modify_caching_headers () const |
void | set_inline_only_critical_images (bool x) |
bool | inline_only_critical_images () const |
void | set_critical_images_beacon_enabled (bool x) |
bool | critical_images_beacon_enabled () const |
void | set_beacon_reinstrument_time_sec (int x) |
int | beacon_reinstrument_time_sec () const |
void | set_accept_invalid_signatures (bool x) |
bool | accept_invalid_signatures () const |
void | set_remote_configuration_timeout_ms (int64 x) |
int64 | remote_configuration_timeout_ms () const |
void | set_remote_configuration_url (StringPiece p) |
const GoogleString & | remote_configuration_url () const |
void | set_http_cache_compression_level (int x) |
int | http_cache_compression_level () const |
void | set_request_option_override (StringPiece p) |
const GoogleString & | request_option_override () const |
void | set_url_signing_key (StringPiece p) |
const GoogleString & | url_signing_key () const |
void | set_lazyload_images_after_onload (bool x) |
bool | lazyload_images_after_onload () const |
void | set_lazyload_images_blank_url (StringPiece p) |
const GoogleString & | lazyload_images_blank_url () const |
void | set_max_inlined_preview_images_index (int x) |
int | max_inlined_preview_images_index () const |
void | set_use_blank_image_for_inline_preview (bool x) |
bool | use_blank_image_for_inline_preview () const |
void | set_min_image_size_low_resolution_bytes (int64 x) |
int64 | min_image_size_low_resolution_bytes () const |
void | set_max_image_size_low_resolution_bytes (int64 x) |
int64 | max_image_size_low_resolution_bytes () const |
void | set_experiment_cookie_duration_ms (int64 x) |
int64 | experiment_cookie_duration_ms () const |
void | set_finder_properties_cache_expiration_time_ms (int64 x) |
int64 | finder_properties_cache_expiration_time_ms () const |
void | set_finder_properties_cache_refresh_time_ms (int64 x) |
int64 | finder_properties_cache_refresh_time_ms () const |
void | set_rewrite_random_drop_percentage (int x) |
int | rewrite_random_drop_percentage () const |
bool | css_preserve_urls () const |
void | set_css_preserve_urls (bool x) |
bool | image_preserve_urls () const |
void | set_image_preserve_urls (bool x) |
bool | js_preserve_urls () const |
void | set_js_preserve_urls (bool x) |
void | set_metadata_cache_staleness_threshold_ms (int64 x) |
int64 | metadata_cache_staleness_threshold_ms () const |
void | set_metadata_input_errors_cache_ttl_ms (int64 x) |
int64 | metadata_input_errors_cache_ttl_ms () const |
const GoogleString & | downstream_cache_purge_method () const |
void | set_downstream_cache_purge_method (StringPiece p) |
const GoogleString & | downstream_cache_purge_location_prefix () const |
void | set_downstream_cache_purge_location_prefix (StringPiece p) |
bool | IsDownstreamCacheIntegrationEnabled () const |
void | set_downstream_cache_rebeaconing_key (StringPiece p) |
const GoogleString & | downstream_cache_rebeaconing_key () const |
bool | IsDownstreamCacheRebeaconingKeyConfigured () const |
bool | MatchesDownstreamCacheRebeaconingKey (StringPiece key) const |
void | set_downstream_cache_rewritten_percentage_threshold (int64 x) |
int64 | downstream_cache_rewritten_percentage_threshold () const |
const BeaconUrl & | beacon_url () const |
void | set_beacon_url (const GoogleString &beacon_url) |
virtual bool | trim_urls_in_css () const |
Return false in a subclass if you want to disallow all URL trimming in CSS. | |
void | set_image_jpeg_recompress_quality (int64 x) |
void | set_image_jpeg_recompress_quality_for_small_screens (int64 x) |
void | set_image_jpeg_quality_for_save_data (int64 x) |
int64 | image_recompress_quality () const |
void | set_image_recompress_quality (int64 x) |
int | image_limit_optimized_percent () const |
void | set_image_limit_optimized_percent (int x) |
int | image_limit_resize_area_percent () const |
void | set_image_limit_resize_area_percent (int x) |
int | image_limit_rendered_area_percent () const |
void | set_image_limit_rendered_area_percent (int x) |
int64 | image_jpeg_num_progressive_scans () const |
void | set_image_jpeg_num_progressive_scans (int64 x) |
void | set_image_jpeg_num_progressive_scans_for_small_screens (int64 x) |
void | set_image_webp_recompress_quality (int64 x) |
void | set_image_webp_recompress_quality_for_small_screens (int64 x) |
void | set_image_webp_animated_recompress_quality (int64 x) |
void | set_image_webp_quality_for_save_data (int64 x) |
int64 | image_webp_timeout_ms () const |
void | set_image_webp_timeout_ms (int64 x) |
bool | domain_rewrite_hyperlinks () const |
void | set_domain_rewrite_hyperlinks (bool x) |
bool | domain_rewrite_cookies () const |
void | set_domain_rewrite_cookies (bool x) |
bool | client_domain_rewrite () const |
void | set_client_domain_rewrite (bool x) |
void | set_follow_flushes (bool x) |
bool | follow_flushes () const |
void | set_enable_defer_js_experimental (bool x) |
bool | enable_defer_js_experimental () const |
void | set_disable_rewrite_on_no_transform (bool x) |
bool | disable_rewrite_on_no_transform () const |
void | set_disable_background_fetches_for_bots (bool x) |
bool | disable_background_fetches_for_bots () const |
void | set_enable_cache_purge (bool x) |
bool | enable_cache_purge () const |
void | set_proactive_resource_freshening (bool x) |
bool | proactive_resource_freshening () const |
void | set_lazyload_highres_images (bool x) |
bool | lazyload_highres_images () const |
void | set_use_fallback_property_cache_values (bool x) |
bool | use_fallback_property_cache_values () const |
void | set_await_pcache_lookup (bool x) |
bool | await_pcache_lookup () const |
void | set_enable_prioritizing_scripts (bool x) |
bool | enable_prioritizing_scripts () const |
const GoogleString & | blocking_rewrite_key () const |
void | set_blocking_rewrite_key (StringPiece p) |
void | EnableBlockingRewriteForRefererUrlPattern (StringPiece url_pattern) |
bool | IsBlockingRewriteEnabledForReferer (StringPiece url) const |
bool | IsBlockingRewriteRefererUrlPatternPresent () const |
bool | rewrite_uncacheable_resources () const |
void | set_rewrite_uncacheable_resources (bool x) |
void | set_running_experiment (bool x) |
bool | running_experiment () const |
void | set_experiment_ga_slot (int x) |
x should be between 1 and 5 inclusive. | |
int | experiment_ga_slot () const |
void | set_enroll_experiment_id (int x) |
int | enroll_experiment_id () const |
void | set_report_unload_time (bool x) |
bool | report_unload_time () const |
void | set_implicit_cache_ttl_ms (int64 x) |
int64 | implicit_cache_ttl_ms () const |
void | set_load_from_file_cache_ttl_ms (int64 x) |
int64 | load_from_file_cache_ttl_ms () const |
bool | load_from_file_cache_ttl_ms_was_set () const |
void | set_x_header_value (StringPiece p) |
const GoogleString & | x_header_value () const |
void | set_avoid_renaming_introspective_javascript (bool x) |
bool | avoid_renaming_introspective_javascript () const |
void | set_forbid_all_disabled_filters (bool x) |
bool | forbid_all_disabled_filters () const |
bool | reject_blacklisted () const |
void | set_reject_blacklisted (bool x) |
HttpStatus::Code | reject_blacklisted_status_code () const |
void | set_reject_blacklisted_status_code (HttpStatus::Code x) |
bool | support_noscript_enabled () const |
void | set_support_noscript_enabled (bool x) |
bool | enable_extended_instrumentation () const |
void | set_enable_extended_instrumentation (bool x) |
bool | use_experimental_js_minifier () const |
void | set_use_experimental_js_minifier (bool x) |
void | set_max_combined_css_bytes (int64 x) |
int64 | max_combined_css_bytes () const |
void | set_max_combined_js_bytes (int64 x) |
int64 | max_combined_js_bytes () const |
void | set_pre_connect_url (StringPiece p) |
const GoogleString & | pre_connect_url () const |
void | set_property_cache_http_status_stability_threshold (int x) |
int | property_cache_http_status_stability_threshold () const |
void | set_max_rewrite_info_log_size (int x) |
int | max_rewrite_info_log_size () const |
void | set_enable_aggressive_rewriters_for_mobile (bool x) |
bool | enable_aggressive_rewriters_for_mobile () const |
void | set_allow_logging_urls_in_log_record (bool x) |
bool | allow_logging_urls_in_log_record () const |
void | set_allow_options_to_be_set_by_cookies (bool x) |
bool | allow_options_to_be_set_by_cookies () const |
void | set_non_cacheables_for_cache_partial_html (StringPiece p) |
const GoogleString & | non_cacheables_for_cache_partial_html () const |
void | set_no_transform_optimized_images (bool x) |
bool | no_transform_optimized_images () const |
void | set_access_control_allow_origins (StringPiece p) |
const GoogleString & | access_control_allow_origins () const |
void | set_hide_referer_using_meta (bool x) |
bool | hide_referer_using_meta () const |
void | set_max_low_res_image_size_bytes (int64 x) |
int64 | max_low_res_image_size_bytes () const |
void | set_max_low_res_to_full_res_image_size_percentage (int x) |
int | max_low_res_to_full_res_image_size_percentage () const |
void | set_serve_rewritten_webp_urls_to_any_agent (bool x) |
bool | serve_rewritten_webp_urls_to_any_agent () const |
void | set_cache_fragment (StringPiece p) |
const GoogleString & | cache_fragment () const |
void | set_sticky_query_parameters (StringPiece p) |
const GoogleString & | sticky_query_parameters () const |
void | set_option_cookies_duration_ms (int64 x) |
int64 | option_cookies_duration_ms () const |
void | set_responsive_image_densities (const ResponsiveDensities &x) |
const ResponsiveDensities & | responsive_image_densities () const |
const GoogleString & | amp_link_pattern () const |
void | set_amp_link_pattern (const GoogleString &id) |
bool | honor_csp () const |
void | set_honor_csp (bool x) |
virtual bool | DisableDomainRewrite () const |
virtual void | Merge (const RewriteOptions &src) |
void | MergeOnlyProcessScopeOptions (const RewriteOptions &src) |
void | Allow (StringPiece wildcard_pattern) |
void | Disallow (StringPiece wildcard_pattern) |
void | AllowWhenInlining (StringPiece wildcard_pattern) |
Like Allow(). See IsAllowedWhenInlining(). | |
void | AllowOnlyWhenInlining (StringPiece wildcard_pattern) |
void | DisallowWhenInlining (StringPiece wildcard_pattern) |
Like Disallow(). See IsAllowedWhenInlining(). | |
virtual void | DisallowTroublesomeResources () |
virtual void | DisallowResourcesForProxy () |
const DomainLawyer * | domain_lawyer () const |
DomainLawyer * | WriteableDomainLawyer () |
FileLoadPolicy * | file_load_policy () |
const FileLoadPolicy * | file_load_policy () const |
bool | IsAllowed (StringPiece url) const |
bool | IsAllowedWhenInlining (StringPiece url) const |
void | RetainComment (StringPiece comment) |
Adds a new comment wildcard pattern to be retained. | |
bool | IsRetainedComment (StringPiece comment) const |
void | DisableLazyloadForClassName (StringPiece class_name) |
Adds a new class name for which lazyload should be disabled. | |
bool | IsLazyloadEnabledForClassName (StringPiece class_name) const |
Checks if lazyload images is enabled for the specified class. | |
void | AddCssCombiningWildcard (StringPiece id_wildcard) |
Adds a new comment wildcard pattern to be retained. | |
bool | IsAllowedIdForCssCombining (StringPiece id) const |
bool | CssCombiningMayPermitIds () const |
void | set_override_caching_ttl_ms (int64 x) |
int64 | override_caching_ttl_ms () const |
void | AddOverrideCacheTtl (StringPiece wildcard) |
bool | IsCacheTtlOverridden (StringPiece url) const |
Is the cache TTL overridden for the given url? | |
void | AddRejectedUrlWildcard (const GoogleString &wildcard) |
void | AddRejectedHeaderWildcard (StringPiece header_name, const GoogleString &wildcard) |
bool | IsRequestDeclined (const GoogleString &url, const RequestHeaders *request_headers) const |
virtual RewriteOptions * | Clone () const |
virtual RewriteOptions * | NewOptions () const |
Make an empty options object of the same type as this. | |
void | ComputeSignature () LOCKS_EXCLUDED(cache_purge_mutex_.get()) |
void | ComputeSignatureLockHeld () SHARED_LOCKS_REQUIRED(cache_purge_mutex_) |
virtual GoogleString | SubclassSignatureLockHeld () |
void | Freeze () |
bool | ClearSignatureWithCaution () |
bool | frozen () const |
bool | ClearSignatureForTesting () |
const GoogleString & | signature () const |
Returns the computed signature. More... | |
virtual GoogleString | OptionsToString () const |
GoogleString | FilterSetToString (const FilterSet &filter_set) const |
GoogleString | EnabledFiltersToString () const |
GoogleString | SafeEnabledOptionsToString () const |
virtual GoogleString | ToExperimentString () const |
virtual GoogleString | ToExperimentDebugString () const |
const OptionBaseVector & | all_options () const |
bool | IsEqual (const RewriteOptions &that) const |
const Hasher * | hasher () const |
Returns the hasher used for signatures and URLs to purge. | |
const SHA1Signature * | sha1signature () const |
ThreadSystem * | thread_system () const |
HttpOptions | ComputeHttpOptions () const |
bool | NeedsDependenciesCohort () const |
Static Public Member Functions | |
static const char * | FilterName (Filter filter) |
static const char * | FilterId (Filter filter) |
static int | NumFilterIds () |
static bool | AddByNameToFilterSet (const StringPiece &option, FilterSet *set, MessageHandler *handler) |
static bool | ParseRewriteLevel (const StringPiece &in, RewriteLevel *out) |
static bool | ParseInlineUnauthorizedResourceType (const StringPiece &in, ResourceCategorySet *resource_types) |
static bool | ParseBeaconUrl (const StringPiece &in, BeaconUrl *out) |
static bool | Initialize () |
static bool | Terminate () |
static bool | AddCommaSeparatedListToOptionSet (const StringPiece &options, OptionSet *set, MessageHandler *handler) |
static bool | ParseFromString (StringPiece value_string, bool *value) |
static bool | ParseFromString (StringPiece value_string, EnabledEnum *value) |
static bool | ParseFromString (StringPiece value_string, int *value) |
static bool | ParseFromString (StringPiece value_string, int64 *value) |
static bool | ParseFromString (StringPiece value_string, double *value) |
static bool | ParseFromString (StringPiece value_string, GoogleString *value) |
static bool | ParseFromString (StringPiece value_string, RewriteLevel *value) |
static bool | ParseFromString (StringPiece value_string, ResourceCategorySet *value) |
static bool | ParseFromString (StringPiece value_string, BeaconUrl *value) |
static bool | ParseFromString (StringPiece value_string, Color *color) |
static bool | ParseFromString (StringPiece value_string, MobTheme *theme) |
static bool | ParseFromString (StringPiece value_string, ResponsiveDensities *value) |
static bool | ParseFromString (StringPiece value_string, protobuf::MessageLite *proto) |
static bool | ParseFromString (StringPiece value_string, AllowVaryOn *allow_vary_on) |
static Filter | LookupFilterById (const StringPiece &filter_id) |
static Filter | LookupFilter (const StringPiece &filter_name) |
Convert the filter name to a Filter. | |
static const PropertyBase * | LookupOptionById (StringPiece option_id) |
static const PropertyBase * | LookupOptionByName (StringPiece option_name) |
static const StringPiece | LookupOptionNameById (StringPiece option_id) |
static bool | IsValidOptionName (StringPiece name) |
Determine if the given option name is valid/known. | |
static bool | IsDeprecatedOptionName (StringPiece option_name) |
static const Properties * | deprecated_properties () |
Static Public Attributes | |
static const char | kAcceptInvalidSignatures [] |
static const char | kAccessControlAllowOrigins [] |
static const char | kAddOptionsToUrls [] |
static const char | kAllowLoggingUrlsInLogRecord [] |
static const char | kAllowOptionsToBeSetByCookies [] |
static const char | kAllowVaryOn [] |
static const char | kAlwaysRewriteCss [] |
static const char | kAmpLinkPattern [] |
static const char | kAnalyticsID [] |
static const char | kAvoidRenamingIntrospectiveJavascript [] |
static const char | kAwaitPcacheLookup [] |
static const char | kBeaconReinstrumentTimeSec [] |
static const char | kBeaconUrl [] |
static const char | kCacheFragment [] |
static const char | kCacheSmallImagesUnrewritten [] |
static const char | kClientDomainRewrite [] |
static const char | kCombineAcrossPaths [] |
static const char | kContentExperimentID [] |
static const char | kContentExperimentVariantID [] |
static const char | kCriticalImagesBeaconEnabled [] |
static const char | kCssFlattenMaxBytes [] |
static const char | kCssImageInlineMaxBytes [] |
static const char | kCssInlineMaxBytes [] |
static const char | kCssOutlineMinBytes [] |
static const char | kCssPreserveURLs [] |
static const char | kDefaultCacheHtml [] |
static const char | kDisableBackgroundFetchesForBots [] |
static const char | kDisableRewriteOnNoTransform [] |
static const char | kDomainRewriteCookies [] |
static const char | kDomainRewriteHyperlinks [] |
static const char | kDomainShardCount [] |
static const char | kDownstreamCachePurgeMethod [] |
static const char | kDownstreamCacheRebeaconingKey [] |
static const char | kDownstreamCacheRewrittenPercentageThreshold [] |
static const char | kEnableAggressiveRewritersForMobile [] |
static const char | kEnableCachePurge [] |
static const char | kEnableDeferJsExperimental [] |
static const char | kEnableExtendedInstrumentation [] |
static const char | kEnableLazyLoadHighResImages [] |
static const char | kEnablePrioritizingScripts [] |
static const char | kEnabled [] |
static const char | kEnrollExperiment [] |
static const char | kExperimentCookieDurationMs [] |
static const char | kExperimentSlot [] |
static const char | kFetcherTimeOutMs [] |
static const char | kFinderPropertiesCacheExpirationTimeMs [] |
static const char | kFinderPropertiesCacheRefreshTimeMs [] |
static const char | kFlushBufferLimitBytes [] |
static const char | kFlushHtml [] |
static const char | kFollowFlushes [] |
static const char | kGoogleFontCssInlineMaxBytes [] |
static const char | kForbidAllDisabledFilters [] |
static const char | kHideRefererUsingMeta [] |
static const char | kHttpCacheCompressionLevel [] |
static const char | kHonorCsp [] |
static const char | kIdleFlushTimeMs [] |
static const char | kImageInlineMaxBytes [] |
static const char | kImageJpegNumProgressiveScans [] |
static const char | kImageJpegNumProgressiveScansForSmallScreens [] |
static const char | kImageJpegQualityForSaveData [] |
static const char | kImageJpegRecompressionQuality [] |
static const char | kImageJpegRecompressionQualityForSmallScreens [] |
static const char | kImageLimitOptimizedPercent [] |
static const char | kImageLimitRenderedAreaPercent [] |
static const char | kImageLimitResizeAreaPercent [] |
static const char | kImageMaxRewritesAtOnce [] |
static const char | kImagePreserveURLs [] |
static const char | kImageRecompressionQuality [] |
static const char | kImageResolutionLimitBytes [] |
static const char | kImageWebpQualityForSaveData [] |
static const char | kImageWebpRecompressionQuality [] |
static const char | kImageWebpRecompressionQualityForSmallScreens [] |
static const char | kImageWebpAnimatedRecompressionQuality [] |
static const char | kImageWebpTimeoutMs [] |
static const char | kImplicitCacheTtlMs [] |
static const char | kIncreaseSpeedTracking [] |
static const char | kInlineOnlyCriticalImages [] |
static const char | kInPlacePreemptiveRewriteCss [] |
static const char | kInPlacePreemptiveRewriteCssImages [] |
static const char | kInPlacePreemptiveRewriteImages [] |
static const char | kInPlacePreemptiveRewriteJavascript [] |
static const char | kInPlaceResourceOptimization [] |
static const char | kInPlaceRewriteDeadlineMs [] |
static const char | kInPlaceSMaxAgeSec [] |
static const char | kInPlaceWaitForOptimized [] |
static const char | kJsInlineMaxBytes [] |
static const char | kJsOutlineMinBytes [] |
static const char | kJsPreserveURLs [] |
static const char | kLazyloadImagesAfterOnload [] |
static const char | kLazyloadImagesBlankUrl [] |
static const char | kLoadFromFileCacheTtlMs [] |
static const char | kLogBackgroundRewrite [] |
static const char | kLogMobilizationSamples [] |
static const char | kLogRewriteTiming [] |
static const char | kLogUrlIndices [] |
static const char | kLowercaseHtmlNames [] |
static const char | kMaxCacheableResponseContentLength [] |
static const char | kMaxCombinedCssBytes [] |
static const char | kMaxCombinedJsBytes [] |
static const char | kMaxHtmlCacheTimeMs [] |
static const char | kMaxHtmlParseBytes [] |
static const char | kMaxImageSizeLowResolutionBytes [] |
static const char | kMaxInlinedPreviewImagesIndex [] |
static const char | kMaxLowResImageSizeBytes [] |
static const char | kMaxLowResToHighResImageSizePercentage [] |
static const char | kMaxRewriteInfoLogSize [] |
static const char | kMaxUrlSegmentSize [] |
static const char | kMaxUrlSize [] |
static const char | kMetadataCacheStalenessThresholdMs [] |
static const char | kMinImageSizeLowResolutionBytes [] |
static const char | kMinResourceCacheTimeToRewriteMs [] |
static const char | kModifyCachingHeaders [] |
static const char | kNoop [] |
static const char | kNoTransformOptimizedImages [] |
static const char | kNonCacheablesForCachePartialHtml [] |
static const char | kObliviousPagespeedUrls [] |
static const char | kOptionCookiesDurationMs [] |
static const char | kOverrideCachingTtlMs [] |
static const char | kPreserveSubresourceHints [] |
static const char | kPreserveUrlRelativity [] |
static const char | kPrivateNotVaryForIE [] |
static const char | kProactiveResourceFreshening [] |
static const char | kProactivelyFreshenUserFacingRequest [] |
static const char | kProgressiveJpegMinBytes [] |
static const char | kPubliclyCacheMismatchedHashesExperimental [] |
static const char | kRejectBlacklistedStatusCode [] |
static const char | kRejectBlacklisted [] |
static const char | kRemoteConfigurationTimeoutMs [] |
static const char | kRemoteConfigurationUrl [] |
static const char | kReportUnloadTime [] |
static const char | kRequestOptionOverride [] |
static const char | kRespectVary [] |
static const char | kRespectXForwardedProto [] |
static const char | kResponsiveImageDensities [] |
static const char | kRewriteDeadlineMs [] |
static const char | kRewriteLevel [] |
static const char | kRewriteRandomDropPercentage [] |
static const char | kRewriteUncacheableResources [] |
static const char | kRunningExperiment [] |
static const char | kServeStaleIfFetchError [] |
static const char | kServeStaleWhileRevalidateThresholdSec [] |
static const char | kServeXhrAccessControlHeaders [] |
static const char | kStickyQueryParameters [] |
static const char | kSupportNoScriptEnabled [] |
static const char | kTestOnlyPrioritizeCriticalCssDontApplyOriginalCss [] |
static const char | kUrlSigningKey [] |
static const char | kUseAnalyticsJs [] |
static const char | kUseBlankImageForInlinePreview [] |
static const char | kUseExperimentalJsMinifier [] |
static const char | kUseFallbackPropertyCacheValues [] |
static const char | kUseImageScanlineApi [] |
static const char | kXModPagespeedHeaderValue [] |
static const char | kXPsaBlockingRewrite [] |
static const char | kAllow [] |
Options that require special handling, e.g. non-scalar values. | |
static const char | kBlockingRewriteRefererUrls [] |
static const char | kDisableFilters [] |
static const char | kDisallow [] |
static const char | kDomain [] |
static const char | kDownstreamCachePurgeLocationPrefix [] |
static const char | kEnableFilters [] |
static const char | kExperimentVariable [] |
static const char | kExperimentSpec [] |
static const char | kForbidFilters [] |
static const char | kInlineResourcesWithoutExplicitAuthorization [] |
static const char | kRetainComment [] |
static const char | kPermitIdsForCssCombining [] |
static const char | kAddResourceHeader [] |
2-argument ones: | |
static const char | kCustomFetchHeader [] |
static const char | kLoadFromFile [] |
static const char | kLoadFromFileMatch [] |
static const char | kLoadFromFileRule [] |
static const char | kLoadFromFileRuleMatch [] |
static const char | kMapOriginDomain [] |
static const char | kMapProxyDomain [] |
static const char | kMapRewriteDomain [] |
static const char | kShardDomain [] |
static const char | kLibrary [] |
3-argument ones: | |
static const char | kUrlValuedAttribute [] |
static const char | kCacheFlushFilename [] |
static const char | kCacheFlushPollIntervalSec [] |
static const char | kCompressMetadataCache [] |
static const char | kFetcherProxy [] |
static const char | kFetchHttps [] |
static const char | kFileCacheCleanInodeLimit [] |
static const char | kFileCacheCleanIntervalMs [] |
static const char | kFileCacheCleanSizeKb [] |
static const char | kFileCachePath [] |
static const char | kLogDir [] |
static const char | kLruCacheByteLimit [] |
static const char | kLruCacheKbPerProcess [] |
static const char | kMemcachedServers [] |
static const char | kMemcachedThreads [] |
static const char | kMemcachedTimeoutUs [] |
static const char | kProxySuffix [] |
static const char | kRateLimitBackgroundFetches [] |
static const char | kServeWebpToAnyAgent [] |
static const char | kSlurpDirectory [] |
static const char | kSlurpFlushLimit [] |
static const char | kSlurpReadOnly [] |
static const char | kSslCertDirectory [] |
static const char | kSslCertFile [] |
static const char | kStatisticsEnabled [] |
static const char | kStatisticsLoggingChartsCSS [] |
static const char | kStatisticsLoggingChartsJS [] |
static const char | kStatisticsLoggingEnabled [] |
static const char | kStatisticsLoggingIntervalMs [] |
static const char | kStatisticsLoggingMaxFileSizeKb [] |
static const char | kTestProxy [] |
static const char | kTestProxySlurp [] |
static const char | kUseSharedMemLocking [] |
static const char | kNullOption [] |
The option name you have when you don't have an option name. | |
static const int | kOptionsVersion = 14 |
static const int | kHashBytes = 20 |
Number of bytes used for signature hashing. | |
static const int | kCachePurgeBytes = 25000 |
Number of bytes capacity in the URL invalidation set. | |
static const char | kCacheExtenderId [] |
static const char | kCssCombinerId [] |
static const char | kCssFilterId [] |
static const char | kCssImportFlattenerId [] |
static const char | kCssInlineId [] |
static const char | kGoogleFontCssInlineId [] |
static const char | kImageCombineId [] |
static const char | kImageCompressionId [] |
static const char | kInPlaceRewriteId [] |
static const char | kJavascriptCombinerId [] |
static const char | kJavascriptInlineId [] |
static const char | kJavascriptMinId [] |
static const char | kJavascriptMinSourceMapId [] |
static const char | kLocalStorageCacheId [] |
static const char | kPrioritizeCriticalCssId [] |
static const Filter | kFirstFilter = kAddBaseTag |
Used for enumerating over all entries in the Filter enum. | |
static const char | kDefaultAllowVaryOn [] |
static const int | kDefaultBeaconReinstrumentTimeSec |
static const int64 | kDefaultCssFlattenMaxBytes |
static const int64 | kDefaultCssImageInlineMaxBytes |
static const int64 | kDefaultCssInlineMaxBytes |
static const int64 | kDefaultCssOutlineMinBytes |
static const int64 | kDefaultGoogleFontCssInlineMaxBytes |
static const int64 | kDefaultImageInlineMaxBytes |
static const int64 | kDefaultJsInlineMaxBytes |
static const int64 | kDefaultJsOutlineMinBytes |
static const int64 | kDefaultProgressiveJpegMinBytes |
static const int64 | kDefaultMaxCacheableResponseContentLength |
static const int64 | kDefaultMaxHtmlCacheTimeMs |
static const int64 | kDefaultMaxHtmlParseBytes |
static const int64 | kDefaultMaxLowResImageSizeBytes |
static const int | kDefaultMaxLowResToFullResImageSizePercentage |
static const int64 | kDefaultMetadataInputErrorsCacheTtlMs |
static const int64 | kDefaultMinResourceCacheTimeToRewriteMs |
static const char | kDefaultDownstreamCachePurgeMethod [] |
static const int64 | kDefaultDownstreamCacheRewrittenPercentageThreshold |
static const int64 | kDefaultIdleFlushTimeMs |
static const int64 | kDefaultFlushBufferLimitBytes |
static const int64 | kDefaultImplicitCacheTtlMs |
static const int64 | kDefaultPrioritizeVisibleContentCacheTimeMs |
static const char | kDefaultBeaconUrl [] |
static const int64 | kDefaultImageRecompressQuality |
static const int64 | kDefaultImageJpegQualityForSaveData |
static const int64 | kDefaultImageJpegRecompressQuality |
static const int64 | kDefaultImageJpegRecompressQualityForSmallScreens |
static const int | kDefaultImageLimitOptimizedPercent |
static const int | kDefaultImageLimitRenderedAreaPercent |
static const int | kDefaultImageLimitResizeAreaPercent |
static const int64 | kDefaultImageResolutionLimitBytes |
static const int64 | kDefaultImageJpegNumProgressiveScans |
static const int64 | kDefaultImageWebpQualityForSaveData |
static const int64 | kDefaultImageWebpRecompressQuality |
static const int64 | kDefaultImageWebpAnimatedRecompressQuality |
static const int64 | kDefaultImageWebpRecompressQualityForSmallScreens |
static const int64 | kDefaultImageWebpTimeoutMs |
static const int | kDefaultDomainShardCount |
static const int64 | kDefaultOptionCookiesDurationMs |
static const int64 | kDefaultLoadFromFileCacheTtlMs |
static const double | kDefaultResponsiveImageDensities [] |
static const int | kDefaultMaxUrlSize |
static const int | kDefaultImageMaxRewritesAtOnce |
static const int | kDefaultMaxUrlSegmentSize |
static const int | kDefaultRewriteDeadlineMs |
Default time to wait for rewrite before returning original resource. | |
static const int | kDefaultMaxInlinedPreviewImagesIndex |
static const int64 | kDefaultMinImageSizeLowResolutionBytes |
static const int64 | kDefaultMaxImageSizeLowResolutionBytes |
static const int64 | kDefaultFinderPropertiesCacheExpirationTimeMs |
Default cache expiration value for finder properties in pcache. | |
static const int64 | kDefaultFinderPropertiesCacheRefreshTimeMs |
Default cache refresh value for finder properties in pcache. | |
static const int64 | kDefaultExperimentCookieDurationMs |
static const int64 | kDefaultMetadataCacheStalenessThresholdMs |
static const int64 | kDefaultMaxCombinedCssBytes |
Default maximum size of the combined CSS resource. | |
static const int64 | kDefaultMaxCombinedJsBytes |
Default maximum size of the combined js resource generated by JsCombiner. | |
static const int | kDefaultExperimentTrafficPercent |
static const int | kDefaultExperimentSlot |
Default Custom Variable slot in which to put Experiment information. | |
static const char | kDefaultBlockingRewriteKey [] |
static const char | kRejectedRequestUrlKeyName [] |
static const int | kDefaultPropertyCacheHttpStatusStabilityThreshold |
static const int | kDefaultMaxRewriteInfoLogSize |
Protected Member Functions | |
void | set_option_at (int index, OptionBase *option) |
template<class T > | |
void | set_option (const T &new_value, OptionTemplateBase< T > *option) |
void | Modify () |
Marks the config as modified. | |
void | set_default_x_header_value (StringPiece x_header_value) |
bool | SetupExperimentRewriters () |
virtual void | SetRequiredExperimentFilters () |
Enables filters needed by Experiment regardless of experiment. | |
bool | InsertExperimentSpecInVector (ExperimentSpec *spec) |
Static Protected Member Functions | |
template<class RewriteOptionsSubclass , class OptionClass > | |
static void | AddProperty (typename OptionClass::ValueType default_value, OptionClass RewriteOptionsSubclass::*offset, const char *id, StringPiece option_name, OptionScope scope, const char *help_text, bool safe_to_print, Properties *properties) |
Adds a new Property to 'properties' (the last argument). | |
static void | AddDeprecatedProperty (StringPiece option_name, OptionScope scope) |
static void | MergeSubclassProperties (Properties *properties) |
Protected Attributes | |
Option< BeaconUrl > | beacon_url_ |
Protected option values so that derived class can modify. | |
Option< GoogleString > | x_header_value_ |
The value we put for the X-Mod-Pagespeed header. Default is our version. | |
Defines a set of customizations that can be applied to any Rewrite. There are multiple categories of customizations:
The options are themselves a complex system. Many Option objects are instantiated for each RewriteOptions instance. RewriteOptions can be constructed and destroyed multiple times per request so to reduce this cost, the static aspects of Options are factored out into Properties, which are intialized once per process via RewriteOptions::Initialize. Subclasses may also add new Properties and so property-list-merging takes place at Initialization time.
typedef std::pair<GoogleString, GoogleString> net_instaweb::RewriteOptions::OptionStringPair |
Convenience name for (name,value) pairs of options (typically filter parameters), as well as sets of those pairs.
When PageSpeed first started there was just off/on. Off wasn't entirely off, though, because: 1) If you turned it off because it broke something it's helpful to be able to turn it back on with query params while testing filter combinations to see what you broke. 2) After turning off PageSpeed you might still get some requests for .pagespeed. resources and you'd like to serve them.
Around when the ngx_pagespeed port was getting started we were having discussions about how this was a bad setup for security purposes. Someone might want to completely disable the module, in a way where attackers couldn't re-enable it by sending query parameters or .pagespeed. requests. So we released ngx_pagepeed with "off" as a hard off. Discussion on this progressed, and we decided to add "unplugged" for mod_pagespeed which did the same thing as "off" in ngx_pagespeed. This left us in a state where (a) mod_pagespeed and ngx_pagespeed disagreed about what "off" meant and (b) there was no way to get mod_pagespeed's meaning of "off" in ngx_pagespeed.
Since these are central user-controlled configuration knobs, and we don't want to surprise people by changing what they do, we decided to fix this by adding "standby" to ngx_pagespeed to do what "off" does in mod_pagespeed. Now we can tell people to use unplugged / standby / on, for both mps and nps, with the same meanings.
If you add or remove anything from this list, you must also update the kFilterVectorStaticInitializer array in rewrite_options.cc. If you add an image-related filter or a css-related filter, you must add it to the kRelatedFilters array in image_rewrite_filter.cc and/or css_filter.cc
Each filter added here should go into at least one of the filter-arrays in rewrite_options.cc, even if it's just kDangerousFilterSet.
Filters that can improve bandwidth but have basically zero risk of breaking pages should be added to kOptimizeForBandwidthFilterSet. Filters with relatively low risk should be added to kCoreFilterSet.
Enumerator | |
---|---|
kAddBaseTag |
Update kFirstFilter if you add something before this. |
kExperimentHttp2 |
used while developing proper HTTP2 features. |
kMobilizePrecompute |
|
Determines the scope at which an option is evaluated. In Apache, for example, kDirectoryScope indicates it can be changed via .htaccess files, which is the only way that sites using shared hosting can change settings.
The options are ordered from most permissive to least permissive.
|
static |
Lookup the given name to see if it's a filter name or one of the special names like "core" or "rewrite_images", and if so add the corresponding filter(s) to the given set. If the given name doesn't match -and- if handler is not NULL, logs a warning message to handler. Returns true if the name matched and the set was updated, false otherwise.
|
static |
Adds pairs of (option, value) to the option set. The option names and values are not checked for validity, just stored. If the string piece was parsed correctly, this returns true. If there were parsing errors this returns false. The set is still populated on error.
|
virtual |
Creates a ExperimentSpec from spec and adds it to the configuration, returning it on success and NULL on failure.
|
inline |
Overrides the cache ttl for all urls matching the wildcard with override_caching_ttl_ms().
void net_instaweb::RewriteOptions::AddResourceHeader | ( | const StringPiece & | name, |
const StringPiece & | value | ||
) |
Unconditionally appends the given name / value to resource_headers_. Use ValidateAndAddResourceHeader if you need validation.
void net_instaweb::RewriteOptions::AddUrlCacheInvalidationEntry | ( | StringPiece | url_pattern, |
int64 | timestamp_ms, | ||
bool | ignores_metadata_and_pcache | ||
) |
If timestamp_ms greater than or equal to the last timestamp in url_cache_invalidation_entries_, then appends an UrlCacheInvalidationEntry with 'timestamp_ms' and 'url_pattern' to url_cache_invalidation_entries_. Else does nothing.
Also see PurgeCacheUrl. AddUrlCacheInvalidationEntry with a non-wildcard pattern and ignores_metadata_and_pcache==false is equivalent to PurgeCacheUrl.
If ignores_metadata_and_pcache is true, metadata is not invalidated and property cache is invalidated of URLs matching url_pattern. If false, metadata cache and property cache entries may be invalidated, depending on whether there are wildcards in the pattern, and whether enable_cache_purge() is true. Note that HTTP cache invalidation is always exactly for the URLs matching url_pattern. This should probably always be set to false.
void net_instaweb::RewriteOptions::AddUrlValuedAttribute | ( | const StringPiece & | element, |
const StringPiece & | attribute, | ||
semantic_type::Category | category | ||
) |
Store that when we see <element attribute="X"> we should treat X as a URL pointing to a resource of the type indicated by category. For example, while by default we would treat the 'src' attribute of an a 'img' element as the URL for an image and will cache-extend, inline, or otherwise optimize it as appropriate, we would not do the same for the 'src' atrtribute of a 'span' element () because there's no "src" attribute of "span" in the HTML spec. If someone needed us to treat span.src as a URL, however, they could call: AddUrlValuedAttribute("src", "span", appropriate_category)
Makes copies of element and attribute.
bool net_instaweb::RewriteOptions::AdjustFiltersByCommaSeparatedList | ( | const StringPiece & | filters, |
MessageHandler * | handler | ||
) |
Enables filters specified without a prefix or with a prefix of '+' and disables filters specified with a prefix of '-'. Returns false if any of the filter names are invalid, but all the valid ones will be added anyway.
|
inline |
Return the list of all options. Used to initialize the configuration vector to the Apache configuration system.
|
inline |
Registers a wildcard pattern for to be allowed, potentially overriding previous Disallow wildcards.
|
inline |
Helper function to Disallow something except when inlining. Useful for resources that you expect to be on good CDNs but may still be worth inlining if small enough.
bool net_instaweb::RewriteOptions::AvailableExperimentId | ( | int | id | ) |
Returns false if id is negative, or if the id is reserved for NoExperiment or NotSet, or if we already have an experiment with that id.
int64 net_instaweb::RewriteOptions::cache_invalidation_timestamp | ( | ) | const |
Cache invalidation timestamp is in milliseconds since 1970. It is used for invalidating everything in the cache written prior to the timestamp.
void net_instaweb::RewriteOptions::ClearFilters | ( | ) |
Clear all explicitly enabled and disabled filters. Some filters may still be enabled by the rewrite level and HtmlWriterFilter will be enabled.
|
inline |
Clears a computed signature, unfreezing the options object. This is intended for testing. Returns whether the options were frozen in the first place.
bool net_instaweb::RewriteOptions::ClearSignatureWithCaution | ( | ) |
Clears the computed signature, unfreezing the options object. Warning: Please note that using this method is extremely risky and should be avoided as much as possible. If you are planning to use this, please discuss this with your team-mates and ensure that you clearly understand its implications. Also, please do repeat this warning at every place you use this method.
Returns true if the signature was previously computed, and thus should be recomputed after modification.
|
virtual |
Make an identical copy of these options and return it. This does not copy the signature, and the returned options are not in a frozen state.
Reimplemented in net_instaweb::SystemRewriteOptions, and net_instaweb::ApacheConfig.
HttpOptions net_instaweb::RewriteOptions::ComputeHttpOptions | ( | ) | const |
Produces a new HttpOptions each time this is called, shouldn't be a big deal since we don't call it very often and HttpOptions are pretty light, but we might want to reconsider if those assumptions change.
void net_instaweb::RewriteOptions::ComputeSignature | ( | ) |
Computes a signature for the RewriteOptions object, including all contained classes (DomainLawyer, FileLoadPolicy, WildCardGroups).
Computing a signature "freezes" the class instance. Attempting to modify a RewriteOptions after freezing will DCHECK.
|
inline |
|
inline |
css_preserve_urls() is determined by the following rules in order:
void net_instaweb::RewriteOptions::DisableAllFiltersNotExplicitlyEnabled | ( | ) |
Explicitly disable all filters which are not currently explicitly enabled
Note: Do not call EnableFilter(...) for this options object after calling DisableAllFilters..., because the Disable list will not be auto-updated.
Used to deal with query param ?ModPagespeedFilter=foo Which implies that all filters not listed should be disabled.
bool net_instaweb::RewriteOptions::DisableFiltersByCommaSeparatedList | ( | const StringPiece & | filters, |
MessageHandler * | handler | ||
) |
Adds a set of filters to the disabled set. Returns false if any of the filter names are invalid, but all the valid ones will be added anyway.
|
inline |
Registers a wildcard pattern for to be disallowed, potentially overriding previous Allow wildcards.
|
virtual |
Disallows resources that are served on well-distributed CDNs already, and are likely to be in browser-caches, or that are troublesome resources stored on external domains. Note: this is not currently called by mod_pagespeed.
|
virtual |
Blacklist of javascript files that don't like their names changed. This should be called for root options to set defaults.
|
inline |
When someone asks for a readonly lawyer, we can return a pointer to the potentially shared DomainLawyer* object. But if you want a mutable one, we clone whatever Lawyer we had and detach it from the shared group. Here are several scenarios.
The only similar place this does occur is cache_invalidation_timestamp_ which can be mutated when there are active children.
void net_instaweb::RewriteOptions::EnableExtendCacheFilters | ( | ) |
Enables extend_cache_css, extend_cache_images, and extend_cache_scripts. Does not enable extend_cache_pdfs.
void net_instaweb::RewriteOptions::EnableFilter | ( | Filter | filter | ) |
Adds the filter to the list of enabled filters. However, if the filter is also present in either the list of disabled or forbidden filters, that takes precedence and it is not enabled.
bool net_instaweb::RewriteOptions::EnableFiltersByCommaSeparatedList | ( | const StringPiece & | filters, |
MessageHandler * | handler | ||
) |
Adds a set of filters to the enabled set. Returns false if any of the filter names are invalid, but all the valid ones will be added anyway.
|
static |
Returns a two-letter id code for this filter, used for for encoding URLs.
|
static |
Return the appropriate human-readable filter name for the given filter, e.g. "CombineCss".
bool net_instaweb::RewriteOptions::ForbidFiltersByCommaSeparatedList | ( | const StringPiece & | filters, |
MessageHandler * | handler | ||
) |
Adds a set of filters to the forbidden set. Returns false if any of the filter names are invalid, but all the valid ones will be added anyway.
void net_instaweb::RewriteOptions::ForceEnableFilter | ( | Filter | filter | ) |
Guarantees that a filter would be enabled even if it is present in the list of disabled filters by removing it from disabled & forbidden filter lists.
void net_instaweb::RewriteOptions::Freeze | ( | ) |
Freeze a RewriteOptions so we can't modify it anymore and thus know that it's safe to read it from multiple threads, but don't bother calculating its signature since we will only be using this instance for merging and cloning.
ExperimentSpec* net_instaweb::RewriteOptions::GetExperimentSpec | ( | int | id | ) | const |
Returns the spec with the id_ that matches id. Returns NULL if no spec matches.
GoogleString net_instaweb::RewriteOptions::GetExperimentStateStr | ( | ) | const |
Returns a string representation of experiment_id() suitable for consumption by SetExperimentStateStr(), encoding the index of the current experiment (not its id). If we're not running an experiment, returns the empty string.
bool net_instaweb::RewriteOptions::has_cache_invalidation_timestamp_ms | ( | ) | const |
Determines whether there is a valid cache_invalidation_timestamp. It is invalid to call cache_invalidation_timestamp() if has_cache_invalidation_timestamp_ms() is false.
bool net_instaweb::RewriteOptions::HasValidSaveDataQualities | ( | ) | const |
Returns true if any quality for Save-Data is valid and different from the base quality.
bool net_instaweb::RewriteOptions::HasValidSmallScreenQualities | ( | ) | const |
Returns true if any quality for small screen is valid and different from the base quality.
|
inline |
How much inactivity of HTML input will result in PSA introducing a flush. Values <= 0 disable the feature.
bool net_instaweb::RewriteOptions::ImageOptimizationEnabled | ( | ) | const |
Checks if either of the optimizing rewrite options are ON and it includes kRecompressJPeg, kRecompressPng, kRecompressWebp, kConvertGifToPng, kConvertJpegToWebp, kConvertPngToJpeg, and kConvertToWebpLossless.
|
static |
Static initialization of members. Calls to Initialize and Terminate must be matched. Returns 'true' for the first Initialize call and the last Terminate call.
void net_instaweb::RewriteOptions::InitializeOptions | ( | const Properties * | properties | ) |
Initializes the Options objects in a RewriteOptions instance based on the supplied Properties vector. Note that subclasses can statically define additional properties, in which case they should call this method from their constructor.
|
protected |
Helper method to add pre-configured ExperimentSpec objects to the internal vector of ExperimentSpec's. Returns true if the experiment was added successfully. Takes ownership of (and may delete) spec.
|
inline |
Determines, based on the sequence of Allow/Disallow calls above, whether a url is allowed.
default allow
|
inline |
Call this when:
If it returns true, it's ok to fetch, rewrite, and inline this resource as if IsAllowed() had returned true.
default disallow
|
static |
Determine if this is an option name that used to do things, and which we may therefore want to accept w/a warning for backwards compatibility.
bool net_instaweb::RewriteOptions::IsEqual | ( | const RewriteOptions & | that | ) | const |
Determines whether this and that are the same. Uses the signature() to short-cut most of the deep comparisons, but then compares directly some options and other fields that are omitted from the signature.
bool net_instaweb::RewriteOptions::IsRequestDeclined | ( | const GoogleString & | url, |
const RequestHeaders * | request_headers | ||
) | const |
Determine if the request url needs to be declined based on the url, request headers and rewrite options.
|
inline |
If enabled, the 'remove_comments' filter will remove all HTML comments. As discussed in Issue 237, some comments have semantic value and must be retained.
bool net_instaweb::RewriteOptions::IsUrlCacheInvalidationEntriesSorted | ( | ) | const |
Checks if url_cache_invalidation_entries_ is in increasing order of timestamp. For testing.
bool net_instaweb::RewriteOptions::IsUrlCacheValid | ( | StringPiece | url, |
int64 | time_ms, | ||
bool | search_wildcards | ||
) | const |
Returns whether the given URL is valid for use in the cache, given the timestamp stored in the cache.
It first checks time_ms against the global cache invalidation timestamp.
It next checks if PurgeCacheUrl has been called on url with a timestamp earlier than time_ms. Note: this is not a wildcard check but an exact lookup.
Finally, if search_wildcards is true, it scans url_cache_invalidation_entries_ for entries with timestamp_ms > time_ms and url matching the url_pattern.
In most contexts where you'd call this you should consider instead calling OptionsAwareHTTPCacheCallback::IsCacheValid instead, which takes into account request-headers.
|
inline |
Return the javascript_library_identification_ object that applies to the current configuration (NULL if identification is disabled).
|
static |
Convert an id string like "ah" to a Filter enum like kAddHead. Returns kEndOfFilters if the id isn't known.
|
static |
Looks up an option id/name and returns the corresponding PropertyBase if found, or NULL if the id/name is not found.
|
static |
Looks up an option id and returns the corresponding name, or kNullOption if the id is not found. Example: for "ii" it returns "ImageInlineMaxBytes".
|
inline |
Return true only if downstream cache rebeaconing key is configured and the key argument matches the configured key.
|
inline |
The maximum length of a URL segment. for http://a/b/c.d, this is == strlen("c.d")
|
virtual |
Merge src into 'this'. Generally, options that are explicitly set in src will override those explicitly set in 'this' (except that filters forbidden in 'this' cannot be enabled by 'src'), although option Merge implementations can be redefined by specific Option class implementations (e.g. OptionInt64MergeWithMax). One semantic subject to interpretation is when a core-filter is disabled in the first set and not in the second. My judgement is that the 'disable' from 'this' should override the core-set membership in the 'src', but not an 'enable' in the 'src'.
You can make an exact duplicate of RewriteOptions object 'src' via (new 'typeof src')->Merge(src), aka Clone().
Merge expects that 'src' and 'this' are the same type. If that's not true, this function will DCHECK.
Reimplemented in net_instaweb::ApacheConfig, and net_instaweb::SystemRewriteOptions.
bool net_instaweb::RewriteOptions::MergeOK | ( | ) | const |
Determines whether it's OK to merge from the RewriteOptions object in the current thread. Note that this is stricter than necessary, but makes it easier to reason about potential thread safety issues for copy-on-write sharing of substructures.
This is exposed as an external API for ease of unit testing.
void net_instaweb::RewriteOptions::MergeOnlyProcessScopeOptions | ( | const RewriteOptions & | src | ) |
Merge the process scope options (including strict ones) from src into this.
|
staticprotected |
Merges properties into all_properties so that RewriteOptions::Merge and SetOptionFromName can work across options from RewriteOptions and all relevant subclasses.
Each RewriteOptions subclass keeps its own property lists using its own private Properties* member variables. The private lists are used for initialization of default-values during construction. We cannot initialize subclass default option values during RewriteOptions construction because options with non-POD ValueType (e.g. GoogleString) have not yet been initialized, so we have to keep separate per-class property-lists for use during construction. However, we use a global sorted list for fast merging and setting-by-option-name.
bool net_instaweb::RewriteOptions::ModificationOK | ( | ) | const |
Determines whether it's OK to modify the RewriteOptions in the current thread. Note that this is stricter than necessary, but makes it easier to reason about potential thread safety issues for copy-on-write sharing of substructures.
This is exposed as an external API for ease of unit testing.
bool net_instaweb::RewriteOptions::NeedsDependenciesCohort | ( | ) | const |
Returns true if this configuration turns on options that may need the dependencies cohort to operate.
|
static |
Returns the number of filter ids. This is used to loop over all filter ids using the FilterId() method.
bool net_instaweb::RewriteOptions::OptionValue | ( | StringPiece | option_name, |
const char ** | id, | ||
bool * | was_set, | ||
GoogleString * | value | ||
) | const |
Returns the id and value of the specified option-enum in *id and *value. Sets *was_set to true if this option has been altered from the default.
If this option was not found, false is returned, and *id, *was_set, and *value will be left unassigned.
|
virtual |
Advanced option parsing, that can understand non-scalar values (unlike SetOptionFromName), and which is extensible by platforms. Returns whether succeeded or the kind of failure, and writes the diagnostic into *msg.
If you extend any of these you also need to extend Merge() and SubclassSignatureLockHeld().
OptionSettingResult net_instaweb::RewriteOptions::ParseAndSetOptionFromNameWithScope | ( | StringPiece | name, |
StringPiece | arg, | ||
OptionScope | max_scope, | ||
GoogleString * | msg, | ||
MessageHandler * | handler | ||
) |
Parses and sets options like ParseAndSetOptionFromName1, but with a maximum scope specified. ParseAndSetOptionFromName1 will apply options from any scope, whereas ParseAndSetOptionFromNameWithScope will only apply options within max_scope scope.
|
static |
Parse a beacon url, or a pair of beacon urls (http https) separated by a space. If only an http url is given, the https url is derived from it by simply substituting the protocol.
|
static |
These static methods are used by Option<T>::SetFromString to set Option<T>::value_ from a string representation of it.
GoogleString net_instaweb::RewriteOptions::PurgeSetString | ( | ) | const |
Generates a human-readable view of the PurgeSet, including timestamps in GMT.
bool net_instaweb::RewriteOptions::RequiresAddHead | ( | ) | const |
Determines whether any filter is enabled that requires a 'head' element to work.
GoogleString net_instaweb::RewriteOptions::SafeEnabledOptionsToString | ( | ) | const |
Returns a string containing the enabled options which do not leak sensitive information about the server state.
|
inline |
Supply optional mutex for setting a global cache invalidation timestamp. Ownership of 'lock' is transfered to this.
|
inlineprotected |
Sets the global default value for 'x_header_value'. Note that setting this Option reaches through to the underlying property and sets the default value there, and in fact does *not affect the value of the instantiated RewriteOptions object.
|
inline |
The argument is int64 to allow it to be set from the http header or url query param and int64_query_params_ only allows setting of 64 bit values.
|
inline |
Remove any trailing slashes. Leaving them in causes the request to have multiple trailing slashes.
|
inlineprotected |
When setting an option, however, we generally are doing so with a variable rather than a constant so it makes sense to pass it by reference.
|
inlineprotected |
Populates all_options_, based on the passed-in index, which should correspond to the property index calculated after sorting all_properties_. This enables us to sort the all_properties_ vector once, and use that to give us all_options_ that is sorted the same way.
|
inline |
Sets the default rewrite level for this RewriteOptions object only. Note that the defaults for other RewriteOptions objects are unaffected.
Do not set the modified bit – we are only changing the default.
|
virtual |
Sets which side of the experiment these RewriteOptions are on. Cookie-setting must be done separately. experiment::kExperimentNotSet indicates it hasn't been set. experiment::kNoExperiment indicates this request shouldn't be in any experiment. Then sets the rewriters to match the experiment indicated by id. Returns true if succeeded in setting state.
void net_instaweb::RewriteOptions::SetExperimentStateStr | ( | const StringPiece & | experiment_index | ) |
We encode experiment information in urls as an experiment index: the first ExperimentSpec is a, the next is b, and so on. Empty string or an invalid letter means kNoExperiment.
OptionSettingResult net_instaweb::RewriteOptions::SetOptionFromName | ( | StringPiece | name, |
StringPiece | value, | ||
GoogleString * | msg | ||
) |
Set Option 'name' to 'value'. Returns whether it succeeded or the kind of failure (wrong name or value), and writes the diagnostic into 'msg'. This only understands simple scalar options, and not more general things like filter lists, blacklists, etc.
bool net_instaweb::RewriteOptions::SetOptionFromNameAndLog | ( | StringPiece | name, |
StringPiece | value, | ||
MessageHandler * | handler | ||
) |
Sets Option 'name' to 'value'. Returns whether it succeeded and logs any warnings to 'handler'.
OptionSettingResult net_instaweb::RewriteOptions::SetOptionFromQuery | ( | StringPiece | name, |
StringPiece | value | ||
) |
Same as SetOptionFromName, but only works with options that are valid to use as query parameters, returning kOptionNameUnknown for properties where the scope() is not kQueryScope.
OptionSettingResult net_instaweb::RewriteOptions::SetOptionFromRemoteConfig | ( | StringPiece | name, |
StringPiece | value | ||
) |
Same as SetOptionFromName, but only works with options that are valid to use as remote config, returning kOptionNameUnknown for properties where the scope() is not kQueryScope or kDirectoryScope.
bool net_instaweb::RewriteOptions::SetOptionsFromName | ( | const OptionSet & | option_set, |
MessageHandler * | handler | ||
) |
Set all of the options to their values specified in the option set. Returns true if all options in the set were successful, false if not.
|
protected |
Enable/disable filters and set options according to the current ExperimentSpec that experiment_id_ matches. Returns true if the state was set successfully.
|
inline |
Returns the computed signature.
We take a reader-lock because we may be looking at the global_options signature concurrent with updating it if someone flushes cache. Note that the default mutex implementation is NullRWLock, which isn't actually a mutex. Only (currently) for the Apache global_options() object do we create a real mutex. We don't expect contention here because we take a reader-lock and the only time we Write is if someone flushes the cache.
void net_instaweb::RewriteOptions::SoftEnableFilterForTesting | ( | Filter | filter | ) |
Induces a filter to be considered enabled by turning on the AllFilters level and disabling the filters that are not wanted. This is used for testing the desired behavior of PreserveUrls, which is to disable inlining and combining when the level is CoreFilters, but allow explictly enabled combiners and inliners to work.
Beware: this mode of enabling filters is difficult to manage across multiple levels of test inheritance. In particular, once SoftEnableFilterForTesting is called, EnableFilter will no longer work due to the explicit disables. It does work to call SoftEnableFilterForTesting multiple times to enable several filters, and it also works to call EnableFilter first. ForceEnable also works.
It is only necessary to call this in tests with PreserveUrls.
Caveat emptor.
|
inlinevirtual |
If you subclass RewriteOptions and store any configuration data that's not an Option, use this hook to include the signature of your additional data.
Reimplemented in net_instaweb::ApacheConfig, and net_instaweb::SystemRewriteOptions.
|
inline |
Returns true if PageSpeed responds differently for image requests with Save-Data header, i.e., using a unique quality and adding "Vary: Save-Data" header.
|
virtual |
Returns a string with more information about the currently running experiment. Primarily used for tagging Google Analytics data. This format is not at all specific to Google Analytics, however.
|
virtual |
Returns a string identifying the currently running experiment to be used in tagging Google Analytics data.
bool net_instaweb::RewriteOptions::UpdateCacheInvalidationTimestampMs | ( | int64 | timestamp_ms | ) |
Sets the cache invalidation timestamp – in milliseconds since
It can also be used to mutate the invalidation timestamp of a RewriteOptions instance that is used as a base for cloning/merging, in which case you should make sure to establish a real mutex with set_cache_invalidation_timestamp_mutex for such instances.
bool net_instaweb::RewriteOptions::UpdateCachePurgeSet | ( | const CopyOnWrite< PurgeSet > & | purge_set | ) |
Mutates the options PurgeSet by copying the contents from purge_set. Returns true if the contents actually changed, false if the incoming purge_set was identical to purge_set already in this.
void net_instaweb::RewriteOptions::UrlValuedAttribute | ( | int | index, |
StringPiece * | element, | ||
StringPiece * | attribute, | ||
semantic_type::Category * | category | ||
) | const |
Look up a url-valued attribute, return details via element, attribute, and category. index must be less than num_url_valued_attributes().
bool net_instaweb::RewriteOptions::UsePerOriginPropertyCachePage | ( | ) | const |
Returns true if any filter benefits from per-origin property cache information.
bool net_instaweb::RewriteOptions::ValidateAndAddResourceHeader | ( | const StringPiece & | name, |
const StringPiece & | value, | ||
GoogleString * | error_message | ||
) |
If false was returned, no changes are made, and error_message will be assigned a failure description. If true was returned, the name/value passed validation and have been appended to resource_headers_. Multiple calls to ValidateAndAddResourceHeader with the same name will result in multiple headers being appended with the same name.
bool net_instaweb::RewriteOptions::ValidateConfiguredHttpHeader | ( | const GoogleString & | name, |
const GoogleString & | value, | ||
GoogleString * | error_message | ||
) |
Returns true iff given name and value are valid to set as a http header. If false is returned, error_message will have a descriptive failure message set.
|
static |
Any new Option added should have a corresponding name here that must be passed in when Add*Property is called in AddProperties(). You must also update the LookupOptionByNameTest method in rewrite_options_test.cc. If you add an image-related option or css-related option you must also add it to the kRelatedOptions array in image_rewrite_filter.cc and/or css_filter.cc.
|
static |
apache/ or system/ specific:
|
static |
Default duration after which the experiment cookie will expire on the user's browser.
|
static |
Default maximum image size below which low res image is generated by InlinePreviewImagesFilter.
|
static |
Default number of first N images for which low res image is generated by DelayImagesFilter.
|
static |
See http://github.com/pagespeed/mod_pagespeed/issues/9 Apache evidently limits each URL path segment (between /) to about 256 characters. This is not fundamental URL limitation but is Apache specific.
|
static |
IE limits URL size overall to about 2k characters. See http://support.microsoft.com/kb/208427/EN-US
|
static |
Default time in milliseconds for which a metadata cache entry may be used after expiry.
|
static |
Default minimum image size above which low res image is generated by InlinePreviewImagesFilter.
|
static |
|
static |
This version index serves as global signature key. Much of the data emitted in signatures is based on the option ordering, which can change as we add new options. So every time there is a binary-incompatible change to the option ordering, we bump this version.
Note: we now use a two-letter code for identifying enabled filters, so there is no need bump the option version when changing the filter enum.
Updating this value will have the indirect effect of flushing the metadata cache. The HTTPCache can be flushed by updating kHttpCacheVersion in http_cache.cc.
This version number should be incremented if any default-values are changed, either in an Add*Property() call or via options->set_default.