| Index: content/renderer/render_frame_impl.cc
|
| diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
|
| index e7d049c0d22cfd26f8f3ce455df2af10182aee9a..380a2cb7a1b0d88bd9ffea6582fcc33f97662d9f 100644
|
| --- a/content/renderer/render_frame_impl.cc
|
| +++ b/content/renderer/render_frame_impl.cc
|
| @@ -5490,6 +5490,7 @@ void RenderFrameImpl::OnSerializeAsMHTML(
|
| const WebString mhtml_boundary =
|
| WebString::fromUTF8(params.mhtml_boundary_marker);
|
| DCHECK(!mhtml_boundary.isEmpty());
|
| + const std::vector<std::string> extra_data(params.extra_data);
|
|
|
| // Holds WebThreadSafeData instances for some or all of header, contents and
|
| // footer.
|
| @@ -5528,6 +5529,24 @@ void RenderFrameImpl::OnSerializeAsMHTML(
|
| has_some_data |= !mhtml_contents.back().isEmpty();
|
| }
|
|
|
| + // Generate signal data (invisible) if needed, with mime-type SIGNAL_DATA
|
| + if (IsMainFrame() && extra_data.size() > 0) {
|
| + std::string data_string("\n");
|
| + data_string.append(mhtml_boundary.utf8());
|
| + // TODO(petewil): insert a mime type here instead of just a string
|
| + data_string.append("\nEXTRA_DATA\n");
|
| +
|
| + for (const std::string& data : extra_data) {
|
| + data_string.append(data);
|
| + data_string.append("\n");
|
| + }
|
| +
|
| + data_string.append(mhtml_boundary.utf8());
|
| + data_string.append("\n");
|
| + WebThreadSafeData mhtml_extra_data(data_string.c_str(), data_string.size());
|
| + mhtml_contents.emplace_back(mhtml_extra_data);
|
| + }
|
| +
|
| // Generate MHTML footer if needed.
|
| if (save_status == MhtmlSaveStatus::SUCCESS && params.is_last_frame) {
|
| TRACE_EVENT0("page-serialization",
|
|
|