summaryrefslogtreecommitdiffstats
path: root/extensions/renderer/dispatcher.cc
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/renderer/dispatcher.cc')
-rw-r--r--extensions/renderer/dispatcher.cc21
1 files changed, 18 insertions, 3 deletions
diff --git a/extensions/renderer/dispatcher.cc b/extensions/renderer/dispatcher.cc
index 04de939..0d11726 100644
--- a/extensions/renderer/dispatcher.cc
+++ b/extensions/renderer/dispatcher.cc
@@ -764,9 +764,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();
}