Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(153)

Side by Side Diff: content/renderer/render_frame_impl.cc

Issue 2731293004: Move the writing of the MHTML footer to the browser process. (Closed)
Patch Set: More minor changes Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/renderer/render_frame_impl.h" 5 #include "content/renderer/render_frame_impl.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 5526 matching lines...) Expand 10 before | Expand all | Expand 10 after
5537 if (save_status == MhtmlSaveStatus::SUCCESS) { 5537 if (save_status == MhtmlSaveStatus::SUCCESS) {
5538 TRACE_EVENT0("page-serialization", 5538 TRACE_EVENT0("page-serialization",
5539 "RenderFrameImpl::OnSerializeAsMHTML parts serialization"); 5539 "RenderFrameImpl::OnSerializeAsMHTML parts serialization");
5540 // The returned data can be empty if the frame should be skipped, but this 5540 // The returned data can be empty if the frame should be skipped, but this
5541 // is OK. 5541 // is OK.
5542 mhtml_contents.emplace_back(WebFrameSerializer::generateMHTMLParts( 5542 mhtml_contents.emplace_back(WebFrameSerializer::generateMHTMLParts(
5543 mhtml_boundary, GetWebFrame(), &delegate)); 5543 mhtml_boundary, GetWebFrame(), &delegate));
5544 has_some_data |= !mhtml_contents.back().isEmpty(); 5544 has_some_data |= !mhtml_contents.back().isEmpty();
5545 } 5545 }
5546 5546
5547 // Generate MHTML footer if needed. 5547 // Note: the MHTML footer is written by the browser process, after the last
5548 if (save_status == MhtmlSaveStatus::SUCCESS && params.is_last_frame) { 5548 // frame is serialized by a renderer process.
5549 TRACE_EVENT0("page-serialization",
5550 "RenderFrameImpl::OnSerializeAsMHTML footer");
5551 mhtml_contents.emplace_back(
5552 WebFrameSerializer::generateMHTMLFooter(mhtml_boundary));
5553 has_some_data |= !mhtml_contents.back().isEmpty();
5554 }
5555 5549
5556 // Note: we assume RenderFrameImpl::OnWriteMHTMLToDiskComplete and the rest of 5550 // Note: we assume RenderFrameImpl::OnWriteMHTMLToDiskComplete and the rest of
5557 // this function will be fast enough to not need to be accounted for in this 5551 // this function will be fast enough to not need to be accounted for in this
5558 // metric. 5552 // metric.
5559 base::TimeDelta main_thread_use_time = base::TimeTicks::Now() - start_time; 5553 base::TimeDelta main_thread_use_time = base::TimeTicks::Now() - start_time;
5560 UMA_HISTOGRAM_TIMES( 5554 UMA_HISTOGRAM_TIMES(
5561 "PageSerialization.MhtmlGeneration.RendererMainThreadTime.SingleFrame", 5555 "PageSerialization.MhtmlGeneration.RendererMainThreadTime.SingleFrame",
5562 main_thread_use_time); 5556 main_thread_use_time);
5563 5557
5564 if (save_status == MhtmlSaveStatus::SUCCESS && has_some_data) { 5558 if (save_status == MhtmlSaveStatus::SUCCESS && has_some_data) {
(...skipping 1284 matching lines...) Expand 10 before | Expand all | Expand 10 after
6849 // event target. Potentially a Pepper plugin will receive the event. 6843 // event target. Potentially a Pepper plugin will receive the event.
6850 // In order to tell whether a plugin gets the last mouse event and which it 6844 // In order to tell whether a plugin gets the last mouse event and which it
6851 // is, we set |pepper_last_mouse_event_target_| to null here. If a plugin gets 6845 // is, we set |pepper_last_mouse_event_target_| to null here. If a plugin gets
6852 // the event, it will notify us via DidReceiveMouseEvent() and set itself as 6846 // the event, it will notify us via DidReceiveMouseEvent() and set itself as
6853 // |pepper_last_mouse_event_target_|. 6847 // |pepper_last_mouse_event_target_|.
6854 pepper_last_mouse_event_target_ = nullptr; 6848 pepper_last_mouse_event_target_ = nullptr;
6855 #endif 6849 #endif
6856 } 6850 }
6857 6851
6858 } // namespace content 6852 } // namespace content
OLDNEW
« no previous file with comments | « content/common/frame_messages.h ('k') | third_party/WebKit/Source/platform/mhtml/MHTMLArchive.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698