| 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;
|
| }
|
|
|