Page Speed Optimization Libraries
1.13.35.1
|
#include "amp_document_filter.h"
Public Types | |
typedef Callback1< bool > | BoolCallback |
Public Types inherited from net_instaweb::HtmlFilter | |
enum | ScriptUsage { kWillInjectScripts, kMayInjectScripts, kNeverInjectsScripts } |
Describes a filter's relationship with scripts. More... | |
Public Member Functions | |
AmpDocumentFilter (HtmlParse *html_parse, BoolCallback *discovered) | |
void | StartDocument () override |
void | EndDocument () override |
void | StartElement (HtmlElement *element) override |
void | Characters (HtmlCharactersNode *chars) override |
Called for raw characters between tags. | |
const char * | Name () const override |
The name of this filter – used for logging and debugging. | |
Public Member Functions inherited from net_instaweb::EmptyHtmlFilter | |
virtual void | EndElement (HtmlElement *element) |
virtual void | Cdata (HtmlCdataNode *cdata) |
Called for CDATA blocks (e.g. <![CDATA[foobar]]>) | |
virtual void | Comment (HtmlCommentNode *comment) |
Called for HTML comments that aren't IE directives (e.g. ). | |
virtual void | IEDirective (HtmlIEDirectiveNode *directive) |
virtual void | Directive (HtmlDirectiveNode *directive) |
Called for HTML directives (e.g. <!doctype foobar>). | |
virtual void | Flush () |
virtual void | DetermineEnabled (GoogleString *disabled_reason) |
virtual bool | CanModifyUrls () |
ScriptUsage | GetScriptUsage () const override |
Public Member Functions inherited from net_instaweb::HtmlFilter | |
virtual void | RenderDone () |
bool | is_enabled () const |
void | set_is_enabled (bool is_enabled) |
Static Public Attributes | |
static const char | kUtf8LightningBolt [] |
static const char | kInvalidAmpDirectiveComment [] |
This filter is designed to run immediately while lexing HTML into the system as an event listener, rather than in the streaming filter chain. It is used to monitor the HTML and try to figure out whether the document is an AMP document. See https://www.ampproject.org/ .
If the AMP-ness of a document is claimed in an incorrect manner (e.g. there was intervening tag or non-whitespace characters before the <html amp>=""> tag, the filter adds a comment saying so. This may help users debug why PageSpeed makes a page amp-invalid.
net_instaweb::AmpDocumentFilter::AmpDocumentFilter | ( | HtmlParse * | html_parse, |
BoolCallback * | discovered | ||
) |
When the filter discovers whether a document is AMP-compatible, it will call discovered->Run(is_amp). The callback will be called exactly once for every HTML document passing through the filter. It must be allocated with NewPermanentCallback. Ownership is tranferred to the filter.
|
overridevirtual |
Note: EndDocument will be called immediately before the last Flush call. (which also means that in the RewriteDriver use it is called before rendering for the last flush window).
Reimplemented from net_instaweb::EmptyHtmlFilter.
|
overridevirtual |
Starts a new document. Filters should clear their state in this function, as the same Filter instance may be used for multiple HTML documents.
Reimplemented from net_instaweb::EmptyHtmlFilter.
|
overridevirtual |
When an HTML element is encountered during parsing, each filter's StartElement method is called. The HtmlElement lives for the entire duration of the document.
Reimplemented from net_instaweb::EmptyHtmlFilter.