Index: extensions/renderer/dispatcher.cc |
diff --git a/extensions/renderer/dispatcher.cc b/extensions/renderer/dispatcher.cc |
index eaa442804cb0e99b9fe66a601ae6514494623348..fd17f8900fb67aa79f0a3f389f9dc4144d8b5530 100644 |
--- a/extensions/renderer/dispatcher.cc |
+++ b/extensions/renderer/dispatcher.cc |
@@ -360,8 +360,7 @@ void Dispatcher::DidCreateScriptContext( |
// Enable natives in startup. |
ModuleSystem::NativesEnabledScope natives_enabled_scope(module_system); |
- RegisterNativeHandlers(module_system, context, |
- bindings_system_->GetRequestSender(), |
+ RegisterNativeHandlers(module_system, context, bindings_system_.get(), |
v8_schema_registry_.get()); |
bindings_system_->DidCreateScriptContext(context); |
@@ -471,8 +470,7 @@ void Dispatcher::DidInitializeServiceWorkerContextOnWorkerThread( |
ModuleSystem::NativesEnabledScope natives_enabled_scope(module_system); |
ExtensionBindingsSystem* worker_bindings_system = |
WorkerThreadDispatcher::GetBindingsSystem(); |
- RegisterNativeHandlers(module_system, context, |
- worker_bindings_system->GetRequestSender(), |
+ RegisterNativeHandlers(module_system, context, worker_bindings_system, |
WorkerThreadDispatcher::GetV8SchemaRegistry()); |
worker_bindings_system->DidCreateScriptContext(context); |
@@ -796,11 +794,12 @@ std::vector<std::pair<const char*, int>> Dispatcher::GetJsResources() { |
// NOTE: please use the naming convention "foo_natives" for these. |
// static |
-void Dispatcher::RegisterNativeHandlers(ModuleSystem* module_system, |
- ScriptContext* context, |
- Dispatcher* dispatcher, |
- RequestSender* request_sender, |
- V8SchemaRegistry* v8_schema_registry) { |
+void Dispatcher::RegisterNativeHandlers( |
+ ModuleSystem* module_system, |
+ ScriptContext* context, |
+ Dispatcher* dispatcher, |
+ ExtensionBindingsSystem* bindings_system, |
+ V8SchemaRegistry* v8_schema_registry) { |
module_system->RegisterNativeHandler( |
"chrome", |
std::unique_ptr<NativeHandler>(new ChromeNativeHandler(context))); |
@@ -832,8 +831,11 @@ void Dispatcher::RegisterNativeHandlers(ModuleSystem* module_system, |
"apiDefinitions", std::unique_ptr<NativeHandler>( |
new ApiDefinitionsNatives(dispatcher, context))); |
module_system->RegisterNativeHandler( |
- "sendRequest", std::unique_ptr<NativeHandler>( |
- new SendRequestNatives(request_sender, context))); |
+ "sendRequest", |
+ base::MakeUnique<SendRequestNatives>( |
+ // Note: |bindings_system| can be null in unit tests. |
+ bindings_system ? bindings_system->GetRequestSender() : nullptr, |
+ context)); |
module_system->RegisterNativeHandler( |
"setIcon", std::unique_ptr<NativeHandler>(new SetIconNatives(context))); |
module_system->RegisterNativeHandler( |
@@ -872,7 +874,7 @@ void Dispatcher::RegisterNativeHandlers(ModuleSystem* module_system, |
std::unique_ptr<NativeHandler>(new RuntimeCustomBindings(context))); |
module_system->RegisterNativeHandler( |
"display_source", |
- std::unique_ptr<NativeHandler>(new DisplaySourceCustomBindings(context))); |
+ base::MakeUnique<DisplaySourceCustomBindings>(context, bindings_system)); |
} |
bool Dispatcher::OnControlMessageReceived(const IPC::Message& message) { |
@@ -1335,11 +1337,12 @@ void Dispatcher::UpdateBindingsForContext(ScriptContext* context) { |
} |
// NOTE: please use the naming convention "foo_natives" for these. |
-void Dispatcher::RegisterNativeHandlers(ModuleSystem* module_system, |
- ScriptContext* context, |
- RequestSender* request_sender, |
- V8SchemaRegistry* v8_schema_registry) { |
- RegisterNativeHandlers(module_system, context, this, request_sender, |
+void Dispatcher::RegisterNativeHandlers( |
+ ModuleSystem* module_system, |
+ ScriptContext* context, |
+ ExtensionBindingsSystem* bindings_system, |
+ V8SchemaRegistry* v8_schema_registry) { |
+ RegisterNativeHandlers(module_system, context, this, bindings_system, |
v8_schema_registry); |
const Extension* extension = context->extension(); |
int manifest_version = extension ? extension->manifest_version() : 1; |
@@ -1356,7 +1359,8 @@ void Dispatcher::RegisterNativeHandlers(ModuleSystem* module_system, |
ExtensionsRendererClient::Get()->IsIncognitoProcess(), |
is_component_extension, manifest_version, send_request_disabled))); |
- delegate_->RegisterNativeHandlers(this, module_system, context); |
+ delegate_->RegisterNativeHandlers(this, module_system, bindings_system, |
+ context); |
} |
void Dispatcher::UpdateContentCapabilities(ScriptContext* context) { |