Page Speed Optimization Libraries
1.5.27.2
|
#include "debug_filter.h"
Classes | |
class | Event |
Public Member Functions | |
DebugFilter (RewriteDriver *driver) | |
virtual void | EndDocument () |
Note: EndDocument will be called imediately before the last Flush call. | |
virtual void | Flush () |
virtual const char * | Name () const |
The name of this filter -- used for logging and debugging. | |
void | InitParse () |
void | StartParse () |
void | EndParse () |
void | StartRender () |
void | EndRender () |
virtual void | EndElement (HtmlElement *element) |
Static Public Member Functions | |
static GoogleString | FormatFlushMessage (int64 time_since_init_parse_us, int64 parse_duration_us, int64 flush_duration_us, int64 idle_duration_us) |
static GoogleString | FormatEndDocumentMessage (int64 time_since_init_parse_us, int64 total_parse_duration_us, int64 total_flush_duration_us, int64 total_idle_duration_us, int num_flushes) |
Injects HTML comments for measuring the time it takes to parse HTML, run the Flush/Render sequence, and the idle-time between text blocks. Data is written into the HTML as comments.
virtual void net_instaweb::DebugFilter::Flush | ( | ) | [virtual] |
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.
static GoogleString net_instaweb::DebugFilter::FormatFlushMessage | ( | int64 | time_since_init_parse_us, |
int64 | parse_duration_us, | ||
int64 | flush_duration_us, | ||
int64 | idle_duration_us | ||
) | [static] |
Formats Flush/EndOfDocument messages that will be easy to read from View->PageSource in a browser.
They are exposed for testing, so that unit tests are not concerned with the exact formatting of those messages.
void net_instaweb::DebugFilter::InitParse | ( | ) |
Special entry-points needed for measuring timing. The timing of StartDocument/EndDocument does not capture the correct timing, and changing them so they do would alter functionality depended upon by numerous filters. So we have special entry-points for this filter called directly by RewriteDriver. This can be generalized in the future if these entry-points prove useful.