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

Side by Side Diff: chrome/browser/background_application_list_model.cc

Issue 5168004: Revert 66646 - Add "open as window" menu item to NTP app menu.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years, 1 month 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
« no previous file with comments | « chrome/app/generated_resources.grd ('k') | chrome/browser/browser_browsertest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/background_application_list_model.h" 5 #include "chrome/browser/background_application_list_model.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "app/l10n_util_collator.h" 9 #include "app/l10n_util_collator.h"
10 #include "base/stl_util-inl.h" 10 #include "base/stl_util-inl.h"
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
232 } 232 }
233 233
234 void BackgroundApplicationListModel::Observe( 234 void BackgroundApplicationListModel::Observe(
235 NotificationType type, 235 NotificationType type,
236 const NotificationSource& source, 236 const NotificationSource& source,
237 const NotificationDetails& details) { 237 const NotificationDetails& details) {
238 if (type == NotificationType::EXTENSIONS_READY) { 238 if (type == NotificationType::EXTENSIONS_READY) {
239 Update(); 239 Update();
240 return; 240 return;
241 } 241 }
242 242 ExtensionsService* service = profile_->GetExtensionsService();
243 if (!service || !service->is_ready())
244 return;
243 switch (type.value) { 245 switch (type.value) {
244 case NotificationType::EXTENSION_LOADED: 246 case NotificationType::EXTENSION_LOADED:
245 OnExtensionLoaded(Details<Extension>(details).ptr()); 247 OnExtensionLoaded(Details<Extension>(details).ptr());
246 break; 248 break;
247 case NotificationType::EXTENSION_UNLOADED: 249 case NotificationType::EXTENSION_UNLOADED:
248 // Handle extension unload uniformly, falling through to next case. 250 // Handle extension unload uniformly, falling through to next case.
249 case NotificationType::EXTENSION_UNLOADED_DISABLED: 251 case NotificationType::EXTENSION_UNLOADED_DISABLED:
250 OnExtensionUnloaded(Details<Extension>(details).ptr()); 252 OnExtensionUnloaded(Details<Extension>(details).ptr());
251 break; 253 break;
252 default: 254 default:
(...skipping 24 matching lines...) Expand all
277 void BackgroundApplicationListModel::RemoveObserver(Observer* observer) { 279 void BackgroundApplicationListModel::RemoveObserver(Observer* observer) {
278 observers_.RemoveObserver(observer); 280 observers_.RemoveObserver(observer);
279 } 281 }
280 282
281 // Update queries the extensions service of the profile with which the model was 283 // Update queries the extensions service of the profile with which the model was
282 // initialized to determine the current set of background applications. If that 284 // initialized to determine the current set of background applications. If that
283 // differs from the old list, it generates OnApplicationListChanged events for 285 // differs from the old list, it generates OnApplicationListChanged events for
284 // each observer. 286 // each observer.
285 void BackgroundApplicationListModel::Update() { 287 void BackgroundApplicationListModel::Update() {
286 ExtensionsService* service = profile_->GetExtensionsService(); 288 ExtensionsService* service = profile_->GetExtensionsService();
289 DCHECK(service->is_ready());
287 290
288 // Discover current background applications, compare with previous list, which 291 // Discover current background applications, compare with previous list, which
289 // is consistently sorted, and notify observers if they differ. 292 // is consistently sorted, and notify observers if they differ.
290 ExtensionList extensions; 293 ExtensionList extensions;
291 GetServiceApplications(service, &extensions); 294 GetServiceApplications(service, &extensions);
292 ExtensionList::const_iterator old_cursor = extensions_.begin(); 295 ExtensionList::const_iterator old_cursor = extensions_.begin();
293 ExtensionList::const_iterator new_cursor = extensions.begin(); 296 ExtensionList::const_iterator new_cursor = extensions.begin();
294 while (old_cursor != extensions_.end() && 297 while (old_cursor != extensions_.end() &&
295 new_cursor != extensions.end() && 298 new_cursor != extensions.end() &&
296 (*old_cursor)->name() == (*new_cursor)->name() && 299 (*old_cursor)->name() == (*new_cursor)->name() &&
297 (*old_cursor)->id() == (*new_cursor)->id()) { 300 (*old_cursor)->id() == (*new_cursor)->id()) {
298 ++old_cursor; 301 ++old_cursor;
299 ++new_cursor; 302 ++new_cursor;
300 } 303 }
301 if (old_cursor != extensions_.end() || new_cursor != extensions.end()) { 304 if (old_cursor != extensions_.end() || new_cursor != extensions.end()) {
302 extensions_ = extensions; 305 extensions_ = extensions;
303 FOR_EACH_OBSERVER(Observer, observers_, OnApplicationListChanged()); 306 FOR_EACH_OBSERVER(Observer, observers_, OnApplicationListChanged());
304 } 307 }
305 } 308 }
OLDNEW
« no previous file with comments | « chrome/app/generated_resources.grd ('k') | chrome/browser/browser_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698