| 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 15923ed2b070310f3f3808b2174505bed1b4a916..09f54b4ad095b500b2deee98bb78b1016f0456f3 100644
|
| --- a/third_party/WebKit/Source/web/WebFrameSerializer.cpp
|
| +++ b/third_party/WebKit/Source/web/WebFrameSerializer.cpp
|
| @@ -179,7 +179,7 @@ bool frameShouldBeSerializedAsMHTML(WebLocalFrame* frame, WebFrameSerializerCach
|
|
|
| } // namespace
|
|
|
| -WebData WebFrameSerializer::generateMHTMLHeader(
|
| +std::vector<char> WebFrameSerializer::generateMHTMLHeader(
|
| const WebString& boundary, WebLocalFrame* frame, MHTMLPartsGenerationDelegate* delegate)
|
| {
|
| TRACE_EVENT0("page-serialization", "WebFrameSerializer::generateMHTMLHeader");
|
| @@ -187,21 +187,20 @@ WebData WebFrameSerializer::generateMHTMLHeader(
|
| DCHECK(delegate);
|
|
|
| if (!frameShouldBeSerializedAsMHTML(frame, delegate->cacheControlPolicy()))
|
| - return WebData();
|
| + return std::move(std::vector<char>());
|
|
|
| WebLocalFrameImpl* webLocalFrameImpl = toWebLocalFrameImpl(frame);
|
| DCHECK(webLocalFrameImpl);
|
|
|
| Document* document = webLocalFrameImpl->frame()->document();
|
|
|
| - RefPtr<SharedBuffer> buffer = SharedBuffer::create();
|
| + std::vector<char> output;
|
| MHTMLArchive::generateMHTMLHeader(
|
| - boundary, document->title(), document->suggestedMIMEType(),
|
| - *buffer);
|
| - return buffer.release();
|
| + boundary, document->title(), document->suggestedMIMEType(), output);
|
| + return std::move(output);
|
| }
|
|
|
| -WebData WebFrameSerializer::generateMHTMLParts(
|
| +std::vector<char> WebFrameSerializer::generateMHTMLParts(
|
| const WebString& boundary, WebLocalFrame* webFrame, MHTMLPartsGenerationDelegate* webDelegate)
|
| {
|
| TRACE_EVENT0("page-serialization", "WebFrameSerializer::generateMHTMLParts");
|
| @@ -209,7 +208,7 @@ WebData WebFrameSerializer::generateMHTMLParts(
|
| DCHECK(webDelegate);
|
|
|
| if (!frameShouldBeSerializedAsMHTML(webFrame, webDelegate->cacheControlPolicy()))
|
| - return WebData();
|
| + return std::move(std::vector<char>());
|
|
|
| // Translate arguments from public to internal blink APIs.
|
| LocalFrame* frame = toWebLocalFrameImpl(webFrame)->frame();
|
| @@ -233,7 +232,7 @@ WebData WebFrameSerializer::generateMHTMLParts(
|
| String frameContentID = webDelegate->getContentID(webFrame);
|
|
|
| // Encode serializer's output as MHTML.
|
| - RefPtr<SharedBuffer> output = SharedBuffer::create();
|
| + std::vector<char> output;
|
| {
|
| SCOPED_BLINK_UMA_HISTOGRAM_TIMER("PageSerialization.MhtmlGeneration.EncodingTime.SingleFrame");
|
| bool isFirstResource = true;
|
| @@ -244,20 +243,20 @@ WebData WebFrameSerializer::generateMHTMLParts(
|
| String contentID = isFirstResource ? frameContentID : String();
|
|
|
| MHTMLArchive::generateMHTMLPart(
|
| - boundary, contentID, encodingPolicy, resource, *output);
|
| + boundary, contentID, encodingPolicy, resource, output);
|
|
|
| isFirstResource = false;
|
| }
|
| }
|
| - return output.release();
|
| + return std::move(output);
|
| }
|
|
|
| -WebData WebFrameSerializer::generateMHTMLFooter(const WebString& boundary)
|
| +std::vector<char> WebFrameSerializer::generateMHTMLFooter(const WebString& boundary)
|
| {
|
| TRACE_EVENT0("page-serialization", "WebFrameSerializer::generateMHTMLFooter");
|
| - RefPtr<SharedBuffer> buffer = SharedBuffer::create();
|
| - MHTMLArchive::generateMHTMLFooter(boundary, *buffer);
|
| - return buffer.release();
|
| + std::vector<char> output;
|
| + MHTMLArchive::generateMHTMLFooter(boundary, output);
|
| + return std::move(output);
|
| }
|
|
|
| bool WebFrameSerializer::serialize(
|
|
|