Index: chrome/browser/extensions/extension_toolbar_model.cc |
=================================================================== |
--- chrome/browser/extensions/extension_toolbar_model.cc (revision 34134) |
+++ chrome/browser/extensions/extension_toolbar_model.cc (working copy) |
@@ -33,6 +33,35 @@ |
observers_.RemoveObserver(observer); |
} |
+void ExtensionToolbarModel::MoveBrowserAction(Extension* extension, |
+ int index) { |
+ ExtensionList::iterator pos = std::find(begin(), end(), extension); |
+ if (pos == end()) { |
+ NOTREACHED(); |
+ return; |
+ } |
+ toolitems_.erase(pos); |
+ |
+ int i = 0; |
+ bool inserted = false; |
+ for (ExtensionList::iterator iter = begin(); iter != end(); ++iter, ++i) { |
+ if (i == index) { |
+ toolitems_.insert(pos, extension); |
+ inserted = true; |
+ break; |
+ } |
+ } |
+ |
+ if (!inserted) { |
+ DCHECK_EQ(index, static_cast<int>(toolitems_.size())); |
+ index = toolitems_.size(); |
+ |
+ toolitems_.push_back(extension); |
+ } |
+ |
+ FOR_EACH_OBSERVER(Observer, observers_, BrowserActionMoved(extension, index)); |
+} |
+ |
void ExtensionToolbarModel::Observe(NotificationType type, |
const NotificationSource& source, |
const NotificationDetails& details) { |