Index: third_party/WebKit/Source/web/WebFrameSerializer.cpp |
diff --git a/third_party/WebKit/Source/web/WebFrameSerializer.cpp b/third_party/WebKit/Source/web/WebFrameSerializer.cpp |
index fb8ffc3fb4aa4e50b2d2cbfce43d8a3aafb33341..15923ed2b070310f3f3808b2174505bed1b4a916 100644 |
--- a/third_party/WebKit/Source/web/WebFrameSerializer.cpp |
+++ b/third_party/WebKit/Source/web/WebFrameSerializer.cpp |
@@ -43,6 +43,7 @@ |
#include "core/html/HTMLInputElement.h" |
#include "core/html/HTMLTableElement.h" |
#include "core/loader/DocumentLoader.h" |
+#include "platform/Histogram.h" |
#include "platform/SerializedResource.h" |
#include "platform/SharedBuffer.h" |
#include "platform/TraceEvent.h" |
@@ -217,11 +218,14 @@ WebData WebFrameSerializer::generateMHTMLParts( |
: MHTMLArchive::EncodingPolicy::UseDefaultEncoding; |
// Serialize. |
- Vector<SerializedResource> resources; |
TRACE_EVENT_BEGIN0("page-serialization", "WebFrameSerializer::generateMHTMLParts serializing"); |
- MHTMLFrameSerializerDelegate coreDelegate(*webDelegate); |
- FrameSerializer serializer(resources, coreDelegate); |
- serializer.serializeFrame(*frame); |
+ Vector<SerializedResource> resources; |
+ { |
+ SCOPED_BLINK_UMA_HISTOGRAM_TIMER("PageSerialization.MhtmlGeneration.SerializationTime.SingleFrame"); |
+ MHTMLFrameSerializerDelegate coreDelegate(*webDelegate); |
+ FrameSerializer serializer(resources, coreDelegate); |
+ serializer.serializeFrame(*frame); |
+ } |
TRACE_EVENT_END1("page-serialization", "WebFrameSerializer::generateMHTMLParts serializing", |
"resource count", static_cast<unsigned long long>(resources.size())); |
@@ -230,17 +234,20 @@ WebData WebFrameSerializer::generateMHTMLParts( |
// Encode serializer's output as MHTML. |
RefPtr<SharedBuffer> output = SharedBuffer::create(); |
- bool isFirstResource = true; |
- for (const SerializedResource& resource : resources) { |
- TRACE_EVENT0("page-serialization", "WebFrameSerializer::generateMHTMLParts encoding"); |
- // Frame is the 1st resource (see FrameSerializer::serializeFrame doc |
- // comment). Frames get a Content-ID header. |
- String contentID = isFirstResource ? frameContentID : String(); |
- |
- MHTMLArchive::generateMHTMLPart( |
- boundary, contentID, encodingPolicy, resource, *output); |
- |
- isFirstResource = false; |
+ { |
+ SCOPED_BLINK_UMA_HISTOGRAM_TIMER("PageSerialization.MhtmlGeneration.EncodingTime.SingleFrame"); |
+ bool isFirstResource = true; |
+ for (const SerializedResource& resource : resources) { |
+ TRACE_EVENT0("page-serialization", "WebFrameSerializer::generateMHTMLParts encoding"); |
+ // Frame is the 1st resource (see FrameSerializer::serializeFrame doc |
+ // comment). Frames get a Content-ID header. |
+ String contentID = isFirstResource ? frameContentID : String(); |
+ |
+ MHTMLArchive::generateMHTMLPart( |
+ boundary, contentID, encodingPolicy, resource, *output); |
+ |
+ isFirstResource = false; |
+ } |
} |
return output.release(); |
} |