| Index: content/browser/download/mhtml_generation_manager.cc
|
| diff --git a/content/browser/download/mhtml_generation_manager.cc b/content/browser/download/mhtml_generation_manager.cc
|
| index e2ad052318e6a2cf5a9a92ea00880c98fbb1452f..0884890e8e57b06ad92b725d1cc4d810ae0f7f85 100644
|
| --- a/content/browser/download/mhtml_generation_manager.cc
|
| +++ b/content/browser/download/mhtml_generation_manager.cc
|
| @@ -204,19 +204,25 @@ MhtmlSaveStatus MHTMLGenerationManager::Job::SendToNextRenderFrame() {
|
| DCHECK(browser_file_.IsValid());
|
| DCHECK(!pending_frame_tree_node_ids_.empty());
|
|
|
| + int frame_tree_node_id = pending_frame_tree_node_ids_.front();
|
| + pending_frame_tree_node_ids_.pop();
|
| + FrameTreeNode* ftn = FrameTreeNode::GloballyFindByID(frame_tree_node_id);
|
| + if (!ftn) { // A previously existing frame went away.
|
| + if (!params_.ignore_missing_frames)
|
| + return MhtmlSaveStatus::FRAME_NO_LONGER_EXISTS;
|
| + else if (pending_frame_tree_node_ids_.empty())
|
| + return MhtmlSaveStatus::SUCCESS;
|
| + else
|
| + return SendToNextRenderFrame();
|
| + }
|
| +
|
| FrameMsg_SerializeAsMHTML_Params ipc_params;
|
| ipc_params.job_id = job_id_;
|
| ipc_params.mhtml_boundary_marker = mhtml_boundary_marker_;
|
| ipc_params.mhtml_binary_encoding = params_.use_binary_encoding;
|
| ipc_params.mhtml_cache_control_policy = params_.cache_control_policy;
|
| -
|
| - int frame_tree_node_id = pending_frame_tree_node_ids_.front();
|
| - pending_frame_tree_node_ids_.pop();
|
| ipc_params.is_last_frame = pending_frame_tree_node_ids_.empty();
|
|
|
| - FrameTreeNode* ftn = FrameTreeNode::GloballyFindByID(frame_tree_node_id);
|
| - if (!ftn) // The contents went away.
|
| - return MhtmlSaveStatus::FRAME_NO_LONGER_EXISTS;
|
| RenderFrameHost* rfh = ftn->current_frame_host();
|
|
|
| // Get notified if the target of the IPC message dies between responding.
|
|
|