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

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

Issue 11421191: Notify the ThemeService on extension install and not extension load (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years 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/ui/gtk/gtk_theme_service.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/extensions/extension_service.h" 5 #include "chrome/browser/extensions/extension_service.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <set> 8 #include <set>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 1016 matching lines...) Expand 10 before | Expand all | Expand 10 after
1027 1027
1028 void ExtensionService::NotifyExtensionLoaded(const Extension* extension) { 1028 void ExtensionService::NotifyExtensionLoaded(const Extension* extension) {
1029 // The ChromeURLRequestContexts need to be first to know that the extension 1029 // The ChromeURLRequestContexts need to be first to know that the extension
1030 // was loaded, otherwise a race can arise where a renderer that is created 1030 // was loaded, otherwise a race can arise where a renderer that is created
1031 // for the extension may try to load an extension URL with an extension id 1031 // for the extension may try to load an extension URL with an extension id
1032 // that the request context doesn't yet know about. The profile is responsible 1032 // that the request context doesn't yet know about. The profile is responsible
1033 // for ensuring its URLRequestContexts appropriately discover the loaded 1033 // for ensuring its URLRequestContexts appropriately discover the loaded
1034 // extension. 1034 // extension.
1035 system_->RegisterExtensionWithRequestContexts(extension); 1035 system_->RegisterExtensionWithRequestContexts(extension);
1036 1036
1037 if (extension->is_theme()) { 1037 if (!extension->is_theme()) {
1038 #if defined(ENABLE_THEMES)
1039 ThemeServiceFactory::SetThemeForProfile(profile_, extension);
1040 #endif
1041 } else {
1042 // Tell renderers about non-theme extensions (renderers don't need 1038 // Tell renderers about non-theme extensions (renderers don't need
1043 // to know about themes). 1039 // to know about themes).
1044 for (content::RenderProcessHost::iterator i( 1040 for (content::RenderProcessHost::iterator i(
1045 content::RenderProcessHost::AllHostsIterator()); 1041 content::RenderProcessHost::AllHostsIterator());
1046 !i.IsAtEnd(); i.Advance()) { 1042 !i.IsAtEnd(); i.Advance()) {
1047 content::RenderProcessHost* host = i.GetCurrentValue(); 1043 content::RenderProcessHost* host = i.GetCurrentValue();
1048 Profile* host_profile = 1044 Profile* host_profile =
1049 Profile::FromBrowserContext(host->GetBrowserContext()); 1045 Profile::FromBrowserContext(host->GetBrowserContext());
1050 if (host_profile->GetOriginalProfile() == 1046 if (host_profile->GetOriginalProfile() ==
1051 profile_->GetOriginalProfile()) { 1047 profile_->GetOriginalProfile()) {
(...skipping 1055 matching lines...) Expand 10 before | Expand all | Expand 10 after
2107 // so we must ensure they have valid ordinals. 2103 // so we must ensure they have valid ordinals.
2108 if (extension->RequiresSortOrdinal()) { 2104 if (extension->RequiresSortOrdinal()) {
2109 extension_prefs_->extension_sorting()->EnsureValidOrdinals( 2105 extension_prefs_->extension_sorting()->EnsureValidOrdinals(
2110 extension->id(), syncer::StringOrdinal()); 2106 extension->id(), syncer::StringOrdinal());
2111 } 2107 }
2112 2108
2113 extensions_.Insert(extension); 2109 extensions_.Insert(extension);
2114 SyncExtensionChangeIfNeeded(*extension); 2110 SyncExtensionChangeIfNeeded(*extension);
2115 NotifyExtensionLoaded(extension); 2111 NotifyExtensionLoaded(extension);
2116 DoPostLoadTasks(extension); 2112 DoPostLoadTasks(extension);
2113
2114 #if defined(ENABLE_THEMES)
2115 if (extension->is_theme()) {
2116 // Notify the ThemeService about the newly-installed theme.
2117 ThemeServiceFactory::SetThemeForProfile(profile_, extension);
2118 }
2119 #endif
asargent_no_longer_on_chrome 2012/12/01 00:54:56 Perhaps this should go inside DoPostLoadTasks ?
akalin 2012/12/01 01:07:00 Per our chat, looks like I shouldn't do this!
2117 } 2120 }
2118 2121
2119 void ExtensionService::AddComponentExtension(const Extension* extension) { 2122 void ExtensionService::AddComponentExtension(const Extension* extension) {
2120 const std::string old_version_string( 2123 const std::string old_version_string(
2121 extension_prefs_->GetVersionString(extension->id())); 2124 extension_prefs_->GetVersionString(extension->id()));
2122 const Version old_version(old_version_string); 2125 const Version old_version(old_version_string);
2123 2126
2124 if (!old_version.IsValid() || !old_version.Equals(*extension->version())) { 2127 if (!old_version.IsValid() || !old_version.Equals(*extension->version())) {
2125 VLOG(1) << "Component extension " << extension->name() << " (" 2128 VLOG(1) << "Component extension " << extension->name() << " ("
2126 << extension->id() << ") installing/upgrading from '" 2129 << extension->id() << ") installing/upgrading from '"
(...skipping 902 matching lines...) Expand 10 before | Expand all | Expand 10 after
3029 extension_id, kOnUpdateAvailableEvent); 3032 extension_id, kOnUpdateAvailableEvent);
3030 } else { 3033 } else {
3031 // Delay installation if the extension is not idle. 3034 // Delay installation if the extension is not idle.
3032 return !IsExtensionIdle(extension_id); 3035 return !IsExtensionIdle(extension_id);
3033 } 3036 }
3034 } 3037 }
3035 3038
3036 void ExtensionService::OnBlacklistUpdated() { 3039 void ExtensionService::OnBlacklistUpdated() {
3037 CheckManagementPolicy(); 3040 CheckManagementPolicy();
3038 } 3041 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/ui/gtk/gtk_theme_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698