Index: chrome/browser/extensions/extension_service.cc |
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc |
index 779456147d73a23a45189e6b4b28fe095f16f287..ebafe1b14db5f53baf21a5b1fbd8995951dc7166 100644 |
--- a/chrome/browser/extensions/extension_service.cc |
+++ b/chrome/browser/extensions/extension_service.cc |
@@ -1162,6 +1162,16 @@ void ExtensionService::NotifyExtensionUnloaded( |
content::Source<Profile>(profile_), |
content::Details<UnloadedExtensionInfo>(&details)); |
+#if defined(ENABLE_THEMES) |
+ // If the current theme is being unloaded, tell ThemeService to revert back |
+ // to the default theme. |
+ if (reason != extension_misc::UNLOAD_REASON_UPDATE && extension->is_theme()) { |
+ ThemeService* theme_service = ThemeServiceFactory::GetForProfile(profile_); |
+ if (extension->id() == theme_service->GetThemeID()) |
+ theme_service->UseDefaultTheme(); |
+ } |
+#endif |
+ |
for (content::RenderProcessHost::iterator i( |
content::RenderProcessHost::AllHostsIterator()); |
!i.IsAtEnd(); i.Advance()) { |