OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/renderer/extensions/dispatcher.h" | 5 #include "chrome/renderer/extensions/dispatcher.h" |
6 | 6 |
7 #include "base/callback.h" | 7 #include "base/callback.h" |
8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
9 #include "base/debug/alias.h" | 9 #include "base/debug/alias.h" |
10 #include "base/json/json_reader.h" | 10 #include "base/json/json_reader.h" |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
64 #include "extensions/common/view_type.h" | 64 #include "extensions/common/view_type.h" |
65 #include "extensions/renderer/api_definitions_natives.h" | 65 #include "extensions/renderer/api_definitions_natives.h" |
66 #include "extensions/renderer/binding_generating_native_handler.h" | 66 #include "extensions/renderer/binding_generating_native_handler.h" |
67 #include "extensions/renderer/blob_native_handler.h" | 67 #include "extensions/renderer/blob_native_handler.h" |
68 #include "extensions/renderer/content_watcher.h" | 68 #include "extensions/renderer/content_watcher.h" |
69 #include "extensions/renderer/context_menus_custom_bindings.h" | 69 #include "extensions/renderer/context_menus_custom_bindings.h" |
70 #include "extensions/renderer/css_native_handler.h" | 70 #include "extensions/renderer/css_native_handler.h" |
71 #include "extensions/renderer/document_custom_bindings.h" | 71 #include "extensions/renderer/document_custom_bindings.h" |
72 #include "extensions/renderer/event_bindings.h" | 72 #include "extensions/renderer/event_bindings.h" |
73 #include "extensions/renderer/extension_groups.h" | 73 #include "extensions/renderer/extension_groups.h" |
| 74 #include "extensions/renderer/extensions_renderer_client.h" |
74 #include "extensions/renderer/file_system_natives.h" | 75 #include "extensions/renderer/file_system_natives.h" |
75 #include "extensions/renderer/i18n_custom_bindings.h" | 76 #include "extensions/renderer/i18n_custom_bindings.h" |
76 #include "extensions/renderer/id_generator_custom_bindings.h" | 77 #include "extensions/renderer/id_generator_custom_bindings.h" |
77 #include "extensions/renderer/logging_native_handler.h" | 78 #include "extensions/renderer/logging_native_handler.h" |
78 #include "extensions/renderer/module_system.h" | 79 #include "extensions/renderer/module_system.h" |
79 #include "extensions/renderer/object_backed_native_handler.h" | 80 #include "extensions/renderer/object_backed_native_handler.h" |
80 #include "extensions/renderer/render_view_observer_natives.h" | 81 #include "extensions/renderer/render_view_observer_natives.h" |
81 #include "extensions/renderer/request_sender.h" | 82 #include "extensions/renderer/request_sender.h" |
82 #include "extensions/renderer/safe_builtins.h" | 83 #include "extensions/renderer/safe_builtins.h" |
83 #include "extensions/renderer/script_context.h" | 84 #include "extensions/renderer/script_context.h" |
(...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
466 if (is_extension_process_) { | 467 if (is_extension_process_) { |
467 RenderThread::Get()->SetIdleNotificationDelayInMs( | 468 RenderThread::Get()->SetIdleNotificationDelayInMs( |
468 kInitialExtensionIdleHandlerDelayMs); | 469 kInitialExtensionIdleHandlerDelayMs); |
469 } | 470 } |
470 | 471 |
471 RenderThread::Get()->RegisterExtension(SafeBuiltins::CreateV8Extension()); | 472 RenderThread::Get()->RegisterExtension(SafeBuiltins::CreateV8Extension()); |
472 | 473 |
473 user_script_slave_.reset(new UserScriptSlave(&extensions_)); | 474 user_script_slave_.reset(new UserScriptSlave(&extensions_)); |
474 request_sender_.reset(new RequestSender(this)); | 475 request_sender_.reset(new RequestSender(this)); |
475 PopulateSourceMap(); | 476 PopulateSourceMap(); |
| 477 // Register JS sources from the extensions module embedder. |
| 478 ExtensionsRendererClient::Get()->PopulateSourceMap(&source_map_); |
476 PopulateLazyBindingsMap(); | 479 PopulateLazyBindingsMap(); |
477 } | 480 } |
478 | 481 |
479 Dispatcher::~Dispatcher() { | 482 Dispatcher::~Dispatcher() { |
480 } | 483 } |
481 | 484 |
482 bool Dispatcher::OnControlMessageReceived(const IPC::Message& message) { | 485 bool Dispatcher::OnControlMessageReceived(const IPC::Message& message) { |
483 bool handled = true; | 486 bool handled = true; |
484 IPC_BEGIN_MESSAGE_MAP(Dispatcher, message) | 487 IPC_BEGIN_MESSAGE_MAP(Dispatcher, message) |
485 IPC_MESSAGE_HANDLER(ExtensionMsg_SetChannel, OnSetChannel) | 488 IPC_MESSAGE_HANDLER(ExtensionMsg_SetChannel, OnSetChannel) |
(...skipping 666 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1152 scoped_ptr<ModuleSystem> module_system(new ModuleSystem(context, | 1155 scoped_ptr<ModuleSystem> module_system(new ModuleSystem(context, |
1153 &source_map_)); | 1156 &source_map_)); |
1154 context->set_module_system(module_system.Pass()); | 1157 context->set_module_system(module_system.Pass()); |
1155 } | 1158 } |
1156 ModuleSystem* module_system = context->module_system(); | 1159 ModuleSystem* module_system = context->module_system(); |
1157 | 1160 |
1158 // Enable natives in startup. | 1161 // Enable natives in startup. |
1159 ModuleSystem::NativesEnabledScope natives_enabled_scope( | 1162 ModuleSystem::NativesEnabledScope natives_enabled_scope( |
1160 module_system); | 1163 module_system); |
1161 | 1164 |
| 1165 // Register the core extensions native handlers. |
1162 RegisterNativeHandlers(module_system, context); | 1166 RegisterNativeHandlers(module_system, context); |
1163 | 1167 |
| 1168 // Register native handlers from the extensions embedder. |
| 1169 ExtensionsRendererClient::Get()->RegisterNativeHandlers(module_system, |
| 1170 context); |
| 1171 |
1164 module_system->RegisterNativeHandler("chrome", | 1172 module_system->RegisterNativeHandler("chrome", |
1165 scoped_ptr<NativeHandler>(new ChromeNativeHandler(context))); | 1173 scoped_ptr<NativeHandler>(new ChromeNativeHandler(context))); |
1166 module_system->RegisterNativeHandler("print", | 1174 module_system->RegisterNativeHandler("print", |
1167 scoped_ptr<NativeHandler>(new PrintNativeHandler(context))); | 1175 scoped_ptr<NativeHandler>(new PrintNativeHandler(context))); |
1168 module_system->RegisterNativeHandler( | 1176 module_system->RegisterNativeHandler( |
1169 "lazy_background_page", | 1177 "lazy_background_page", |
1170 scoped_ptr<NativeHandler>(new LazyBackgroundPageNativeHandler(context))); | 1178 scoped_ptr<NativeHandler>(new LazyBackgroundPageNativeHandler(context))); |
1171 module_system->RegisterNativeHandler("logging", | 1179 module_system->RegisterNativeHandler("logging", |
1172 scoped_ptr<NativeHandler>(new LoggingNativeHandler(context))); | 1180 scoped_ptr<NativeHandler>(new LoggingNativeHandler(context))); |
1173 module_system->RegisterNativeHandler("schema_registry", | 1181 module_system->RegisterNativeHandler("schema_registry", |
(...skipping 529 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1703 } | 1711 } |
1704 | 1712 |
1705 void Dispatcher::ClearPortData(int port_id) { | 1713 void Dispatcher::ClearPortData(int port_id) { |
1706 // Only the target port side has entries in |port_to_tab_id_map_|. If | 1714 // Only the target port side has entries in |port_to_tab_id_map_|. If |
1707 // |port_id| is a source port, std::map::erase() will just silently fail | 1715 // |port_id| is a source port, std::map::erase() will just silently fail |
1708 // here as a no-op. | 1716 // here as a no-op. |
1709 port_to_tab_id_map_.erase(port_id); | 1717 port_to_tab_id_map_.erase(port_id); |
1710 } | 1718 } |
1711 | 1719 |
1712 } // namespace extensions | 1720 } // namespace extensions |
OLD | NEW |