Page Speed Optimization Libraries
1.11.33.2
|
#include "js_combine_filter.h"
Public Member Functions | |
JsCombineFilter (RewriteDriver *rewrite_driver) | |
virtual const char * | id () const |
ScriptUsage | GetScriptUsage () const override |
![]() | |
RewriteFilter (RewriteDriver *driver) | |
virtual void | DetermineEnabled (GoogleString *disabled_reason) |
virtual bool | CanModifyUrls () |
virtual bool | ComputeOnTheFly () const |
virtual RewriteContext * | MakeNestedRewriteContext (RewriteContext *parent, const ResourceSlotPtr &slot) |
virtual void | EncodeUserAgentIntoResourceContext (ResourceContext *context) const |
virtual const RewriteOptions::Filter * | RelatedFilters (int *num_filters) const |
virtual const StringPieceVector * | RelatedOptions () const |
![]() | |
CommonFilter (RewriteDriver *driver) | |
const GoogleUrl & | base_url () const |
Getters. More... | |
const GoogleUrl & | decoded_base_url () const |
RewriteDriver * | driver () const |
HtmlElement * | noscript_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) |
ResourcePtr | CreateInputResource (StringPiece input_url, bool *is_authorized) |
ResourcePtr | CreateInputResourceOrInsertDebugComment (StringPiece input_url, HtmlElement *element) |
void | ResolveUrl (StringPiece input_url, GoogleUrl *out_url) |
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) |
Static Public Member Functions | |
static void | InitStats (Statistics *statistics) |
Registers the provided statistics variable names with 'statistics'. | |
static bool | IsLikelyStrictMode (const pagespeed::js::JsTokenizerPatterns *jstp, StringPiece input) |
![]() | |
static StringPiece | GetCharsetForScript (const Resource *script, const StringPiece attribute_charset, const StringPiece enclosing_charset) |
static GoogleString | GetCharsetForStylesheet (const Resource *stylesheet, const StringPiece attribute_charset, const StringPiece enclosing_charset) |
![]() | |
static bool | ExtractMetaTagDetails (const HtmlElement &element, const ResponseHeaders *headers, GoogleString *content, GoogleString *mime_type, GoogleString *charset) |
Static Public Attributes | |
static const char | kJsFileCountReduction [] |
statistics variable name | |
![]() | |
static const char | kCreateResourceFailedDebugMsg [] |
Debug message to be inserted when resource creation fails. | |
Protected Member Functions | |
virtual void | StartDocumentImpl () |
RewriteFilter overrides — HTML parsing event handlers. | |
virtual void | StartElementImpl (HtmlElement *element) |
virtual void | EndElementImpl (HtmlElement *element) |
virtual void | Characters (HtmlCharactersNode *characters) |
virtual void | Flush () |
virtual void | IEDirective (HtmlIEDirectiveNode *directive) |
virtual const char * | Name () const |
virtual RewriteContext * | MakeRewriteContext () |
virtual const UrlSegmentEncoder * | encoder () const |
![]() | |
virtual const char * | LoggingId () |
This class logs using id(). | |
![]() | |
ServerContext * | server_context () const |
const RewriteOptions * | rewrite_options () |
Friends | |
class | JsCombineFilterTest |
Implements combining of multiple external JS files into one via the following transformation:
<script src="a.js"> <stuff> <script src="b.js">
gets turned into:
<script src="a.js+b.js"> <script>eval(mod_pagespeed_${hash("a.js")})</script> <stuff> <script>eval(mod_pagespeed_${hash("b.js")})</script>
where $hash stands for using the active Hasher and tweaking the result to be a valid identifier continuation. Further, the combined source file has the code: var mod_pagespeed_${hash("a.js")} = "code of a.js as a string literal"; var mod_pagespeed_${hash("b.js")} = "code of b.js as a string literal";
|
explicit |
rewrite_driver is the context owning us, and filter_id is the ID we are registered under.
|
protectedvirtual |
If a subclass overloads this function and wishes to use InsertNodeAtBodyEnd(), it needs to make an upcall to this implementation for InsertNodeAtBodyEnd() to work correctly.
Reimplemented from net_instaweb::CommonFilter.
|
inlineprotectedvirtual |
All RewriteFilters define how they encode URLs and other associated information needed for a rewrite into a URL. The default implementation handles a single URL with no extra data. The filter owns the encoder.
Reimplemented from net_instaweb::RewriteFilter.
|
static |
Returns true if given JavaScript is likely to be in strict mode. This is somewhat conservative towards saying yes, as it doesn't take finer points of ; grammar into account.
|
protectedvirtual |
Generates a RewriteContext appropriate for this filter. Default implementation returns NULL. This must be overridden by filters. This is used to implement Fetch.
Reimplemented from net_instaweb::RewriteFilter.