| OLD | NEW |
| 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/themes/theme_service.h" | 5 #include "chrome/browser/themes/theme_service.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/memory/ref_counted_memory.h" | 8 #include "base/memory/ref_counted_memory.h" |
| 9 #include "base/sequenced_task_runner.h" | 9 #include "base/sequenced_task_runner.h" |
| 10 #include "base/string_split.h" | 10 #include "base/string_split.h" |
| (...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 352 BuildFromExtension(extension); | 352 BuildFromExtension(extension); |
| 353 SaveThemeID(extension->id()); | 353 SaveThemeID(extension->id()); |
| 354 | 354 |
| 355 NotifyThemeChanged(); | 355 NotifyThemeChanged(); |
| 356 content::RecordAction(UserMetricsAction("Themes_Installed")); | 356 content::RecordAction(UserMetricsAction("Themes_Installed")); |
| 357 } | 357 } |
| 358 | 358 |
| 359 void ThemeService::RemoveUnusedThemes() { | 359 void ThemeService::RemoveUnusedThemes() { |
| 360 if (!profile_) | 360 if (!profile_) |
| 361 return; | 361 return; |
| 362 ExtensionService* service = profile_->GetExtensionService(); | 362 ExtensionService* service = |
| 363 extensions::ExtensionSystem::Get(profile_)->extension_service(); |
| 363 if (!service) | 364 if (!service) |
| 364 return; | 365 return; |
| 365 std::string current_theme = GetThemeID(); | 366 std::string current_theme = GetThemeID(); |
| 366 std::vector<std::string> remove_list; | 367 std::vector<std::string> remove_list; |
| 367 const ExtensionSet* extensions = service->extensions(); | 368 const ExtensionSet* extensions = service->extensions(); |
| 368 for (ExtensionSet::const_iterator it = extensions->begin(); | 369 for (ExtensionSet::const_iterator it = extensions->begin(); |
| 369 it != extensions->end(); ++it) { | 370 it != extensions->end(); ++it) { |
| 370 if ((*it)->is_theme() && (*it)->id() != current_theme) { | 371 if ((*it)->is_theme() && (*it)->id() != current_theme) { |
| 371 remove_list.push_back((*it)->id()); | 372 remove_list.push_back((*it)->id()); |
| 372 } | 373 } |
| (...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 606 if (path != FilePath()) { | 607 if (path != FilePath()) { |
| 607 theme_pack_ = BrowserThemePack::BuildFromDataPack(path, current_id); | 608 theme_pack_ = BrowserThemePack::BuildFromDataPack(path, current_id); |
| 608 loaded_pack = theme_pack_.get() != NULL; | 609 loaded_pack = theme_pack_.get() != NULL; |
| 609 } | 610 } |
| 610 | 611 |
| 611 if (loaded_pack) { | 612 if (loaded_pack) { |
| 612 content::RecordAction(UserMetricsAction("Themes.Loaded")); | 613 content::RecordAction(UserMetricsAction("Themes.Loaded")); |
| 613 } else { | 614 } else { |
| 614 // TODO(erg): We need to pop up a dialog informing the user that their | 615 // TODO(erg): We need to pop up a dialog informing the user that their |
| 615 // theme is being migrated. | 616 // theme is being migrated. |
| 616 ExtensionService* service = profile_->GetExtensionService(); | 617 ExtensionService* service = |
| 618 extensions::ExtensionSystem::Get(profile_)->extension_service(); |
| 617 if (service) { | 619 if (service) { |
| 618 const Extension* extension = | 620 const Extension* extension = |
| 619 service->GetExtensionById(current_id, false); | 621 service->GetExtensionById(current_id, false); |
| 620 if (extension) { | 622 if (extension) { |
| 621 DLOG(ERROR) << "Migrating theme"; | 623 DLOG(ERROR) << "Migrating theme"; |
| 622 BuildFromExtension(extension); | 624 BuildFromExtension(extension); |
| 623 content::RecordAction(UserMetricsAction("Themes.Migrated")); | 625 content::RecordAction(UserMetricsAction("Themes.Migrated")); |
| 624 } else { | 626 } else { |
| 625 DLOG(ERROR) << "Theme is mysteriously gone."; | 627 DLOG(ERROR) << "Theme is mysteriously gone."; |
| 626 ClearAllThemeData(); | 628 ClearAllThemeData(); |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 707 void ThemeService::OnInfobarDestroyed() { | 709 void ThemeService::OnInfobarDestroyed() { |
| 708 number_of_infobars_--; | 710 number_of_infobars_--; |
| 709 | 711 |
| 710 if (number_of_infobars_ == 0) | 712 if (number_of_infobars_ == 0) |
| 711 RemoveUnusedThemes(); | 713 RemoveUnusedThemes(); |
| 712 } | 714 } |
| 713 | 715 |
| 714 ThemeSyncableService* ThemeService::GetThemeSyncableService() const { | 716 ThemeSyncableService* ThemeService::GetThemeSyncableService() const { |
| 715 return theme_syncable_service_.get(); | 717 return theme_syncable_service_.get(); |
| 716 } | 718 } |
| OLD | NEW |