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/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
65 #include "extensions/common/view_type.h" | 65 #include "extensions/common/view_type.h" |
66 #include "extensions/renderer/api_definitions_natives.h" | 66 #include "extensions/renderer/api_definitions_natives.h" |
67 #include "extensions/renderer/binding_generating_native_handler.h" | 67 #include "extensions/renderer/binding_generating_native_handler.h" |
68 #include "extensions/renderer/blob_native_handler.h" | 68 #include "extensions/renderer/blob_native_handler.h" |
69 #include "extensions/renderer/content_watcher.h" | 69 #include "extensions/renderer/content_watcher.h" |
70 #include "extensions/renderer/context_menus_custom_bindings.h" | 70 #include "extensions/renderer/context_menus_custom_bindings.h" |
71 #include "extensions/renderer/css_native_handler.h" | 71 #include "extensions/renderer/css_native_handler.h" |
72 #include "extensions/renderer/document_custom_bindings.h" | 72 #include "extensions/renderer/document_custom_bindings.h" |
73 #include "extensions/renderer/event_bindings.h" | 73 #include "extensions/renderer/event_bindings.h" |
74 #include "extensions/renderer/extension_groups.h" | 74 #include "extensions/renderer/extension_groups.h" |
| 75 #include "extensions/renderer/extensions_renderer_client.h" |
75 #include "extensions/renderer/file_system_natives.h" | 76 #include "extensions/renderer/file_system_natives.h" |
76 #include "extensions/renderer/i18n_custom_bindings.h" | 77 #include "extensions/renderer/i18n_custom_bindings.h" |
77 #include "extensions/renderer/id_generator_custom_bindings.h" | 78 #include "extensions/renderer/id_generator_custom_bindings.h" |
78 #include "extensions/renderer/logging_native_handler.h" | 79 #include "extensions/renderer/logging_native_handler.h" |
79 #include "extensions/renderer/module_system.h" | 80 #include "extensions/renderer/module_system.h" |
80 #include "extensions/renderer/object_backed_native_handler.h" | 81 #include "extensions/renderer/object_backed_native_handler.h" |
81 #include "extensions/renderer/render_view_observer_natives.h" | 82 #include "extensions/renderer/render_view_observer_natives.h" |
82 #include "extensions/renderer/request_sender.h" | 83 #include "extensions/renderer/request_sender.h" |
83 #include "extensions/renderer/safe_builtins.h" | 84 #include "extensions/renderer/safe_builtins.h" |
84 #include "extensions/renderer/script_context.h" | 85 #include "extensions/renderer/script_context.h" |
(...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
468 if (is_extension_process_) { | 469 if (is_extension_process_) { |
469 RenderThread::Get()->SetIdleNotificationDelayInMs( | 470 RenderThread::Get()->SetIdleNotificationDelayInMs( |
470 kInitialExtensionIdleHandlerDelayMs); | 471 kInitialExtensionIdleHandlerDelayMs); |
471 } | 472 } |
472 | 473 |
473 RenderThread::Get()->RegisterExtension(SafeBuiltins::CreateV8Extension()); | 474 RenderThread::Get()->RegisterExtension(SafeBuiltins::CreateV8Extension()); |
474 | 475 |
475 user_script_slave_.reset(new UserScriptSlave(&extensions_)); | 476 user_script_slave_.reset(new UserScriptSlave(&extensions_)); |
476 request_sender_.reset(new RequestSender(this)); | 477 request_sender_.reset(new RequestSender(this)); |
477 PopulateSourceMap(); | 478 PopulateSourceMap(); |
| 479 // Register JS sources from the extensions module embedder. |
| 480 ExtensionsRendererClient::Get()->PopulateSourceMap(&source_map_); |
478 PopulateLazyBindingsMap(); | 481 PopulateLazyBindingsMap(); |
479 } | 482 } |
480 | 483 |
481 Dispatcher::~Dispatcher() { | 484 Dispatcher::~Dispatcher() { |
482 } | 485 } |
483 | 486 |
484 bool Dispatcher::OnControlMessageReceived(const IPC::Message& message) { | 487 bool Dispatcher::OnControlMessageReceived(const IPC::Message& message) { |
485 bool handled = true; | 488 bool handled = true; |
486 IPC_BEGIN_MESSAGE_MAP(Dispatcher, message) | 489 IPC_BEGIN_MESSAGE_MAP(Dispatcher, message) |
487 IPC_MESSAGE_HANDLER(ExtensionMsg_SetChannel, OnSetChannel) | 490 IPC_MESSAGE_HANDLER(ExtensionMsg_SetChannel, OnSetChannel) |
(...skipping 666 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1154 scoped_ptr<ModuleSystem> module_system(new ModuleSystem(context, | 1157 scoped_ptr<ModuleSystem> module_system(new ModuleSystem(context, |
1155 &source_map_)); | 1158 &source_map_)); |
1156 context->set_module_system(module_system.Pass()); | 1159 context->set_module_system(module_system.Pass()); |
1157 } | 1160 } |
1158 ModuleSystem* module_system = context->module_system(); | 1161 ModuleSystem* module_system = context->module_system(); |
1159 | 1162 |
1160 // Enable natives in startup. | 1163 // Enable natives in startup. |
1161 ModuleSystem::NativesEnabledScope natives_enabled_scope( | 1164 ModuleSystem::NativesEnabledScope natives_enabled_scope( |
1162 module_system); | 1165 module_system); |
1163 | 1166 |
| 1167 // Register the core extensions native handlers. |
1164 RegisterNativeHandlers(module_system, context); | 1168 RegisterNativeHandlers(module_system, context); |
1165 | 1169 |
| 1170 // Register native handlers from the extensions embedder. |
| 1171 ExtensionsRendererClient::Get()->RegisterNativeHandlers(module_system, |
| 1172 context); |
| 1173 |
1166 module_system->RegisterNativeHandler("chrome", | 1174 module_system->RegisterNativeHandler("chrome", |
1167 scoped_ptr<NativeHandler>(new ChromeNativeHandler(context))); | 1175 scoped_ptr<NativeHandler>(new ChromeNativeHandler(context))); |
1168 module_system->RegisterNativeHandler("print", | 1176 module_system->RegisterNativeHandler("print", |
1169 scoped_ptr<NativeHandler>(new PrintNativeHandler(context))); | 1177 scoped_ptr<NativeHandler>(new PrintNativeHandler(context))); |
1170 module_system->RegisterNativeHandler( | 1178 module_system->RegisterNativeHandler( |
1171 "lazy_background_page", | 1179 "lazy_background_page", |
1172 scoped_ptr<NativeHandler>(new LazyBackgroundPageNativeHandler(context))); | 1180 scoped_ptr<NativeHandler>(new LazyBackgroundPageNativeHandler(context))); |
1173 module_system->RegisterNativeHandler("logging", | 1181 module_system->RegisterNativeHandler("logging", |
1174 scoped_ptr<NativeHandler>(new LoggingNativeHandler(context))); | 1182 scoped_ptr<NativeHandler>(new LoggingNativeHandler(context))); |
1175 module_system->RegisterNativeHandler("schema_registry", | 1183 module_system->RegisterNativeHandler("schema_registry", |
(...skipping 529 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1705 } | 1713 } |
1706 | 1714 |
1707 void Dispatcher::ClearPortData(int port_id) { | 1715 void Dispatcher::ClearPortData(int port_id) { |
1708 // Only the target port side has entries in |port_to_tab_id_map_|. If | 1716 // Only the target port side has entries in |port_to_tab_id_map_|. If |
1709 // |port_id| is a source port, std::map::erase() will just silently fail | 1717 // |port_id| is a source port, std::map::erase() will just silently fail |
1710 // here as a no-op. | 1718 // here as a no-op. |
1711 port_to_tab_id_map_.erase(port_id); | 1719 port_to_tab_id_map_.erase(port_id); |
1712 } | 1720 } |
1713 | 1721 |
1714 } // namespace extensions | 1722 } // namespace extensions |
OLD | NEW |