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

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

Issue 5968009: Change extension unload notification to indicate updates.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years 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) 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 #include <set> 8 #include <set>
9 9
10 #include "app/l10n_util_collator.h" 10 #include "app/l10n_util_collator.h"
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 BackgroundApplicationListModel::BackgroundApplicationListModel(Profile* profile) 146 BackgroundApplicationListModel::BackgroundApplicationListModel(Profile* profile)
147 : profile_(profile) { 147 : profile_(profile) {
148 DCHECK(profile_); 148 DCHECK(profile_);
149 registrar_.Add(this, 149 registrar_.Add(this,
150 NotificationType::EXTENSION_LOADED, 150 NotificationType::EXTENSION_LOADED,
151 Source<Profile>(profile)); 151 Source<Profile>(profile));
152 registrar_.Add(this, 152 registrar_.Add(this,
153 NotificationType::EXTENSION_UNLOADED, 153 NotificationType::EXTENSION_UNLOADED,
154 Source<Profile>(profile)); 154 Source<Profile>(profile));
155 registrar_.Add(this, 155 registrar_.Add(this,
156 NotificationType::EXTENSION_UNLOADED_DISABLED,
157 Source<Profile>(profile));
158 registrar_.Add(this,
159 NotificationType::EXTENSIONS_READY, 156 NotificationType::EXTENSIONS_READY,
160 Source<Profile>(profile)); 157 Source<Profile>(profile));
161 ExtensionService* service = profile->GetExtensionService(); 158 ExtensionService* service = profile->GetExtensionService();
162 if (service && service->is_ready()) 159 if (service && service->is_ready())
163 Update(); 160 Update();
164 } 161 }
165 162
166 void BackgroundApplicationListModel::AddObserver(Observer* observer) { 163 void BackgroundApplicationListModel::AddObserver(Observer* observer) {
167 observers_.AddObserver(observer); 164 observers_.AddObserver(observer);
168 } 165 }
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 } 251 }
255 ExtensionService* service = profile_->GetExtensionService(); 252 ExtensionService* service = profile_->GetExtensionService();
256 if (!service || !service->is_ready()) 253 if (!service || !service->is_ready())
257 return; 254 return;
258 255
259 switch (type.value) { 256 switch (type.value) {
260 case NotificationType::EXTENSION_LOADED: 257 case NotificationType::EXTENSION_LOADED:
261 OnExtensionLoaded(Details<Extension>(details).ptr()); 258 OnExtensionLoaded(Details<Extension>(details).ptr());
262 break; 259 break;
263 case NotificationType::EXTENSION_UNLOADED: 260 case NotificationType::EXTENSION_UNLOADED:
264 // Handle extension unload uniformly, falling through to next case. 261 OnExtensionUnloaded(Details<UnloadedExtensionInfo>(details)->extension);
265 case NotificationType::EXTENSION_UNLOADED_DISABLED:
266 OnExtensionUnloaded(Details<Extension>(details).ptr());
267 break; 262 break;
268 default: 263 default:
269 NOTREACHED() << "Received unexpected notification"; 264 NOTREACHED() << "Received unexpected notification";
270 } 265 }
271 } 266 }
272 267
273 void BackgroundApplicationListModel::OnApplicationDataChanged( 268 void BackgroundApplicationListModel::OnApplicationDataChanged(
274 const Extension* extension) { 269 const Extension* extension) {
275 FOR_EACH_OBSERVER(Observer, observers_, OnApplicationDataChanged(extension)); 270 FOR_EACH_OBSERVER(Observer, observers_, OnApplicationDataChanged(extension));
276 } 271 }
277 272
278 void BackgroundApplicationListModel::OnExtensionLoaded(Extension* extension) { 273 void BackgroundApplicationListModel::OnExtensionLoaded(Extension* extension) {
279 // We only care about extensions that are background applications 274 // We only care about extensions that are background applications
280 if (!IsBackgroundApp(*extension)) 275 if (!IsBackgroundApp(*extension))
281 return; 276 return;
282 AssociateApplicationData(extension); 277 AssociateApplicationData(extension);
283 Update(); 278 Update();
284 } 279 }
285 280
286 void BackgroundApplicationListModel::OnExtensionUnloaded(Extension* extension) { 281 void BackgroundApplicationListModel::OnExtensionUnloaded(
282 const Extension* extension) {
287 if (!IsBackgroundApp(*extension)) 283 if (!IsBackgroundApp(*extension))
288 return; 284 return;
289 Update(); 285 Update();
290 DissociateApplicationData(extension); 286 DissociateApplicationData(extension);
291 } 287 }
292 288
293 void BackgroundApplicationListModel::RemoveObserver(Observer* observer) { 289 void BackgroundApplicationListModel::RemoveObserver(Observer* observer) {
294 observers_.RemoveObserver(observer); 290 observers_.RemoveObserver(observer);
295 } 291 }
296 292
(...skipping 15 matching lines...) Expand all
312 (*old_cursor)->name() == (*new_cursor)->name() && 308 (*old_cursor)->name() == (*new_cursor)->name() &&
313 (*old_cursor)->id() == (*new_cursor)->id()) { 309 (*old_cursor)->id() == (*new_cursor)->id()) {
314 ++old_cursor; 310 ++old_cursor;
315 ++new_cursor; 311 ++new_cursor;
316 } 312 }
317 if (old_cursor != extensions_.end() || new_cursor != extensions.end()) { 313 if (old_cursor != extensions_.end() || new_cursor != extensions.end()) {
318 extensions_ = extensions; 314 extensions_ = extensions;
319 FOR_EACH_OBSERVER(Observer, observers_, OnApplicationListChanged()); 315 FOR_EACH_OBSERVER(Observer, observers_, OnApplicationListChanged());
320 } 316 }
321 } 317 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698