| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/browser/download/save_package.h" | 5 #include "content/browser/download/save_package.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
| (...skipping 1181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1192 | 1192 |
| 1193 void SavePackage::GetSavableResourceLinksForFrame(RenderFrameHost* target) { | 1193 void SavePackage::GetSavableResourceLinksForFrame(RenderFrameHost* target) { |
| 1194 number_of_frames_pending_response_++; | 1194 number_of_frames_pending_response_++; |
| 1195 target->Send(new FrameMsg_GetSavableResourceLinks(target->GetRoutingID())); | 1195 target->Send(new FrameMsg_GetSavableResourceLinks(target->GetRoutingID())); |
| 1196 } | 1196 } |
| 1197 | 1197 |
| 1198 void SavePackage::OnSavableResourceLinksResponse( | 1198 void SavePackage::OnSavableResourceLinksResponse( |
| 1199 RenderFrameHostImpl* sender, | 1199 RenderFrameHostImpl* sender, |
| 1200 const std::vector<GURL>& resources_list, | 1200 const std::vector<GURL>& resources_list, |
| 1201 const std::vector<Referrer>& referrers_list, | 1201 const std::vector<Referrer>& referrers_list, |
| 1202 const std::vector<GURL>& subframe_original_urls, | 1202 const std::vector<SavableSubframe>& subframes) { |
| 1203 const std::vector<int>& subframe_routing_ids) { | |
| 1204 if (wait_state_ != RESOURCES_LIST) | 1203 if (wait_state_ != RESOURCES_LIST) |
| 1205 return; | 1204 return; |
| 1206 | 1205 |
| 1207 if ((resources_list.size() != referrers_list.size()) || | 1206 if (resources_list.size() != referrers_list.size()) { |
| 1208 (subframe_original_urls.size() != subframe_routing_ids.size())) { | |
| 1209 // Only reachable if the renderer has a bug or has been compromised. | 1207 // Only reachable if the renderer has a bug or has been compromised. |
| 1210 NOTREACHED(); | 1208 NOTREACHED(); |
| 1211 return; | 1209 return; |
| 1212 } | 1210 } |
| 1213 | 1211 |
| 1214 int container_frame_tree_node_id = | 1212 int container_frame_tree_node_id = |
| 1215 sender->frame_tree_node()->frame_tree_node_id(); | 1213 sender->frame_tree_node()->frame_tree_node_id(); |
| 1216 for (size_t i = 0; i < resources_list.size(); ++i) { | 1214 for (size_t i = 0; i < resources_list.size(); ++i) { |
| 1217 EnqueueSavableResource(container_frame_tree_node_id, resources_list[i], | 1215 EnqueueSavableResource(container_frame_tree_node_id, resources_list[i], |
| 1218 referrers_list[i]); | 1216 referrers_list[i]); |
| 1219 } | 1217 } |
| 1220 for (size_t i = 0; i < subframe_routing_ids.size(); ++i) { | 1218 for (const SavableSubframe& subframe : subframes) { |
| 1221 FrameTreeNode* subframe_tree_node = | 1219 FrameTreeNode* subframe_tree_node = |
| 1222 sender->frame_tree_node()->frame_tree()->FindByRoutingID( | 1220 sender->frame_tree_node()->frame_tree()->FindByRoutingID( |
| 1223 sender->GetProcess()->GetID(), subframe_routing_ids[i]); | 1221 sender->GetProcess()->GetID(), subframe.routing_id); |
| 1224 | 1222 |
| 1225 if (!subframe_tree_node || | 1223 if (!subframe_tree_node || |
| 1226 subframe_tree_node->parent() != sender->frame_tree_node()) { | 1224 subframe_tree_node->parent() != sender->frame_tree_node()) { |
| 1227 // Only reachable if the renderer has a bug or has been compromised. | 1225 // Only reachable if the renderer has a bug or has been compromised. |
| 1228 NOTREACHED(); | 1226 NOTREACHED(); |
| 1229 continue; | 1227 continue; |
| 1230 } | 1228 } |
| 1231 | 1229 |
| 1232 EnqueueFrame(container_frame_tree_node_id, | 1230 EnqueueFrame(container_frame_tree_node_id, |
| 1233 subframe_tree_node->frame_tree_node_id(), | 1231 subframe_tree_node->frame_tree_node_id(), |
| 1234 subframe_original_urls[i]); | 1232 subframe.original_url); |
| 1235 } | 1233 } |
| 1236 | 1234 |
| 1237 CompleteSavableResourceLinksResponse(); | 1235 CompleteSavableResourceLinksResponse(); |
| 1238 } | 1236 } |
| 1239 | 1237 |
| 1240 SaveItem* SavePackage::FindOrCreatePendingSaveItem( | 1238 SaveItem* SavePackage::FindOrCreatePendingSaveItem( |
| 1241 int container_frame_tree_node_id, | 1239 int container_frame_tree_node_id, |
| 1242 const GURL& url, | 1240 const GURL& url, |
| 1243 const Referrer& referrer, | 1241 const Referrer& referrer, |
| 1244 SaveFileCreateInfo::SaveFileSource save_source) { | 1242 SaveFileCreateInfo::SaveFileSource save_source) { |
| (...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1563 | 1561 |
| 1564 void SavePackage::FinalizeDownloadEntry() { | 1562 void SavePackage::FinalizeDownloadEntry() { |
| 1565 DCHECK(download_); | 1563 DCHECK(download_); |
| 1566 DCHECK(download_manager_); | 1564 DCHECK(download_manager_); |
| 1567 | 1565 |
| 1568 download_manager_->OnSavePackageSuccessfullyFinished(download_); | 1566 download_manager_->OnSavePackageSuccessfullyFinished(download_); |
| 1569 StopObservation(); | 1567 StopObservation(); |
| 1570 } | 1568 } |
| 1571 | 1569 |
| 1572 } // namespace content | 1570 } // namespace content |
| OLD | NEW |