Page Speed Optimization Libraries
1.13.35.1
|
#include "js_combine_filter.h"
Public Member Functions | |
JsCombineFilter (RewriteDriver *rewrite_driver) | |
virtual const char * | id () const |
ScriptUsage | GetScriptUsage () const override |
Public Member Functions inherited from net_instaweb::RewriteFilter | |
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 |
Public Member Functions inherited from net_instaweb::CommonFilter | |
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, 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 | Directive (HtmlDirectiveNode *directive) |
Called for HTML directives (e.g. <!doctype foobar>). | |
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) |
Registers the provided statistics variable names with 'statistics'. | |
static bool | IsLikelyStrictMode (const pagespeed::js::JsTokenizerPatterns *jstp, StringPiece input) |
Static Public Member Functions inherited from net_instaweb::RewriteFilter | |
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 Public Member Functions inherited from net_instaweb::CommonFilter | |
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 Public Attributes inherited from net_instaweb::CommonFilter | |
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 |
The name of this filter – used for logging and debugging. | |
virtual RewriteContext * | MakeRewriteContext () |
virtual const UrlSegmentEncoder * | encoder () const |
Protected Member Functions inherited from net_instaweb::RewriteFilter | |
virtual const char * | LoggingId () |
This class logs using id(). | |
Protected Member Functions inherited from net_instaweb::CommonFilter | |
ServerContext * | server_context () const |
const RewriteOptions * | rewrite_options () |
Friends | |
class | JsCombineFilterTest |
Additional Inherited Members | |
Public Types inherited from net_instaweb::HtmlFilter | |
enum | ScriptUsage { kWillInjectScripts, kMayInjectScripts, kNeverInjectsScripts } |
Describes a filter's relationship with scripts. More... | |
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.
|
protectedvirtual |
Notifies the Filter that a flush is occurring. A filter that's generating streamed output should flush at this time. A filter that's mutating elements can mutate any element seen since the most recent flush; once an element is flushed it is already on the wire to its destination and it's too late to mutate. Flush is initiated by an application calling HttpParse::Flush().
Flush() is called after all other handlers during a HttpParse::Flush(), except RenderDone(), which (if in use) happens after Flush().
Reimplemented from net_instaweb::EmptyHtmlFilter.
|
inlineoverridevirtual |
Note: there is also kRequiresScriptExecutionFilterSet in rewrite_options.cc, which identifies filters that will leave broken pages if javascript is disabled, and hence require noscript handing. The set of filters that CanInjectScripts is larger, as it includes filters that might inject beacons or other optional functionality that is not page-critical.
Implements net_instaweb::HtmlFilter.
|
protectedvirtual |
Called for an IE directive; typically used for CSS styling. See http://msdn.microsoft.com/en-us/library/ms537512(VS.85).aspx
Reimplemented from net_instaweb::EmptyHtmlFilter.
|
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.