Index: content/browser/frame_host/navigation_entry_impl.cc |
diff --git a/content/browser/frame_host/navigation_entry_impl.cc b/content/browser/frame_host/navigation_entry_impl.cc |
index 9d0d22c51d13b7fcefe9fd4efb26983ebdf868a8..ef704580195593bb9bd9a13bfb810100a11de94c 100644 |
--- a/content/browser/frame_host/navigation_entry_impl.cc |
+++ b/content/browser/frame_host/navigation_entry_impl.cc |
@@ -74,10 +74,10 @@ void RecursivelyGenerateFrameEntries( |
std::vector<base::NullableString16> empty_file_list; |
for (const ExplodedFrameState& child_state : state.children) { |
- NavigationEntryImpl::TreeNode* child_node = |
- new NavigationEntryImpl::TreeNode(node, nullptr); |
- node->children.push_back(child_node); |
- RecursivelyGenerateFrameEntries(child_state, empty_file_list, child_node); |
+ node->children.push_back( |
+ base::MakeUnique<NavigationEntryImpl::TreeNode>(node, nullptr)); |
+ RecursivelyGenerateFrameEntries(child_state, empty_file_list, |
+ node->children.back().get()); |
} |
} |
@@ -106,7 +106,7 @@ void RecursivelyGenerateFrameState( |
state->children.resize(node->children.size()); |
for (size_t i = 0; i < node->children.size(); ++i) { |
- RecursivelyGenerateFrameState(node->children[i], &state->children[i], |
+ RecursivelyGenerateFrameState(node->children[i].get(), &state->children[i], |
referenced_files); |
} |
} |
@@ -174,7 +174,7 @@ NavigationEntryImpl::TreeNode::CloneAndReplace( |
// Recursively clone the children if needed. |
if (!is_target_frame || clone_children_of_target) { |
for (size_t i = 0; i < children.size(); i++) { |
- NavigationEntryImpl::TreeNode* child = children[i]; |
+ const auto& child = children[i]; |
// Don't check whether it's still in the tree if |current_frame_tree_node| |
// is null. |
@@ -819,7 +819,7 @@ void NavigationEntryImpl::AddOrUpdateFrameEntry( |
// Now check whether we have a TreeNode for the node itself. |
const std::string& unique_name = frame_tree_node->unique_name(); |
- for (TreeNode* child : parent_node->children) { |
+ for (const auto& child : parent_node->children) { |
if (child->frame_entry->frame_unique_name() == unique_name) { |
// If the document of the FrameNavigationEntry is changing, we must clear |
// any child FrameNavigationEntries. |
@@ -846,7 +846,8 @@ void NavigationEntryImpl::AddOrUpdateFrameEntry( |
frame_entry->SetPageState(page_state); |
frame_entry->set_redirect_chain(redirect_chain); |
parent_node->children.push_back( |
- new NavigationEntryImpl::TreeNode(parent_node, frame_entry)); |
+ base::MakeUnique<NavigationEntryImpl::TreeNode>(parent_node, |
+ frame_entry)); |
} |
FrameNavigationEntry* NavigationEntryImpl::GetFrameEntry( |
@@ -861,7 +862,7 @@ std::map<std::string, bool> NavigationEntryImpl::GetSubframeUniqueNames( |
NavigationEntryImpl::TreeNode* tree_node = FindFrameEntry(frame_tree_node); |
if (tree_node) { |
// Return the names of all immediate children. |
- for (TreeNode* child : tree_node->children) { |
+ for (const auto& child : tree_node->children) { |
// Keep track of whether we would be loading about:blank, since the |
// renderer should be allowed to just commit the initial blank frame if |
// that was the default URL. PageState doesn't matter there, because |
@@ -902,8 +903,8 @@ void NavigationEntryImpl::ClearStaleFrameEntriesForNewFrame( |
// Enqueue any children and keep looking if the current node doesn't match. |
if (!node->MatchesFrame(frame_tree_node)) { |
- for (auto* child : node->children) { |
- work_queue.push(child); |
+ for (const auto& child : node->children) { |
+ work_queue.push(child.get()); |
} |
continue; |
} |
@@ -912,8 +913,11 @@ void NavigationEntryImpl::ClearStaleFrameEntriesForNewFrame( |
// tree of FrameNavigationEntries and the FrameTree. |
if (!InSameTreePosition(frame_tree_node, node)) { |
NavigationEntryImpl::TreeNode* parent_node = node->parent; |
- auto it = std::find(parent_node->children.begin(), |
- parent_node->children.end(), node); |
+ auto it = std::find_if( |
+ parent_node->children.begin(), parent_node->children.end(), |
+ [node](const std::unique_ptr<NavigationEntryImpl::TreeNode>& item) { |
+ return item.get() == node; |
+ }); |
CHECK(it != parent_node->children.end()); |
parent_node->children.erase(it); |
} |
@@ -947,8 +951,8 @@ NavigationEntryImpl::TreeNode* NavigationEntryImpl::FindFrameEntry( |
return node; |
// Enqueue any children and keep looking. |
- for (auto* child : node->children) |
- work_queue.push(child); |
+ for (const auto& child : node->children) |
+ work_queue.push(child.get()); |
} |
return nullptr; |
} |