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

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

Issue 115974: The extensions service wasn't getting inited despite being used by themes (th... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 11 years, 6 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
« no previous file with comments | « no previous file | chrome/browser/extensions/extensions_service_unittest.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) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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/extensions_service.h" 5 #include "chrome/browser/extensions/extensions_service.h"
6 6
7 #include "app/l10n_util.h" 7 #include "app/l10n_util.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/gfx/png_encoder.h" 10 #include "base/gfx/png_encoder.h"
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 delete extension; 319 delete extension;
320 } 320 }
321 321
322 void ExtensionsService::LoadExtension(const FilePath& extension_path) { 322 void ExtensionsService::LoadExtension(const FilePath& extension_path) {
323 backend_loop_->PostTask(FROM_HERE, NewRunnableMethod(backend_.get(), 323 backend_loop_->PostTask(FROM_HERE, NewRunnableMethod(backend_.get(),
324 &ExtensionsServiceBackend::LoadSingleExtension, 324 &ExtensionsServiceBackend::LoadSingleExtension,
325 extension_path, scoped_refptr<ExtensionsService>(this))); 325 extension_path, scoped_refptr<ExtensionsService>(this)));
326 } 326 }
327 327
328 void ExtensionsService::OnExtensionsLoaded(ExtensionList* new_extensions) { 328 void ExtensionsService::OnExtensionsLoaded(ExtensionList* new_extensions) {
329 extensions_.insert(extensions_.end(), new_extensions->begin(), 329 // If extensions aren't enabled, we still want to add themes. However, themes
330 new_extensions->end()); 330 // should not trigger EXTENSIONS_LOADED.
331 NotificationService::current()->Notify( 331 bool has_extension = false;
332 NotificationType::EXTENSIONS_LOADED, 332 for (ExtensionList::iterator iter = new_extensions->begin();
333 NotificationService::AllSources(), 333 iter != new_extensions->end(); ++iter) {
334 Details<ExtensionList>(new_extensions)); 334 if (extensions_enabled() || (*iter)->IsTheme()) {
335 extensions_.push_back(*iter);
336 if (!(*iter)->IsTheme())
337 has_extension = true;
338 }
339 }
340
341 if (has_extension) {
Aaron Boodman 2009/06/01 23:44:36 Can you add: TODO(aa): This can be re-enabled whe
342 NotificationService::current()->Notify(
343 NotificationType::EXTENSIONS_LOADED,
344 NotificationService::AllSources(),
345 Details<ExtensionList>(new_extensions));
346 }
335 delete new_extensions; 347 delete new_extensions;
336 } 348 }
337 349
338 void ExtensionsService::OnExtensionInstalled(Extension* extension, 350 void ExtensionsService::OnExtensionInstalled(Extension* extension,
339 bool update) { 351 bool update) {
340 NotificationService::current()->Notify(
341 NotificationType::EXTENSION_INSTALLED,
342 NotificationService::AllSources(),
343 Details<Extension>(extension));
344
345 // If the extension is a theme, tell the profile (and therefore ThemeProvider) 352 // If the extension is a theme, tell the profile (and therefore ThemeProvider)
346 // to apply it. 353 // to apply it.
347 if (extension->IsTheme()) { 354 if (extension->IsTheme()) {
348 NotificationService::current()->Notify( 355 NotificationService::current()->Notify(
349 NotificationType::THEME_INSTALLED, 356 NotificationType::THEME_INSTALLED,
350 NotificationService::AllSources(), 357 NotificationService::AllSources(),
351 Details<Extension>(extension)); 358 Details<Extension>(extension));
359 } else {
360 NotificationService::current()->Notify(
361 NotificationType::EXTENSION_INSTALLED,
362 NotificationService::AllSources(),
363 Details<Extension>(extension));
352 } 364 }
353 } 365 }
354 366
355 void ExtensionsService::OnExtensionVersionReinstalled(const std::string& id) { 367 void ExtensionsService::OnExtensionVersionReinstalled(const std::string& id) {
356 Extension* extension = GetExtensionByID(id); 368 Extension* extension = GetExtensionByID(id);
357 if (extension && extension->IsTheme()) { 369 if (extension && extension->IsTheme()) {
358 NotificationService::current()->Notify( 370 NotificationService::current()->Notify(
359 NotificationType::THEME_INSTALLED, 371 NotificationType::THEME_INSTALLED,
360 NotificationService::AllSources(), 372 NotificationService::AllSources(),
361 Details<Extension>(extension)); 373 Details<Extension>(extension));
(...skipping 633 matching lines...) Expand 10 before | Expand all | Expand 10 after
995 1007
996 bool ExtensionsServiceBackend::ShouldInstall(const std::string& id, 1008 bool ExtensionsServiceBackend::ShouldInstall(const std::string& id,
997 const std::string& version) { 1009 const std::string& version) {
998 FilePath dir(install_directory_.AppendASCII(id.c_str())); 1010 FilePath dir(install_directory_.AppendASCII(id.c_str()));
999 std::string current_version; 1011 std::string current_version;
1000 if (ReadCurrentVersion(dir, &current_version)) { 1012 if (ReadCurrentVersion(dir, &current_version)) {
1001 return CheckCurrentVersion(version, current_version, dir); 1013 return CheckCurrentVersion(version, current_version, dir);
1002 } 1014 }
1003 return true; 1015 return true;
1004 } 1016 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/extensions/extensions_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698