Chromium Code Reviews| Index: extensions/browser/user_script_loader.cc |
| diff --git a/extensions/browser/user_script_loader.cc b/extensions/browser/user_script_loader.cc |
| index 2b836332feba5479d89b2d0b271eeab152d76386..cc0ce00cf82f4c2d9a8e0122ca8f6b1d082207c6 100644 |
| --- a/extensions/browser/user_script_loader.cc |
| +++ b/extensions/browser/user_script_loader.cc |
| @@ -444,11 +444,24 @@ void UserScriptLoader::OnScriptsLoaded( |
| // We've got scripts ready to go. |
| shared_memory_.reset(shared_memory.release()); |
| - for (content::RenderProcessHost::iterator i( |
| - content::RenderProcessHost::AllHostsIterator()); |
| - !i.IsAtEnd(); |
| - i.Advance()) { |
| - SendUpdate(i.GetCurrentValue(), shared_memory_.get(), changed_hosts_); |
| + // If user scripts are comming from a <webview>, will only notify the |
|
Nico
2015/03/05 00:40:11
nit: "coming"
|
| + // RenderProcessHost of that <webview>; otherwise will notify all of the |
| + // RenderProcessHosts. |
| + if (user_scripts && !user_scripts->empty() && |
| + (*user_scripts)[0].consumer_instance_type() == |
| + UserScript::ConsumerInstanceType::WEBVIEW) { |
| + DCHECK_EQ(1u, user_scripts->size()); |
| + int render_process_id = (*user_scripts)[0].routing_info().render_process_id; |
| + content::RenderProcessHost* host = |
| + content::RenderProcessHost::FromID(render_process_id); |
| + if (host) |
| + SendUpdate(host, shared_memory_.get(), changed_hosts_); |
| + } else { |
| + for (content::RenderProcessHost::iterator i( |
| + content::RenderProcessHost::AllHostsIterator()); |
| + !i.IsAtEnd(); i.Advance()) { |
| + SendUpdate(i.GetCurrentValue(), shared_memory_.get(), changed_hosts_); |
| + } |
| } |
| changed_hosts_.clear(); |