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;