Index: extensions/renderer/dispatcher.cc |
diff --git a/extensions/renderer/dispatcher.cc b/extensions/renderer/dispatcher.cc |
index df35567b7d9a7845cbcea06e7921b5a0613e9055..ed45642e8835ef4a03ea8db68c836b26a0f36c3e 100644 |
--- a/extensions/renderer/dispatcher.cc |
+++ b/extensions/renderer/dispatcher.cc |
@@ -759,9 +759,24 @@ void Dispatcher::OnUpdateTabSpecificPermissions( |
this, page_id, tab_id, extension_id, origin_set); |
} |
-void Dispatcher::OnUpdateUserScripts(base::SharedMemoryHandle scripts) { |
- DCHECK(base::SharedMemory::IsHandleValid(scripts)) << "Bad scripts handle"; |
- user_script_slave_->UpdateScripts(scripts); |
+void Dispatcher::OnUpdateUserScripts( |
+ base::SharedMemoryHandle scripts, |
+ const std::set<std::string>& extension_ids) { |
+ if (!base::SharedMemory::IsHandleValid(scripts)) { |
+ NOTREACHED() << "Bad scripts handle"; |
+ return; |
+ } |
+ |
+ for (std::set<std::string>::const_iterator iter = extension_ids.begin(); |
+ iter != extension_ids.end(); |
+ ++iter) { |
+ if (!Extension::IdIsValid(*iter)) { |
+ NOTREACHED() << "Invalid extension id: " << *iter; |
+ return; |
+ } |
+ } |
+ |
+ user_script_slave_->UpdateScripts(scripts, extension_ids); |
UpdateActiveExtensions(); |
} |