Index: chrome/renderer/extensions/dispatcher.cc |
diff --git a/chrome/renderer/extensions/dispatcher.cc b/chrome/renderer/extensions/dispatcher.cc |
index 13e30a86d07748e8e481d4f988bee735db58cd1c..ed5b98b1429ebea2343d5d093cebb61e5605a99e 100644 |
--- a/chrome/renderer/extensions/dispatcher.cc |
+++ b/chrome/renderer/extensions/dispatcher.cc |
@@ -23,43 +23,26 @@ |
#include "chrome/common/url_constants.h" |
#include "chrome/renderer/chrome_render_process_observer.h" |
#include "chrome/renderer/extensions/api_activity_logger.h" |
-#include "chrome/renderer/extensions/api_definitions_natives.h" |
#include "chrome/renderer/extensions/app_bindings.h" |
#include "chrome/renderer/extensions/app_runtime_custom_bindings.h" |
#include "chrome/renderer/extensions/app_window_custom_bindings.h" |
-#include "chrome/renderer/extensions/binding_generating_native_handler.h" |
-#include "chrome/renderer/extensions/blob_native_handler.h" |
#include "chrome/renderer/extensions/chrome_v8_context.h" |
#include "chrome/renderer/extensions/chrome_v8_extension.h" |
-#include "chrome/renderer/extensions/content_watcher.h" |
-#include "chrome/renderer/extensions/context_menus_custom_bindings.h" |
-#include "chrome/renderer/extensions/css_native_handler.h" |
-#include "chrome/renderer/extensions/document_custom_bindings.h" |
#include "chrome/renderer/extensions/dom_activity_logger.h" |
-#include "chrome/renderer/extensions/extension_groups.h" |
#include "chrome/renderer/extensions/extension_helper.h" |
#include "chrome/renderer/extensions/file_browser_handler_custom_bindings.h" |
#include "chrome/renderer/extensions/file_browser_private_custom_bindings.h" |
-#include "chrome/renderer/extensions/file_system_natives.h" |
-#include "chrome/renderer/extensions/i18n_custom_bindings.h" |
-#include "chrome/renderer/extensions/id_generator_custom_bindings.h" |
-#include "chrome/renderer/extensions/logging_native_handler.h" |
#include "chrome/renderer/extensions/media_galleries_custom_bindings.h" |
#include "chrome/renderer/extensions/messaging_bindings.h" |
#include "chrome/renderer/extensions/page_actions_custom_bindings.h" |
#include "chrome/renderer/extensions/page_capture_custom_bindings.h" |
#include "chrome/renderer/extensions/pepper_request_natives.h" |
-#include "chrome/renderer/extensions/render_view_observer_natives.h" |
#include "chrome/renderer/extensions/runtime_custom_bindings.h" |
-#include "chrome/renderer/extensions/send_request_natives.h" |
-#include "chrome/renderer/extensions/set_icon_natives.h" |
#include "chrome/renderer/extensions/sync_file_system_custom_bindings.h" |
#include "chrome/renderer/extensions/tab_finder.h" |
#include "chrome/renderer/extensions/tabs_custom_bindings.h" |
#include "chrome/renderer/extensions/user_script_slave.h" |
-#include "chrome/renderer/extensions/utils_native_handler.h" |
#include "chrome/renderer/extensions/webstore_bindings.h" |
-#include "chrome/renderer/resource_bundle_source_map.h" |
#include "content/public/renderer/render_thread.h" |
#include "content/public/renderer/render_view.h" |
#include "content/public/renderer/v8_value_converter.h" |
@@ -80,12 +63,28 @@ |
#include "extensions/common/permissions/permissions_data.h" |
#include "extensions/common/switches.h" |
#include "extensions/common/view_type.h" |
+#include "extensions/renderer/api_definitions_natives.h" |
+#include "extensions/renderer/binding_generating_native_handler.h" |
+#include "extensions/renderer/blob_native_handler.h" |
+#include "extensions/renderer/content_watcher.h" |
+#include "extensions/renderer/context_menus_custom_bindings.h" |
+#include "extensions/renderer/css_native_handler.h" |
+#include "extensions/renderer/document_custom_bindings.h" |
#include "extensions/renderer/event_bindings.h" |
+#include "extensions/renderer/extension_groups.h" |
+#include "extensions/renderer/file_system_natives.h" |
+#include "extensions/renderer/i18n_custom_bindings.h" |
+#include "extensions/renderer/id_generator_custom_bindings.h" |
+#include "extensions/renderer/logging_native_handler.h" |
#include "extensions/renderer/module_system.h" |
#include "extensions/renderer/object_backed_native_handler.h" |
+#include "extensions/renderer/render_view_observer_natives.h" |
#include "extensions/renderer/request_sender.h" |
#include "extensions/renderer/safe_builtins.h" |
#include "extensions/renderer/script_context.h" |
+#include "extensions/renderer/send_request_natives.h" |
+#include "extensions/renderer/set_icon_natives.h" |
+#include "extensions/renderer/utils_native_handler.h" |
#include "grit/common_resources.h" |
#include "grit/renderer_resources.h" |
#include "third_party/WebKit/public/platform/WebString.h" |
@@ -295,11 +294,10 @@ class PrintNativeHandler : public ObjectBackedNativeHandler { |
} |
}; |
-class LazyBackgroundPageNativeHandler : public ChromeV8Extension { |
+class LazyBackgroundPageNativeHandler : public ObjectBackedNativeHandler { |
public: |
- LazyBackgroundPageNativeHandler(Dispatcher* dispatcher, |
- ChromeV8Context* context) |
- : ChromeV8Extension(dispatcher, context) { |
+ explicit LazyBackgroundPageNativeHandler(ScriptContext* context) |
+ : ObjectBackedNativeHandler(context) { |
RouteFunction("IncrementKeepaliveCount", |
base::Bind(&LazyBackgroundPageNativeHandler::IncrementKeepaliveCount, |
base::Unretained(this))); |
@@ -342,16 +340,15 @@ class LazyBackgroundPageNativeHandler : public ChromeV8Extension { |
} |
}; |
-class ProcessInfoNativeHandler : public ChromeV8Extension { |
+class ProcessInfoNativeHandler : public ObjectBackedNativeHandler { |
public: |
- ProcessInfoNativeHandler(Dispatcher* dispatcher, |
- ChromeV8Context* context, |
- const std::string& extension_id, |
- const std::string& context_type, |
- bool is_incognito_context, |
- int manifest_version, |
- bool send_request_disabled) |
- : ChromeV8Extension(dispatcher, context), |
+ explicit ProcessInfoNativeHandler(ScriptContext* context, |
Yoyo Zhou
2014/04/16 22:42:21
nit: Usually we only need explicit if the implicit
|
+ const std::string& extension_id, |
+ const std::string& context_type, |
+ bool is_incognito_context, |
+ int manifest_version, |
+ bool send_request_disabled) |
+ : ObjectBackedNativeHandler(context), |
extension_id_(extension_id), |
context_type_(context_type), |
is_incognito_context_(is_incognito_context), |
@@ -897,16 +894,19 @@ void Dispatcher::RegisterNativeHandlers(ModuleSystem* module_system, |
scoped_ptr<NativeHandler>(MessagingBindings::Get(this, context))); |
module_system->RegisterNativeHandler("apiDefinitions", |
scoped_ptr<NativeHandler>(new ApiDefinitionsNatives(this, context))); |
- module_system->RegisterNativeHandler("sendRequest", |
+ module_system->RegisterNativeHandler( |
+ "sendRequest", |
scoped_ptr<NativeHandler>( |
- new SendRequestNatives(this, request_sender_.get(), context))); |
- module_system->RegisterNativeHandler("setIcon", |
+ new SendRequestNatives(request_sender_.get(), context))); |
+ module_system->RegisterNativeHandler( |
+ "setIcon", |
scoped_ptr<NativeHandler>( |
- new SetIconNatives(this, request_sender_.get(), context))); |
+ new SetIconNatives(request_sender_.get(), context))); |
module_system->RegisterNativeHandler("activityLogger", |
scoped_ptr<NativeHandler>(new APIActivityLogger(this, context))); |
- module_system->RegisterNativeHandler("renderViewObserverNatives", |
- scoped_ptr<NativeHandler>(new RenderViewObserverNatives(this, context))); |
+ module_system->RegisterNativeHandler( |
+ "renderViewObserverNatives", |
+ scoped_ptr<NativeHandler>(new RenderViewObserverNatives(context))); |
// Natives used by multiple APIs. |
module_system->RegisterNativeHandler("file_system_natives", |
@@ -923,14 +923,14 @@ void Dispatcher::RegisterNativeHandlers(ModuleSystem* module_system, |
new AppWindowCustomBindings(this, context))); |
module_system->RegisterNativeHandler("blob_natives", |
scoped_ptr<NativeHandler>(new BlobNativeHandler(context))); |
- module_system->RegisterNativeHandler("context_menus", |
- scoped_ptr<NativeHandler>( |
- new ContextMenusCustomBindings(this, context))); |
+ module_system->RegisterNativeHandler( |
+ "context_menus", |
+ scoped_ptr<NativeHandler>(new ContextMenusCustomBindings(context))); |
module_system->RegisterNativeHandler( |
"css_natives", scoped_ptr<NativeHandler>(new CssNativeHandler(context))); |
- module_system->RegisterNativeHandler("document_natives", |
- scoped_ptr<NativeHandler>( |
- new DocumentCustomBindings(this, context))); |
+ module_system->RegisterNativeHandler( |
+ "document_natives", |
+ scoped_ptr<NativeHandler>(new DocumentCustomBindings(context))); |
module_system->RegisterNativeHandler("sync_file_system", |
scoped_ptr<NativeHandler>( |
new SyncFileSystemCustomBindings(this, context))); |
@@ -940,12 +940,11 @@ void Dispatcher::RegisterNativeHandlers(ModuleSystem* module_system, |
module_system->RegisterNativeHandler("file_browser_private", |
scoped_ptr<NativeHandler>(new FileBrowserPrivateCustomBindings( |
this, context))); |
- module_system->RegisterNativeHandler("i18n", |
- scoped_ptr<NativeHandler>( |
- new I18NCustomBindings(this, context))); |
+ module_system->RegisterNativeHandler( |
+ "i18n", scoped_ptr<NativeHandler>(new I18NCustomBindings(context))); |
module_system->RegisterNativeHandler( |
"id_generator", |
- scoped_ptr<NativeHandler>(new IdGeneratorCustomBindings(this, context))); |
+ scoped_ptr<NativeHandler>(new IdGeneratorCustomBindings(context))); |
module_system->RegisterNativeHandler("mediaGalleries", |
scoped_ptr<NativeHandler>( |
new MediaGalleriesCustomBindings(this, context))); |
@@ -1162,9 +1161,9 @@ void Dispatcher::DidCreateScriptContext( |
scoped_ptr<NativeHandler>(new ChromeNativeHandler(context))); |
module_system->RegisterNativeHandler("print", |
scoped_ptr<NativeHandler>(new PrintNativeHandler(context))); |
- module_system->RegisterNativeHandler("lazy_background_page", |
- scoped_ptr<NativeHandler>( |
- new LazyBackgroundPageNativeHandler(this, context))); |
+ module_system->RegisterNativeHandler( |
+ "lazy_background_page", |
+ scoped_ptr<NativeHandler>(new LazyBackgroundPageNativeHandler(context))); |
module_system->RegisterNativeHandler("logging", |
scoped_ptr<NativeHandler>(new LoggingNativeHandler(context))); |
module_system->RegisterNativeHandler("schema_registry", |
@@ -1182,12 +1181,15 @@ void Dispatcher::DidCreateScriptContext( |
bool send_request_disabled = |
(extension && Manifest::IsUnpackedLocation(extension->location()) && |
BackgroundInfo::HasLazyBackgroundPage(extension)); |
- module_system->RegisterNativeHandler("process", |
+ module_system->RegisterNativeHandler( |
+ "process", |
scoped_ptr<NativeHandler>(new ProcessInfoNativeHandler( |
- this, context, context->GetExtensionID(), |
+ context, |
+ context->GetExtensionID(), |
context->GetContextTypeDescription(), |
ChromeRenderProcessObserver::is_incognito_process(), |
- manifest_version, send_request_disabled))); |
+ manifest_version, |
+ send_request_disabled))); |
// chrome.Event is part of the public API (although undocumented). Make it |
// lazily evalulate to Event from event_bindings.js. For extensions only |