Page Speed Optimization Libraries  1.12.34.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Static Public Attributes | List of all members
net_instaweb::AddIdsFilter Class Reference

#include "add_ids_filter.h"

Inheritance diagram for net_instaweb::AddIdsFilter:
net_instaweb::EmptyHtmlFilter net_instaweb::HtmlFilter

Public Member Functions

 AddIdsFilter (RewriteDriver *driver)
 
virtual void StartDocument ()
 
virtual void StartElement (HtmlElement *element)
 
virtual void EndElement (HtmlElement *element)
 
virtual const char * Name () const
 The name of this filter – used for logging and debugging.
 
- Public Member Functions inherited from net_instaweb::EmptyHtmlFilter
virtual void EndDocument ()
 
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 Characters (HtmlCharactersNode *characters)
 Called for raw characters between tags.
 
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 kIdPrefix []
 

Additional Inherited Members

- Public Types inherited from net_instaweb::HtmlFilter
enum  ScriptUsage { kWillInjectScripts, kMayInjectScripts, kNeverInjectsScripts }
 Describes a filter's relationship with scripts. More...
 

Detailed Description

This filter as it stands adds an id to all div-like DOM elements that lack one. The ids represent the div's location in the DOM, based on the tag structure of the page. The hope is that this is moderately stable between page accesses.

Ids are of the form PageSpeed-nearestParentId-n-n-n... where -n-n-n is a path encoded as a series of indexes at that depth below nearestParentId. For example: PageSpeed-7-0 : The 0th child of the 7th child of the root of the document PageSpeed-content-11: The 11th child of the node with id='content'.

Member Function Documentation

virtual void net_instaweb::AddIdsFilter::StartDocument ( )
virtual

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.

virtual void net_instaweb::AddIdsFilter::StartElement ( HtmlElement element)
virtual

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.

Todo:
TODO(jmarantz): consider passing handles rather than pointers and reference-counting them instead to save memory on long documents.

Reimplemented from net_instaweb::EmptyHtmlFilter.


The documentation for this class was generated from the following file: