| Index: content/renderer/render_frame_impl.cc
|
| diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
|
| index 4a09e2253c41ddda7c3546282474515d521e3a9e..1726e836cc8ff6f560e87a0f49ecb06c46d2668b 100644
|
| --- a/content/renderer/render_frame_impl.cc
|
| +++ b/content/renderer/render_frame_impl.cc
|
| @@ -707,6 +707,13 @@ class MHTMLPartsGenerationDelegate
|
| return WebString::fromUTF8(content_id);
|
| }
|
|
|
| + blink::WebFrameSerializerCacheControlPolicy cacheControlPolicy() override {
|
| + return static_cast<blink::WebFrameSerializerCacheControlPolicy>(
|
| + params_.mhtml_cache_control_policy);
|
| + }
|
| +
|
| + bool useBinaryEncoding() override { return params_.mhtml_binary_encoding; }
|
| +
|
| private:
|
| const FrameMsg_SerializeAsMHTML_Params& params_;
|
| std::set<std::string>* digests_of_uris_of_serialized_resources_;
|
| @@ -4948,18 +4955,17 @@ void RenderFrameImpl::OnSerializeAsMHTML(
|
| DCHECK(!mhtml_boundary.isEmpty());
|
|
|
| WebData data;
|
| - bool success = true;
|
| std::set<std::string> digests_of_uris_of_serialized_resources;
|
| MHTMLPartsGenerationDelegate delegate(
|
| params, &digests_of_uris_of_serialized_resources);
|
|
|
| + bool success = WebFrameSerializer::frameShouldBeSerializedAsMHTML(
|
| + GetWebFrame(), &delegate);
|
| +
|
| // Generate MHTML header if needed.
|
| - if (IsMainFrame()) {
|
| - blink::WebFrameSerializerCacheControlPolicy policy =
|
| - static_cast<blink::WebFrameSerializerCacheControlPolicy>(
|
| - params.mhtml_cache_control_policy);
|
| - success = WebFrameSerializer::generateMHTMLHeader(mhtml_boundary, policy,
|
| - GetWebFrame(), &data);
|
| + if (success && IsMainFrame()) {
|
| + WebData data = WebFrameSerializer::generateMHTMLHeader(
|
| + mhtml_boundary, GetWebFrame(), &delegate);
|
| if (success && file.WriteAtCurrentPos(data.data(), data.size()) < 0) {
|
| success = false;
|
| }
|
| @@ -4967,8 +4973,8 @@ void RenderFrameImpl::OnSerializeAsMHTML(
|
|
|
| // Generate MHTML parts.
|
| if (success) {
|
| - data = WebFrameSerializer::generateMHTMLParts(
|
| - mhtml_boundary, GetWebFrame(), params.mhtml_binary_encoding, &delegate);
|
| + data = WebFrameSerializer::generateMHTMLParts(mhtml_boundary, GetWebFrame(),
|
| + &delegate);
|
| // TODO(jcivelli): write the chunks in deferred tasks to give a chance to
|
| // the message loop to process other events.
|
| if (file.WriteAtCurrentPos(data.data(), data.size()) < 0) {
|
|
|