19 #ifndef NET_INSTAWEB_REWRITER_PUBLIC_CSS_SUMMARIZER_BASE_H_
20 #define NET_INSTAWEB_REWRITER_PUBLIC_CSS_SUMMARIZER_BASE_H_
26 #include "pagespeed/kernel/base/basictypes.h"
27 #include "pagespeed/kernel/base/scoped_ptr.h"
28 #include "pagespeed/kernel/base/string.h"
29 #include "pagespeed/kernel/base/string_util.h"
30 #include "pagespeed/kernel/html/html_element.h"
38 namespace net_instaweb {
41 class HtmlCharactersNode;
54 static const char kNumCssUsedForCriticalCssComputation[];
55 static const char kNumCssNotUsedForCriticalCssComputation[];
60 static void InitStats(Statistics* statistics);
136 virtual void Summarize(Css::Stylesheet* stylesheet,
137 GoogleString* out)
const = 0;
156 HtmlElement* element,
157 HtmlCharactersNode* char_node,
158 bool* is_element_deleted);
169 HtmlElement* element,
170 HtmlCharactersNode* char_node,
171 bool* is_element_deleted);
193 int NumStyles()
const {
return static_cast<int>(summaries_.size()); }
201 return summaries_.at(pos);
207 virtual void EndDocument();
208 virtual void StartElementImpl(HtmlElement* element);
209 virtual void Characters(HtmlCharactersNode* characters);
210 virtual void EndElementImpl(HtmlElement* element);
211 virtual void RenderDone();
223 void ReportSummariesDone();
227 void StartInlineRewrite(HtmlElement* style, HtmlCharactersNode* text);
231 void StartExternalRewrite(HtmlElement* link, HtmlElement::Attribute* src,
239 Context* CreateContextAndSummaryInfo(
const HtmlElement* element,
241 const ResourceSlotPtr& slot,
242 const GoogleString& location,
243 StringPiece base_for_resources,
246 ResourceSlotPtr MakeSlotForInlineCss(HtmlCharactersNode* char_node);
249 std::vector<SummaryInfo> summaries_;
251 scoped_ptr<AbstractMutex> progress_lock_;
252 int outstanding_rewrites_;
253 bool saw_end_of_document_;
254 std::vector<int> canceled_summaries_;
259 HtmlElement* style_element_;
261 Variable* num_css_used_for_critical_css_computation_;
262 Variable* num_css_not_used_for_critical_css_computation_;
GoogleString location
Definition: css_summarizer_base.h:99
const SummaryInfo & GetSummaryForStyle(int pos) const
Definition: css_summarizer_base.h:200
Slot got removed by an another optimization.
Definition: css_summarizer_base.h:81
virtual GoogleString CacheKeySuffix() const
CSS parse error we can't recover from.
Definition: css_summarizer_base.h:71
virtual void Summarize(Css::Stylesheet *stylesheet, GoogleString *out) const =0
virtual void WillNotRenderSummary(int pos, HtmlElement *element, HtmlCharactersNode *char_node, bool *is_element_deleted)
Definition: css_summarizer_base.h:84
Fetch result unusable, either error or not cacheable.
Definition: css_summarizer_base.h:78
bool is_inside_noscript
True if the style was included inside a noscript section.
Definition: css_summarizer_base.h:114
virtual void StartDocumentImpl()
Computation/Fetches ongoing, we don't have a result yet.
Definition: css_summarizer_base.h:68
GoogleString rel
If it's an external stylesheet, the value of the rel attribute.
Definition: css_summarizer_base.h:108
All OK!
Definition: css_summarizer_base.h:65
bool is_external
True if it's a <link rel=stylesheet href=>, false for <style>
Definition: css_summarizer_base.h:111
Definition: css_summarizer_base.h:75
Definition: rewrite_filter.h:35
SummaryState state
State of computation of 'data'.
Definition: css_summarizer_base.h:95
Definition: rewrite_driver.h:98
int NumStyles() const
Definition: css_summarizer_base.h:193
Definition: rewrite_context.h:146
virtual void SummariesDone()
SummaryState
Definition: css_summarizer_base.h:63
virtual void Characters(HtmlCharactersNode *characters)
virtual void RenderSummary(int pos, HtmlElement *element, HtmlCharactersNode *char_node, bool *is_element_deleted)
GoogleString media_from_html
CSS media there were applied to the resource by the HTML.
Definition: css_summarizer_base.h:105
GoogleString base
Base to use for resolving links in the CSS resource.
Definition: css_summarizer_base.h:102
virtual bool MustSummarize(HtmlElement *element) const
Definition: css_summarizer_base.h:125
virtual RewriteContext * MakeRewriteContext()
GoogleString data
Definition: css_summarizer_base.h:92
Definition: css_summarizer_base.h:52