| 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 1194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1205 | 1205 |
| 1206 void SavePackage::GetSavableResourceLinksForFrame(RenderFrameHost* target) { | 1206 void SavePackage::GetSavableResourceLinksForFrame(RenderFrameHost* target) { |
| 1207 number_of_frames_pending_response_++; | 1207 number_of_frames_pending_response_++; |
| 1208 target->Send(new FrameMsg_GetSavableResourceLinks(target->GetRoutingID())); | 1208 target->Send(new FrameMsg_GetSavableResourceLinks(target->GetRoutingID())); |
| 1209 } | 1209 } |
| 1210 | 1210 |
| 1211 void SavePackage::OnSavableResourceLinksResponse( | 1211 void SavePackage::OnSavableResourceLinksResponse( |
| 1212 RenderFrameHostImpl* sender, | 1212 RenderFrameHostImpl* sender, |
| 1213 const std::vector<GURL>& resources_list, | 1213 const std::vector<GURL>& resources_list, |
| 1214 const Referrer& referrer, | 1214 const Referrer& referrer, |
| 1215 const std::vector<GURL>& subframe_original_urls, | 1215 const std::vector<SavableSubframe>& subframes) { |
| 1216 const std::vector<int>& subframe_routing_ids) { | |
| 1217 if (wait_state_ != RESOURCES_LIST) | 1216 if (wait_state_ != RESOURCES_LIST) |
| 1218 return; | 1217 return; |
| 1219 | 1218 |
| 1220 if (subframe_original_urls.size() != subframe_routing_ids.size()) { | |
| 1221 // Only reachable if the renderer has a bug or has been compromised. | |
| 1222 NOTREACHED(); | |
| 1223 return; | |
| 1224 } | |
| 1225 | |
| 1226 // Add all sub-resources to wait list. | 1219 // Add all sub-resources to wait list. |
| 1227 int container_frame_tree_node_id = | 1220 int container_frame_tree_node_id = |
| 1228 sender->frame_tree_node()->frame_tree_node_id(); | 1221 sender->frame_tree_node()->frame_tree_node_id(); |
| 1229 for (const GURL& u : resources_list) { | 1222 for (const GURL& u : resources_list) { |
| 1230 EnqueueSavableResource(container_frame_tree_node_id, u, referrer); | 1223 EnqueueSavableResource(container_frame_tree_node_id, u, referrer); |
| 1231 } | 1224 } |
| 1232 for (size_t i = 0; i < subframe_routing_ids.size(); ++i) { | 1225 for (const SavableSubframe& subframe : subframes) { |
| 1233 FrameTreeNode* subframe_tree_node = | 1226 FrameTreeNode* subframe_tree_node = |
| 1234 sender->frame_tree_node()->frame_tree()->FindByRoutingID( | 1227 sender->frame_tree_node()->frame_tree()->FindByRoutingID( |
| 1235 sender->GetProcess()->GetID(), subframe_routing_ids[i]); | 1228 sender->GetProcess()->GetID(), subframe.routing_id); |
| 1236 | 1229 |
| 1237 if (!subframe_tree_node || | 1230 if (!subframe_tree_node || |
| 1238 subframe_tree_node->parent() != sender->frame_tree_node()) { | 1231 subframe_tree_node->parent() != sender->frame_tree_node()) { |
| 1239 // Only reachable if the renderer has a bug or has been compromised. | 1232 // Only reachable if the renderer has a bug or has been compromised. |
| 1240 NOTREACHED(); | 1233 NOTREACHED(); |
| 1241 continue; | 1234 continue; |
| 1242 } | 1235 } |
| 1243 | 1236 |
| 1244 EnqueueFrame(container_frame_tree_node_id, | 1237 EnqueueFrame(container_frame_tree_node_id, |
| 1245 subframe_tree_node->frame_tree_node_id(), | 1238 subframe_tree_node->frame_tree_node_id(), |
| 1246 subframe_original_urls[i]); | 1239 subframe.original_url); |
| 1247 } | 1240 } |
| 1248 | 1241 |
| 1249 CompleteSavableResourceLinksResponse(); | 1242 CompleteSavableResourceLinksResponse(); |
| 1250 } | 1243 } |
| 1251 | 1244 |
| 1252 SaveItem* SavePackage::FindOrCreatePendingSaveItem( | 1245 SaveItem* SavePackage::FindOrCreatePendingSaveItem( |
| 1253 int container_frame_tree_node_id, | 1246 int container_frame_tree_node_id, |
| 1254 const GURL& url, | 1247 const GURL& url, |
| 1255 const Referrer& referrer, | 1248 const Referrer& referrer, |
| 1256 SaveFileCreateInfo::SaveFileSource save_source) { | 1249 SaveFileCreateInfo::SaveFileSource save_source) { |
| (...skipping 318 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1575 | 1568 |
| 1576 void SavePackage::FinalizeDownloadEntry() { | 1569 void SavePackage::FinalizeDownloadEntry() { |
| 1577 DCHECK(download_); | 1570 DCHECK(download_); |
| 1578 DCHECK(download_manager_); | 1571 DCHECK(download_manager_); |
| 1579 | 1572 |
| 1580 download_manager_->OnSavePackageSuccessfullyFinished(download_); | 1573 download_manager_->OnSavePackageSuccessfullyFinished(download_); |
| 1581 StopObservation(); | 1574 StopObservation(); |
| 1582 } | 1575 } |
| 1583 | 1576 |
| 1584 } // namespace content | 1577 } // namespace content |
| OLD | NEW |