Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(29)

Side by Side Diff: chrome/browser/extensions/extension_toolbar_model.cc

Issue 10378117: With enable-action-box add extensions to BrowserActionContainer only if they have preference kBrows… (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: Created 8 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/extensions/extension_toolbar_model.h" 5 #include "chrome/browser/extensions/extension_toolbar_model.h"
6 6
7 #include "chrome/browser/extensions/extension_prefs.h" 7 #include "chrome/browser/extensions/extension_prefs.h"
8 #include "chrome/browser/extensions/extension_service.h" 8 #include "chrome/browser/extensions/extension_service.h"
9 #include "chrome/browser/prefs/pref_service.h" 9 #include "chrome/browser/prefs/pref_service.h"
10 #include "chrome/browser/profiles/profile.h" 10 #include "chrome/browser/profiles/profile.h"
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 extension = content::Details<const Extension>(details).ptr(); 106 extension = content::Details<const Extension>(details).ptr();
107 } 107 }
108 if (type == chrome::NOTIFICATION_EXTENSION_LOADED) { 108 if (type == chrome::NOTIFICATION_EXTENSION_LOADED) {
109 // We don't want to add the same extension twice. It may have already been 109 // We don't want to add the same extension twice. It may have already been
110 // added by EXTENSION_BROWSER_ACTION_VISIBILITY_CHANGED below, if the user 110 // added by EXTENSION_BROWSER_ACTION_VISIBILITY_CHANGED below, if the user
111 // hides the browser action and then disables and enables the extension. 111 // hides the browser action and then disables and enables the extension.
112 for (size_t i = 0; i < toolitems_.size(); i++) { 112 for (size_t i = 0; i < toolitems_.size(); i++) {
113 if (toolitems_[i].get() == extension) 113 if (toolitems_[i].get() == extension)
114 return; // Already exists. 114 return; // Already exists.
115 } 115 }
116 if (service_->GetBrowserActionVisibility(extension)) 116 if (service_->extension_prefs()->GetBrowserActionVisibility(extension))
117 AddExtension(extension); 117 AddExtension(extension);
118 } else if (type == chrome::NOTIFICATION_EXTENSION_UNLOADED) { 118 } else if (type == chrome::NOTIFICATION_EXTENSION_UNLOADED) {
119 RemoveExtension(extension); 119 RemoveExtension(extension);
120 } else if ( 120 } else if (
121 type == 121 type ==
122 chrome::NOTIFICATION_EXTENSION_BROWSER_ACTION_VISIBILITY_CHANGED) { 122 chrome::NOTIFICATION_EXTENSION_BROWSER_ACTION_VISIBILITY_CHANGED) {
123 if (service_->GetBrowserActionVisibility(extension)) 123 if (service_->extension_prefs()->GetBrowserActionVisibility(extension))
124 AddExtension(extension); 124 AddExtension(extension);
125 else 125 else
126 RemoveExtension(extension); 126 RemoveExtension(extension);
127 } else { 127 } else {
128 NOTREACHED() << "Received unexpected notification"; 128 NOTREACHED() << "Received unexpected notification";
129 } 129 }
130 } 130 }
131 131
132 void ExtensionToolbarModel::AddExtension(const Extension* extension) { 132 void ExtensionToolbarModel::AddExtension(const Extension* extension) {
133 // We only care about extensions with browser actions. 133 // We only care about extensions with browser actions.
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 sorted.resize(pref_order.size(), NULL); 185 sorted.resize(pref_order.size(), NULL);
186 // The items that don't have a pref for their position. 186 // The items that don't have a pref for their position.
187 ExtensionList unsorted; 187 ExtensionList unsorted;
188 188
189 // Create the lists. 189 // Create the lists.
190 for (ExtensionSet::const_iterator it = service_->extensions()->begin(); 190 for (ExtensionSet::const_iterator it = service_->extensions()->begin();
191 it != service_->extensions()->end(); ++it) { 191 it != service_->extensions()->end(); ++it) {
192 const Extension* extension = *it; 192 const Extension* extension = *it;
193 if (!extension->browser_action()) 193 if (!extension->browser_action())
194 continue; 194 continue;
195 if (!service_->GetBrowserActionVisibility(extension)) 195 if (!service_->extension_prefs()->GetBrowserActionVisibility(extension))
196 continue; 196 continue;
197 197
198 std::vector<std::string>::iterator pos = 198 std::vector<std::string>::iterator pos =
199 std::find(pref_order.begin(), pref_order.end(), extension->id()); 199 std::find(pref_order.begin(), pref_order.end(), extension->id());
200 if (pos != pref_order.end()) { 200 if (pos != pref_order.end()) {
201 int index = std::distance(pref_order.begin(), pos); 201 int index = std::distance(pref_order.begin(), pos);
202 sorted[index] = extension; 202 sorted[index] = extension;
203 } else { 203 } else {
204 unsorted.push_back(make_scoped_refptr(extension)); 204 unsorted.push_back(make_scoped_refptr(extension));
205 } 205 }
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 int incognito_index = 0, i = 0; 258 int incognito_index = 0, i = 0;
259 for (ExtensionList::iterator iter = begin(); iter != end(); 259 for (ExtensionList::iterator iter = begin(); iter != end();
260 ++iter, ++i) { 260 ++iter, ++i) {
261 if (original_index == i) 261 if (original_index == i)
262 break; 262 break;
263 if (service_->IsIncognitoEnabled((*iter)->id())) 263 if (service_->IsIncognitoEnabled((*iter)->id()))
264 ++incognito_index; 264 ++incognito_index;
265 } 265 }
266 return incognito_index; 266 return incognito_index;
267 } 267 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_service.cc ('k') | chrome/browser/ui/cocoa/extensions/extension_action_context_menu.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698