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

Side by Side Diff: chrome/browser/themes/theme_service.cc

Issue 1319073005: Make ThemeService not disable uninstalled themes (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@fix_build
Patch Set: Created 5 years, 3 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
« no previous file with comments | « no previous file | chrome/browser/themes/theme_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) 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 <algorithm> 7 #include <algorithm>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/location.h" 10 #include "base/location.h"
(...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after
382 // Clear our image cache. 382 // Clear our image cache.
383 FreePlatformCaches(); 383 FreePlatformCaches();
384 384
385 BuildFromExtension(extension); 385 BuildFromExtension(extension);
386 SaveThemeID(extension->id()); 386 SaveThemeID(extension->id());
387 387
388 NotifyThemeChanged(); 388 NotifyThemeChanged();
389 content::RecordAction(UserMetricsAction("Themes_Installed")); 389 content::RecordAction(UserMetricsAction("Themes_Installed"));
390 390
391 if (previous_theme_id != kDefaultThemeID && 391 if (previous_theme_id != kDefaultThemeID &&
392 previous_theme_id != extension->id()) { 392 previous_theme_id != extension->id() &&
393 service->GetInstalledExtension(previous_theme_id)) {
394 // Do not disable the previous theme if it is already uninstalled. Sending
395 // NOTIFICATION_BROWSER_THEME_CHANGED causes the previous theme to be
396 // uninstalled when the notification causes the remaining infobar to close
397 // and does not open any new infobars. See crbug.com/468280.
398
393 // Disable the old theme. 399 // Disable the old theme.
394 service->DisableExtension(previous_theme_id, 400 service->DisableExtension(previous_theme_id,
395 extensions::Extension::DISABLE_USER_ACTION); 401 extensions::Extension::DISABLE_USER_ACTION);
396 } 402 }
397 } 403 }
398 404
399 void ThemeService::SetCustomDefaultTheme( 405 void ThemeService::SetCustomDefaultTheme(
400 scoped_refptr<CustomThemeSupplier> theme_supplier) { 406 scoped_refptr<CustomThemeSupplier> theme_supplier) {
401 ClearAllThemeData(); 407 ClearAllThemeData();
402 SwapThemeSupplier(theme_supplier); 408 SwapThemeSupplier(theme_supplier);
(...skipping 277 matching lines...) Expand 10 before | Expand all | Expand 10 after
680 void ThemeService::OnInfobarDestroyed() { 686 void ThemeService::OnInfobarDestroyed() {
681 number_of_infobars_--; 687 number_of_infobars_--;
682 688
683 if (number_of_infobars_ == 0) 689 if (number_of_infobars_ == 0)
684 RemoveUnusedThemes(false); 690 RemoveUnusedThemes(false);
685 } 691 }
686 692
687 ThemeSyncableService* ThemeService::GetThemeSyncableService() const { 693 ThemeSyncableService* ThemeService::GetThemeSyncableService() const {
688 return theme_syncable_service_.get(); 694 return theme_syncable_service_.get();
689 } 695 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/themes/theme_service_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698