blob: bf3fb09f011019ff77dc12d4d1e822f5167c145d [file] [log] [blame]
%{
// rewrite_filter_names.cc is automatically generated from
// rewrite_filter_names.gperf.
// Author: jmarantz@google.com
#include "base/basictypes.h"
#include "net/instaweb/rewriter/public/rewrite_options.h"
#include "pagespeed/kernel/base/string_util.h"
namespace net_instaweb {
%}
%compare-strncmp
%define class-name FilterMapper
%define lookup-function-name Lookup
%define word-array-name kHtmlNameTable
%global-table
%ignore-case
%includes
%language=C++
%readonly-tables
%struct-type
struct FilterMap {
const char* name;
net_instaweb::RewriteOptions::Filter filter;
};
%%
# IMPORTANT: Do not add any internal filters (that would blow up if triggered
# from e.g. query params!) here.
"add_base_tag", RewriteOptions::kAddBaseTag
"add_head", RewriteOptions::kAddHead
"add_ids", RewriteOptions::kAddIds
"add_instrumentation", RewriteOptions::kAddInstrumentation
"cache_partial_html", RewriteOptions::kCachePartialHtml
"canonicalize_javascript_libraries", RewriteOptions::kCanonicalizeJavascriptLibraries
"collapse_whitespace", RewriteOptions::kCollapseWhitespace
"combine_css", RewriteOptions::kCombineCss
"combine_javascript", RewriteOptions::kCombineJavascript
"combine_heads", RewriteOptions::kCombineHeads
"compute_statistics", RewriteOptions::kComputeStatistics
"compute_critical_css", RewriteOptions::kComputeCriticalCss
"convert_gif_to_png", RewriteOptions::kConvertGifToPng
"convert_jpeg_to_progressive", RewriteOptions::kConvertJpegToProgressive
"convert_jpeg_to_webp", RewriteOptions::kConvertJpegToWebp
"convert_meta_tags", RewriteOptions::kConvertMetaTags
"convert_png_to_jpeg", RewriteOptions::kConvertPngToJpeg
"convert_to_webp_animated", RewriteOptions::kConvertToWebpAnimated
"convert_to_webp_lossless", RewriteOptions::kConvertToWebpLossless
"debug", RewriteOptions::kDebug
"decode_rewritten_urls", RewriteOptions::kDecodeRewrittenUrls
"dedup_inlined_images", RewriteOptions::kDedupInlinedImages
"defer_iframe", RewriteOptions::kDeferIframe
"defer_javascript", RewriteOptions::kDeferJavascript
"deterministic_js", RewriteOptions::kDeterministicJs
"disable_javascript", RewriteOptions::kDisableJavascript
"div_structure", RewriteOptions::kDivStructure
"elide_attributes", RewriteOptions::kElideAttributes
"experiment_collect_mob_image_info", RewriteOptions::kExperimentCollectMobImageInfo
"experiment_spdy", RewriteOptions::kExperimentSpdy
"explicit_close_tags", RewriteOptions::kExplicitCloseTags
"extend_cache_css", RewriteOptions::kExtendCacheCss
"extend_cache_images", RewriteOptions::kExtendCacheImages
"extend_cache_pdfs", RewriteOptions::kExtendCachePdfs
"extend_cache_scripts", RewriteOptions::kExtendCacheScripts
"fallback_rewrite_css_urls", RewriteOptions::kFallbackRewriteCssUrls
"fix_reflows", RewriteOptions::kFixReflows
"flatten_css_imports", RewriteOptions::kFlattenCssImports
"flush_subresources", RewriteOptions::kFlushSubresources
"in_place_optimize_for_browser", RewriteOptions::kInPlaceOptimizeForBrowser
"include_js_source_maps", RewriteOptions::kIncludeJsSourceMaps
"inline_css", RewriteOptions::kInlineCss
"inline_google_font_css", RewriteOptions::kInlineGoogleFontCss
"inline_images", RewriteOptions::kInlineImages
"inline_import_to_link", RewriteOptions::kInlineImportToLink
"inline_javascript", RewriteOptions::kInlineJavascript
"inline_preview_images", RewriteOptions::kDelayImages
"insert_dns_prefetch", RewriteOptions::kInsertDnsPrefetch
"insert_ga", RewriteOptions::kInsertGA
"insert_img_dimensions", RewriteOptions::kInsertImageDimensions
"insert_image_dimensions", RewriteOptions::kInsertImageDimensions
"jpeg_subsampling", RewriteOptions::kJpegSubsampling
"lazyload_images", RewriteOptions::kLazyloadImages
"local_storage_cache", RewriteOptions::kLocalStorageCache
"left_trim_urls", RewriteOptions::kLeftTrimUrls
"make_google_analytics_async", RewriteOptions::kMakeGoogleAnalyticsAsync
"make_show_ads_async", RewriteOptions::kMakeShowAdsAsync
"mobilize", RewriteOptions::kMobilize
"mobilize_precompute", RewriteOptions::kMobilizePrecompute
"move_css_above_scripts", RewriteOptions::kMoveCssAboveScripts
"move_css_to_head", RewriteOptions::kMoveCssToHead
"outline_css", RewriteOptions::kOutlineCss
"outline_javascript", RewriteOptions::kOutlineJavascript
"pedantic", RewriteOptions::kPedantic
"prioritize_critical_css", RewriteOptions::kPrioritizeCriticalCss
"recompress_jpeg", RewriteOptions::kRecompressJpeg
"recompress_png", RewriteOptions::kRecompressPng
"recompress_webp", RewriteOptions::kRecompressWebp
"remove_comments", RewriteOptions::kRemoveComments
"remove_quotes", RewriteOptions::kRemoveQuotes
"resize_images", RewriteOptions::kResizeImages
"resize_mobile_images", RewriteOptions::kResizeMobileImages
"resize_rendered_image_dimensions", RewriteOptions::kResizeToRenderedImageDimensions
"responsive_images", RewriteOptions::kResponsiveImages
"responsive_images_zoom", RewriteOptions::kResponsiveImagesZoom
"rewrite_css", RewriteOptions::kRewriteCss
"rewrite_domains", RewriteOptions::kRewriteDomains
"rewrite_javascript_external", RewriteOptions::kRewriteJavascriptExternal
"rewrite_javascript_inline", RewriteOptions::kRewriteJavascriptInline
"rewrite_style_attributes", RewriteOptions::kRewriteStyleAttributes
"rewrite_style_attributes_with_url", RewriteOptions::kRewriteStyleAttributesWithUrl
"split_html", RewriteOptions::kSplitHtml
"split_html_helper", RewriteOptions::kSplitHtmlHelper
"sprite_images", RewriteOptions::kSpriteImages
"strip_image_color_profile", RewriteOptions::kStripImageColorProfile
"strip_image_meta_data", RewriteOptions::kStripImageMetaData
"strip_scripts", RewriteOptions::kStripScripts
"trim_urls", RewriteOptions::kLeftTrimUrls
%%
RewriteOptions::Filter RewriteOptions::LookupFilter(
const StringPiece& filter_name) {
const FilterMap* entry = FilterMapper::Lookup(
filter_name.data(), filter_name.size());
if (entry != NULL) {
return entry->filter;
}
return RewriteOptions::kEndOfFilters;
}
} // namespace net_instaweb