Extensions: send the whole manifest to the extensions process in
ExtensionMsg_Loaded_Params, rather than cherry-picking the desired values,
avoiding widespread confusion.
BUG=
TEST=browser_tests
Review URL: http://codereview.chromium.org/8976003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114785 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
index ea18626..8460e02 100644
--- a/chrome/browser/extensions/extension_service.cc
+++ b/chrome/browser/extensions/extension_service.cc
@@ -938,18 +938,22 @@
content::Source<Profile>(profile_),
content::Details<const Extension>(extension));
- // Tell renderers about the new extension.
- for (content::RenderProcessHost::iterator i(
- content::RenderProcessHost::AllHostsIterator());
- !i.IsAtEnd(); i.Advance()) {
- content::RenderProcessHost* host = i.GetCurrentValue();
- Profile* host_profile =
- Profile::FromBrowserContext(host->GetBrowserContext());
- if (host_profile->GetOriginalProfile() == profile_->GetOriginalProfile()) {
- std::vector<ExtensionMsg_Loaded_Params> loaded_extensions(
- 1, ExtensionMsg_Loaded_Params(extension));
- host->Send(
- new ExtensionMsg_Loaded(loaded_extensions));
+ // Tell renderers about the new extension, unless it's a theme (renderers
+ // don't need to know about themes).
+ if (!extension->is_theme()) {
+ for (content::RenderProcessHost::iterator i(
+ content::RenderProcessHost::AllHostsIterator());
+ !i.IsAtEnd(); i.Advance()) {
+ content::RenderProcessHost* host = i.GetCurrentValue();
+ Profile* host_profile =
+ Profile::FromBrowserContext(host->GetBrowserContext());
+ if (host_profile->GetOriginalProfile() ==
+ profile_->GetOriginalProfile()) {
+ std::vector<ExtensionMsg_Loaded_Params> loaded_extensions(
+ 1, ExtensionMsg_Loaded_Params(extension));
+ host->Send(
+ new ExtensionMsg_Loaded(loaded_extensions));
+ }
}
}
@@ -2340,7 +2344,9 @@
std::vector<ExtensionMsg_Loaded_Params> loaded_extensions;
for (ExtensionSet::const_iterator iter = extensions_.begin();
iter != extensions_.end(); ++iter) {
- loaded_extensions.push_back(ExtensionMsg_Loaded_Params(*iter));
+ // Renderers don't need to know about themes.
+ if (!(*iter)->is_theme())
+ loaded_extensions.push_back(ExtensionMsg_Loaded_Params(*iter));
}
process->Send(new ExtensionMsg_Loaded(loaded_extensions));
break;