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

#include "url_left_trim_filter.h"

Inheritance diagram for net_instaweb::UrlLeftTrimFilter:
net_instaweb::CommonFilter net_instaweb::EmptyHtmlFilter net_instaweb::HtmlFilter

Public Member Functions

 UrlLeftTrimFilter (RewriteDriver *rewrite_driver, Statistics *stats)
 
virtual void StartDocumentImpl ()
 
virtual void StartElementImpl (HtmlElement *element)
 
virtual void EndElementImpl (HtmlElement *element)
 
virtual const char * Name () const
 The name of this filter – used for logging and debugging.
 
- Public Member Functions inherited from net_instaweb::CommonFilter
 CommonFilter (RewriteDriver *driver)
 
const GoogleUrlbase_url () const
 Getters. More...
 
const GoogleUrldecoded_base_url () const
 
RewriteDriverdriver () const
 
HtmlElementnoscript_element () const
 
void InsertNodeAtBodyEnd (HtmlNode *data)
 
virtual void StartDocument ()
 Note: Don't overload these methods, overload the implementers instead!
 
virtual void StartElement (HtmlElement *element)
 
virtual void EndElement (HtmlElement *element)
 
virtual void Characters (HtmlCharactersNode *characters)
 
ResourcePtr CreateInputResource (StringPiece input_url, RewriteDriver::InputRole role, bool *is_authorized)
 
ResourcePtr CreateInputResourceOrInsertDebugComment (StringPiece input_url, RewriteDriver::InputRole role, HtmlElement *element)
 
void ResolveUrl (StringPiece input_url, GoogleUrl *out_url)
 
bool IsRelativeUrlLoadPermittedByCsp (StringPiece url, CspDirective role)
 
bool BaseUrlIsValid () const
 
bool DebugMode () const
 
bool CanAddPagespeedOnloadToImage (const HtmlElement &)
 
virtual void LogFilterModifiedContent ()
 
virtual
RewriteDriver::InlineAuthorizationPolicy 
AllowUnauthorizedDomain () const
 
virtual bool IntendedForInlining () const
 
void AddJsToElement (StringPiece js, HtmlElement *script)
 
- 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 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 Member Functions

static void InitStats (Statistics *statistics)
 
static bool Trim (const GoogleUrl &base_url, const StringPiece &url_to_trim, GoogleString *trimmed_url, MessageHandler *handler)
 
- Static Public Member Functions inherited from net_instaweb::CommonFilter
static bool ExtractMetaTagDetails (const HtmlElement &element, const ResponseHeaders *headers, GoogleString *content, GoogleString *mime_type, GoogleString *charset)
 

Friends

class UrlLeftTrimFilterTest
 

Additional Inherited Members

- Public Types inherited from net_instaweb::HtmlFilter
enum  ScriptUsage { kWillInjectScripts, kMayInjectScripts, kNeverInjectsScripts }
 Describes a filter's relationship with scripts. More...
 
- Static Public Attributes inherited from net_instaweb::CommonFilter
static const char kCreateResourceFailedDebugMsg []
 Debug message to be inserted when resource creation fails.
 
- Protected Member Functions inherited from net_instaweb::CommonFilter
ServerContextserver_context () const
 
const RewriteOptionsrewrite_options ()
 
virtual const char * LoggingId ()
 

Detailed Description

Filter that trims redundant information from the left end of each url.

For example: if the page's base URL is http://www.example.com/foo/bar.html then the following URLs can be trimmed: http://www.example.com/foo/bar/other.html -> bar/other.html http://www.example.com/another.html -> /another.html http://www.example.org/index.html -> //www.example.org/index.html

Todo:
TODO(jmaessen): Do we care to introduce ../ in order to relativize more urls? For example, if base URL is http://www.example.com/foo/bar/index.html we could convert: http://www.example.com/foo/other.html -> ../other.html rather than -> /foo/other.html.

Member Function Documentation

virtual void net_instaweb::UrlLeftTrimFilter::StartDocumentImpl ( )
inlinevirtual

Overload these implementer methods: Intentionally left abstract so that implementers don't forget to change the name from Blah to BlahImpl.

Implements net_instaweb::CommonFilter.

static bool net_instaweb::UrlLeftTrimFilter::Trim ( const GoogleUrl base_url,
const StringPiece &  url_to_trim,
GoogleString trimmed_url,
MessageHandler handler 
)
static

Trim 'url_to_trim' relative to 'base_url' returning the result in 'trimmed_url'. Returns true if we succeeded at trimming the URL.

This is static and requires the base_url explicitly, so that it can be called from other places (like the CSS filter).


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