21 #ifndef NET_INSTAWEB_REWRITER_PUBLIC_SRCSET_SLOT_H_
22 #define NET_INSTAWEB_REWRITER_PUBLIC_SRCSET_SLOT_H_
28 #include "pagespeed/kernel/base/basictypes.h"
29 #include "pagespeed/kernel/base/ref_counted_ptr.h"
30 #include "pagespeed/kernel/base/string.h"
31 #include "pagespeed/kernel/base/string_util.h"
32 #include "pagespeed/kernel/html/html_element.h"
33 #include "pagespeed/kernel/http/google_url.h"
35 namespace net_instaweb {
49 GoogleString descriptor;
61 HtmlElement::Attribute* attribute);
63 int num_image_candidates() {
return candidates_.size(); }
67 const GoogleString& url(
int idx) {
return candidates_[idx].url; }
68 void set_url(
int idx, GoogleString new_url) {
69 candidates_[idx].url = new_url;
71 const GoogleString& descriptor(
int idx) {
72 return candidates_[idx].descriptor;
75 HtmlElement* element() {
return element_; }
76 RewriteDriver* driver() {
return driver_; }
86 static void ParseSrcSet(StringPiece input, std::vector<ImageCandidate>* out);
88 static GoogleString Serialize(
const std::vector<ImageCandidate>& in);
95 std::vector<ImageCandidate> candidates_;
96 RewriteDriver* driver_;
97 HtmlElement* element_;
98 HtmlElement::Attribute* attribute_;
105 HtmlElement*
element()
const override {
return parent_->element(); }
119 RefCountedPtr<SrcSetSlotCollection> parent_;
121 UrlRelativity url_relativity_;
HtmlElement * element() const override
Return HTML element associated with slot, or NULL if none (CSS, IPRO)
Definition: srcset_slot.h:105
Definition: common_filter.h:47
GoogleString LocationString() const override
Definition: srcset_slot.h:45
Definition: srcset_slot.h:103
Definition: resource_slot.h:53
SrcSetSlotCollection(RewriteDriver *driver, CommonFilter *filter, HtmlElement *element, HtmlElement::Attribute *attribute)
Definition: srcset_slot.h:43
static void ParseSrcSet(StringPiece input, std::vector< ImageCandidate > *out)
SrcSetSlot * slot(int idx)
may be nullptr.
Definition: srcset_slot.h:66
Definition: rewrite_driver.h:98
SrcSetSlot * slot
Definition: srcset_slot.h:53