Index: chrome/browser/themes/theme_syncable_service.cc |
diff --git a/chrome/browser/themes/theme_syncable_service.cc b/chrome/browser/themes/theme_syncable_service.cc |
index 3389443e055fc321051edd8da9810b22d886243e..55d3f7460c18ff5293b034b9d1f9b1f9995bbf35 100644 |
--- a/chrome/browser/themes/theme_syncable_service.cc |
+++ b/chrome/browser/themes/theme_syncable_service.cc |
@@ -208,7 +208,7 @@ void ThemeSyncableService::SetCurrentThemeFromThemeSpecifics( |
string id(theme_specifics.custom_theme_id()); |
GURL update_url(theme_specifics.custom_theme_update_url()); |
DVLOG(1) << "Applying theme " << id << " with update_url " << update_url; |
- ExtensionServiceInterface* extensions_service = |
+ ExtensionService* extensions_service = |
extensions::ExtensionSystem::Get(profile_)->extension_service(); |
CHECK(extensions_service); |
const extensions::Extension* extension = |
@@ -218,8 +218,12 @@ void ThemeSyncableService::SetCurrentThemeFromThemeSpecifics( |
DVLOG(1) << "Extension " << id << " is not a theme; aborting"; |
return; |
} |
- if (!extensions_service->IsExtensionEnabled(id)) { |
- DVLOG(1) << "Theme " << id << " is not enabled; aborting"; |
+ int disabled_reasons = |
+ extensions_service->extension_prefs()->GetDisableReasons(id); |
+ if (!extensions_service->IsExtensionEnabled(id) && |
+ disabled_reasons != extensions::Extension::DISABLE_USER_ACTION) { |
+ DVLOG(1) << "Theme " << id << " is disabled with reason " |
+ << disabled_reasons << "; aborting"; |
return; |
} |
// An enabled theme extension with the given id was found, so |