Index: chrome/browser/ui/views/toolbar/browser_actions_container.cc |
diff --git a/chrome/browser/ui/views/toolbar/browser_actions_container.cc b/chrome/browser/ui/views/toolbar/browser_actions_container.cc |
index 4723994e68385f8bd24f8367652461c2b32c770f..0521eac78b3b36ff7bf27ee92bda939ddc8404c7 100644 |
--- a/chrome/browser/ui/views/toolbar/browser_actions_container.cc |
+++ b/chrome/browser/ui/views/toolbar/browser_actions_container.cc |
@@ -7,7 +7,7 @@ |
#include <utility> |
#include "base/compiler_specific.h" |
-#include "base/stl_util.h" |
+#include "base/memory/ptr_util.h" |
#include "chrome/browser/extensions/extension_message_bubble_controller.h" |
#include "chrome/browser/extensions/tab_helper.h" |
#include "chrome/browser/profiles/profile.h" |
@@ -121,9 +121,9 @@ std::string BrowserActionsContainer::GetIdAt(size_t index) const { |
ToolbarActionView* BrowserActionsContainer::GetViewForId( |
const std::string& id) { |
- for (ToolbarActionView* view : toolbar_action_views_) { |
+ for (const auto& view : toolbar_action_views_) { |
if (view->view_controller()->GetId() == id) |
- return view; |
+ return view.get(); |
} |
return nullptr; |
} |
@@ -134,7 +134,7 @@ void BrowserActionsContainer::RefreshToolbarActionViews() { |
size_t BrowserActionsContainer::VisibleBrowserActions() const { |
size_t visible_actions = 0; |
- for (const ToolbarActionView* view : toolbar_action_views_) { |
+ for (const auto& view : toolbar_action_views_) { |
if (view->visible()) |
++visible_actions; |
} |
@@ -165,7 +165,8 @@ void BrowserActionsContainer::AddViewForAction( |
ToolbarActionViewController* view_controller, |
size_t index) { |
ToolbarActionView* view = new ToolbarActionView(view_controller, this); |
- toolbar_action_views_.insert(toolbar_action_views_.begin() + index, view); |
+ toolbar_action_views_.insert(toolbar_action_views_.begin() + index, |
+ base::WrapUnique(view)); |
AddChildViewAt(view, index); |
} |
@@ -174,7 +175,6 @@ void BrowserActionsContainer::RemoveViewForAction( |
for (ToolbarActionViews::iterator iter = toolbar_action_views_.begin(); |
iter != toolbar_action_views_.end(); ++iter) { |
if ((*iter)->view_controller() == action) { |
- delete *iter; |
toolbar_action_views_.erase(iter); |
break; |
} |
@@ -182,7 +182,7 @@ void BrowserActionsContainer::RemoveViewForAction( |
} |
void BrowserActionsContainer::RemoveAllViews() { |
- base::STLDeleteElements(&toolbar_action_views_); |
+ toolbar_action_views_.clear(); |
} |
void BrowserActionsContainer::Redraw(bool order_changed) { |
@@ -210,7 +210,7 @@ void BrowserActionsContainer::Redraw(bool order_changed) { |
++j; |
std::swap(toolbar_action_views_[i], toolbar_action_views_[j]); |
// Also move the view in the child views vector. |
- ReorderChildView(toolbar_action_views_[i], i); |
+ ReorderChildView(toolbar_action_views_[i].get(), i); |
} |
} |
} |
@@ -360,7 +360,7 @@ void BrowserActionsContainer::Layout() { |
// variables are in place, the layout works equally well for the main and |
// overflow container. |
for (size_t i = 0u; i < toolbar_action_views_.size(); ++i) { |
- ToolbarActionView* view = toolbar_action_views_[i]; |
+ ToolbarActionView* view = toolbar_action_views_[i].get(); |
if (i < start_index || i >= end_index) { |
view->SetVisible(false); |
} else { |
@@ -514,8 +514,11 @@ void BrowserActionsContainer::WriteDragDataForView(View* sender, |
toolbar_actions_bar_->OnDragStarted(); |
DCHECK(data); |
- auto it = std::find(toolbar_action_views_.cbegin(), |
- toolbar_action_views_.cend(), sender); |
+ auto it = |
+ std::find_if(toolbar_action_views_.cbegin(), toolbar_action_views_.cend(), |
+ [sender](const std::unique_ptr<ToolbarActionView>& ptr) { |
+ return ptr.get() == sender; |
+ }); |
DCHECK(it != toolbar_action_views_.cend()); |
ToolbarActionViewController* view_controller = (*it)->view_controller(); |
gfx::Size size(ToolbarActionsBar::IconWidth(false), |