| Index: content/browser/frame_host/frame_tree.cc | 
| diff --git a/content/browser/frame_host/frame_tree.cc b/content/browser/frame_host/frame_tree.cc | 
| index 189694a525dc51e86e5c9788c6815de8ca06b73b..b6202412dc41f9014386aa6ac65cd71ae4227286 100644 | 
| --- a/content/browser/frame_host/frame_tree.cc | 
| +++ b/content/browser/frame_host/frame_tree.cc | 
| @@ -121,6 +121,8 @@ FrameTree::FrameTree(Navigator* navigator, | 
| } | 
|  | 
| FrameTree::~FrameTree() { | 
| +  delete root_; | 
| +  root_ = nullptr; | 
| } | 
|  | 
| FrameTreeNode* FrameTree::FindByID(int frame_tree_node_id) { | 
| @@ -151,7 +153,7 @@ FrameTreeNode* FrameTree::FindByRoutingID(int process_id, int routing_id) { | 
|  | 
| FrameTreeNode* FrameTree::FindByName(const std::string& name) { | 
| if (name.empty()) | 
| -    return root_.get(); | 
| +    return root_; | 
|  | 
| FrameTreeNode* node = nullptr; | 
| ForEach(base::Bind(&FrameTreeNodeForName, name, &node)); | 
| @@ -167,7 +169,7 @@ void FrameTree::ForEach( | 
| const base::Callback<bool(FrameTreeNode*)>& on_node, | 
| FrameTreeNode* skip_this_subtree) const { | 
| std::queue<FrameTreeNode*> queue; | 
| -  queue.push(root_.get()); | 
| +  queue.push(root_); | 
|  | 
| while (!queue.empty()) { | 
| FrameTreeNode* node = queue.front(); | 
| @@ -362,7 +364,7 @@ void FrameTree::FrameRemoved(FrameTreeNode* frame) { | 
|  | 
| // No notification for the root frame. | 
| if (!frame->parent()) { | 
| -    CHECK_EQ(frame, root_.get()); | 
| +    CHECK_EQ(frame, root_); | 
| return; | 
| } | 
|  | 
|  |