18 #ifndef NET_INSTAWEB_REWRITER_PUBLIC_IMAGE_URL_ENCODER_H_
19 #define NET_INSTAWEB_REWRITER_PUBLIC_IMAGE_URL_ENCODER_H_
21 #include "net/instaweb/rewriter/cached_result.pb.h"
22 #include "pagespeed/kernel/base/basictypes.h"
23 #include "pagespeed/kernel/base/gtest_prod.h"
24 #include "pagespeed/kernel/base/string.h"
25 #include "pagespeed/kernel/base/string_util.h"
26 #include "pagespeed/kernel/util/url_segment_encoder.h"
28 namespace net_instaweb {
31 class RequestProperties;
67 virtual void Encode(
const StringVector& urls,
68 const ResourceContext* dim,
69 GoogleString* rewritten_url)
const;
71 virtual bool Decode(
const StringPiece& url_segment,
74 MessageHandler* handler)
const;
82 ResourceContext* resource_context);
90 ResourceContext* context);
98 ResourceContext* context);
102 const ResourceContext& resource_context);
104 static bool HasDimensions(
const ResourceContext& data) {
105 return (data.has_desired_image_dims() &&
106 HasValidDimensions(data.desired_image_dims()));
109 static bool HasValidDimensions(
const ImageDim& dims) {
110 return (dims.has_width() && dims.has_height());
113 static bool HasDimension(
const ResourceContext& data) {
114 return (data.has_desired_image_dims() &&
115 HasValidDimension(data.desired_image_dims()));
118 static bool HasValidDimension(
const ImageDim& dims) {
119 return (dims.has_width() || dims.has_height());
static GoogleString CacheKeyFromResourceContext(const ResourceContext &resource_context)
Helper function to generate Metadata cache key from ResourceContext.
static void SetSmallScreen(const RewriteDriver &driver, ResourceContext *context)
static void SetWebpAndMobileUserAgent(const RewriteDriver &driver, ResourceContext *context)
static void SetLibWebpLevel(const RewriteOptions &options, const RequestProperties &request_properties, ResourceContext *resource_context)
Definition: rewrite_driver.h:98
static bool IsWebpRewrittenUrl(const GoogleUrl &gurl)
Determines whether the given URL is a pagespeed-rewritten webp URL.
Definition: rewrite_options.h:84
Definition: request_properties.h:37
Definition: image_url_encoder.h:62