| 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" |
| 11 #include "base/memory/scoped_ptr.h" | 11 #include "base/memory/scoped_ptr.h" |
| 12 #include "base/metrics/user_metrics_action.h" | 12 #include "base/metrics/user_metrics_action.h" |
| 13 #include "base/sha1.h" | 13 #include "base/sha1.h" |
| 14 #include "base/strings/string_number_conversions.h" | 14 #include "base/strings/string_number_conversions.h" |
| 15 #include "base/strings/string_piece.h" | 15 #include "base/strings/string_piece.h" |
| 16 #include "base/strings/string_split.h" | 16 #include "base/strings/string_split.h" |
| 17 #include "base/strings/string_util.h" | 17 #include "base/strings/string_util.h" |
| 18 #include "chrome/common/chrome_switches.h" | 18 #include "chrome/common/chrome_switches.h" |
| 19 #include "chrome/common/chrome_version_info.h" | 19 #include "chrome/common/chrome_version_info.h" |
| 20 #include "chrome/common/crash_keys.h" | 20 #include "chrome/common/crash_keys.h" |
| 21 #include "chrome/common/extensions/features/feature_channel.h" | 21 #include "chrome/common/extensions/features/feature_channel.h" |
| 22 #include "chrome/common/extensions/manifest_handlers/externally_connectable.h" | 22 #include "chrome/common/extensions/manifest_handlers/externally_connectable.h" |
| 23 #include "chrome/common/url_constants.h" | 23 #include "chrome/common/url_constants.h" |
| 24 #include "chrome/renderer/chrome_render_process_observer.h" | 24 #include "chrome/renderer/chrome_render_process_observer.h" |
| 25 #include "chrome/renderer/extensions/api_activity_logger.h" | 25 #include "chrome/renderer/extensions/api_activity_logger.h" |
| 26 #include "chrome/renderer/extensions/api_definitions_natives.h" | |
| 27 #include "chrome/renderer/extensions/app_bindings.h" | 26 #include "chrome/renderer/extensions/app_bindings.h" |
| 28 #include "chrome/renderer/extensions/app_runtime_custom_bindings.h" | 27 #include "chrome/renderer/extensions/app_runtime_custom_bindings.h" |
| 29 #include "chrome/renderer/extensions/app_window_custom_bindings.h" | 28 #include "chrome/renderer/extensions/app_window_custom_bindings.h" |
| 30 #include "chrome/renderer/extensions/binding_generating_native_handler.h" | |
| 31 #include "chrome/renderer/extensions/blob_native_handler.h" | |
| 32 #include "chrome/renderer/extensions/chrome_v8_context.h" | 29 #include "chrome/renderer/extensions/chrome_v8_context.h" |
| 33 #include "chrome/renderer/extensions/chrome_v8_extension.h" | 30 #include "chrome/renderer/extensions/chrome_v8_extension.h" |
| 34 #include "chrome/renderer/extensions/content_watcher.h" | |
| 35 #include "chrome/renderer/extensions/context_menus_custom_bindings.h" | |
| 36 #include "chrome/renderer/extensions/css_native_handler.h" | |
| 37 #include "chrome/renderer/extensions/document_custom_bindings.h" | |
| 38 #include "chrome/renderer/extensions/dom_activity_logger.h" | 31 #include "chrome/renderer/extensions/dom_activity_logger.h" |
| 39 #include "chrome/renderer/extensions/extension_groups.h" | |
| 40 #include "chrome/renderer/extensions/extension_helper.h" | 32 #include "chrome/renderer/extensions/extension_helper.h" |
| 41 #include "chrome/renderer/extensions/file_browser_handler_custom_bindings.h" | 33 #include "chrome/renderer/extensions/file_browser_handler_custom_bindings.h" |
| 42 #include "chrome/renderer/extensions/file_browser_private_custom_bindings.h" | 34 #include "chrome/renderer/extensions/file_browser_private_custom_bindings.h" |
| 43 #include "chrome/renderer/extensions/file_system_natives.h" | |
| 44 #include "chrome/renderer/extensions/i18n_custom_bindings.h" | |
| 45 #include "chrome/renderer/extensions/id_generator_custom_bindings.h" | |
| 46 #include "chrome/renderer/extensions/logging_native_handler.h" | |
| 47 #include "chrome/renderer/extensions/media_galleries_custom_bindings.h" | 35 #include "chrome/renderer/extensions/media_galleries_custom_bindings.h" |
| 48 #include "chrome/renderer/extensions/messaging_bindings.h" | 36 #include "chrome/renderer/extensions/messaging_bindings.h" |
| 49 #include "chrome/renderer/extensions/page_actions_custom_bindings.h" | 37 #include "chrome/renderer/extensions/page_actions_custom_bindings.h" |
| 50 #include "chrome/renderer/extensions/page_capture_custom_bindings.h" | 38 #include "chrome/renderer/extensions/page_capture_custom_bindings.h" |
| 51 #include "chrome/renderer/extensions/pepper_request_natives.h" | 39 #include "chrome/renderer/extensions/pepper_request_natives.h" |
| 52 #include "chrome/renderer/extensions/render_view_observer_natives.h" | |
| 53 #include "chrome/renderer/extensions/runtime_custom_bindings.h" | 40 #include "chrome/renderer/extensions/runtime_custom_bindings.h" |
| 54 #include "chrome/renderer/extensions/send_request_natives.h" | |
| 55 #include "chrome/renderer/extensions/set_icon_natives.h" | |
| 56 #include "chrome/renderer/extensions/sync_file_system_custom_bindings.h" | 41 #include "chrome/renderer/extensions/sync_file_system_custom_bindings.h" |
| 57 #include "chrome/renderer/extensions/tab_finder.h" | 42 #include "chrome/renderer/extensions/tab_finder.h" |
| 58 #include "chrome/renderer/extensions/tabs_custom_bindings.h" | 43 #include "chrome/renderer/extensions/tabs_custom_bindings.h" |
| 59 #include "chrome/renderer/extensions/user_script_slave.h" | 44 #include "chrome/renderer/extensions/user_script_slave.h" |
| 60 #include "chrome/renderer/extensions/utils_native_handler.h" | |
| 61 #include "chrome/renderer/extensions/webstore_bindings.h" | 45 #include "chrome/renderer/extensions/webstore_bindings.h" |
| 62 #include "chrome/renderer/resource_bundle_source_map.h" | |
| 63 #include "content/public/renderer/render_thread.h" | 46 #include "content/public/renderer/render_thread.h" |
| 64 #include "content/public/renderer/render_view.h" | 47 #include "content/public/renderer/render_view.h" |
| 65 #include "content/public/renderer/v8_value_converter.h" | 48 #include "content/public/renderer/v8_value_converter.h" |
| 66 #include "extensions/common/api/messaging/message.h" | 49 #include "extensions/common/api/messaging/message.h" |
| 67 #include "extensions/common/constants.h" | 50 #include "extensions/common/constants.h" |
| 68 #include "extensions/common/extension.h" | 51 #include "extensions/common/extension.h" |
| 69 #include "extensions/common/extension_api.h" | 52 #include "extensions/common/extension_api.h" |
| 70 #include "extensions/common/extension_messages.h" | 53 #include "extensions/common/extension_messages.h" |
| 71 #include "extensions/common/extension_urls.h" | 54 #include "extensions/common/extension_urls.h" |
| 72 #include "extensions/common/features/feature.h" | 55 #include "extensions/common/features/feature.h" |
| 73 #include "extensions/common/features/feature_provider.h" | 56 #include "extensions/common/features/feature_provider.h" |
| 74 #include "extensions/common/manifest.h" | 57 #include "extensions/common/manifest.h" |
| 75 #include "extensions/common/manifest_constants.h" | 58 #include "extensions/common/manifest_constants.h" |
| 76 #include "extensions/common/manifest_handlers/background_info.h" | 59 #include "extensions/common/manifest_handlers/background_info.h" |
| 77 #include "extensions/common/manifest_handlers/sandboxed_page_info.h" | 60 #include "extensions/common/manifest_handlers/sandboxed_page_info.h" |
| 78 #include "extensions/common/message_bundle.h" | 61 #include "extensions/common/message_bundle.h" |
| 79 #include "extensions/common/permissions/permission_set.h" | 62 #include "extensions/common/permissions/permission_set.h" |
| 80 #include "extensions/common/permissions/permissions_data.h" | 63 #include "extensions/common/permissions/permissions_data.h" |
| 81 #include "extensions/common/switches.h" | 64 #include "extensions/common/switches.h" |
| 82 #include "extensions/common/view_type.h" | 65 #include "extensions/common/view_type.h" |
| 66 #include "extensions/renderer/api_definitions_natives.h" |
| 67 #include "extensions/renderer/binding_generating_native_handler.h" |
| 68 #include "extensions/renderer/blob_native_handler.h" |
| 69 #include "extensions/renderer/content_watcher.h" |
| 70 #include "extensions/renderer/context_menus_custom_bindings.h" |
| 71 #include "extensions/renderer/css_native_handler.h" |
| 72 #include "extensions/renderer/document_custom_bindings.h" |
| 83 #include "extensions/renderer/event_bindings.h" | 73 #include "extensions/renderer/event_bindings.h" |
| 74 #include "extensions/renderer/extension_groups.h" |
| 75 #include "extensions/renderer/file_system_natives.h" |
| 76 #include "extensions/renderer/i18n_custom_bindings.h" |
| 77 #include "extensions/renderer/id_generator_custom_bindings.h" |
| 78 #include "extensions/renderer/logging_native_handler.h" |
| 84 #include "extensions/renderer/module_system.h" | 79 #include "extensions/renderer/module_system.h" |
| 85 #include "extensions/renderer/object_backed_native_handler.h" | 80 #include "extensions/renderer/object_backed_native_handler.h" |
| 81 #include "extensions/renderer/render_view_observer_natives.h" |
| 86 #include "extensions/renderer/request_sender.h" | 82 #include "extensions/renderer/request_sender.h" |
| 87 #include "extensions/renderer/safe_builtins.h" | 83 #include "extensions/renderer/safe_builtins.h" |
| 88 #include "extensions/renderer/script_context.h" | 84 #include "extensions/renderer/script_context.h" |
| 85 #include "extensions/renderer/send_request_natives.h" |
| 86 #include "extensions/renderer/set_icon_natives.h" |
| 87 #include "extensions/renderer/utils_native_handler.h" |
| 89 #include "grit/common_resources.h" | 88 #include "grit/common_resources.h" |
| 90 #include "grit/renderer_resources.h" | 89 #include "grit/renderer_resources.h" |
| 91 #include "third_party/WebKit/public/platform/WebString.h" | 90 #include "third_party/WebKit/public/platform/WebString.h" |
| 92 #include "third_party/WebKit/public/platform/WebURLRequest.h" | 91 #include "third_party/WebKit/public/platform/WebURLRequest.h" |
| 93 #include "third_party/WebKit/public/web/WebCustomElement.h" | 92 #include "third_party/WebKit/public/web/WebCustomElement.h" |
| 94 #include "third_party/WebKit/public/web/WebDataSource.h" | 93 #include "third_party/WebKit/public/web/WebDataSource.h" |
| 95 #include "third_party/WebKit/public/web/WebDocument.h" | 94 #include "third_party/WebKit/public/web/WebDocument.h" |
| 96 #include "third_party/WebKit/public/web/WebFrame.h" | 95 #include "third_party/WebKit/public/web/WebFrame.h" |
| 97 #include "third_party/WebKit/public/web/WebRuntimeFeatures.h" | 96 #include "third_party/WebKit/public/web/WebRuntimeFeatures.h" |
| 98 #include "third_party/WebKit/public/web/WebScopedUserGesture.h" | 97 #include "third_party/WebKit/public/web/WebScopedUserGesture.h" |
| (...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 288 return; | 287 return; |
| 289 | 288 |
| 290 std::vector<std::string> components; | 289 std::vector<std::string> components; |
| 291 for (int i = 0; i < args.Length(); ++i) | 290 for (int i = 0; i < args.Length(); ++i) |
| 292 components.push_back(*v8::String::Utf8Value(args[i]->ToString())); | 291 components.push_back(*v8::String::Utf8Value(args[i]->ToString())); |
| 293 | 292 |
| 294 LOG(ERROR) << JoinString(components, ','); | 293 LOG(ERROR) << JoinString(components, ','); |
| 295 } | 294 } |
| 296 }; | 295 }; |
| 297 | 296 |
| 298 class LazyBackgroundPageNativeHandler : public ChromeV8Extension { | 297 class LazyBackgroundPageNativeHandler : public ObjectBackedNativeHandler { |
| 299 public: | 298 public: |
| 300 LazyBackgroundPageNativeHandler(Dispatcher* dispatcher, | 299 explicit LazyBackgroundPageNativeHandler(ScriptContext* context) |
| 301 ChromeV8Context* context) | 300 : ObjectBackedNativeHandler(context) { |
| 302 : ChromeV8Extension(dispatcher, context) { | |
| 303 RouteFunction("IncrementKeepaliveCount", | 301 RouteFunction("IncrementKeepaliveCount", |
| 304 base::Bind(&LazyBackgroundPageNativeHandler::IncrementKeepaliveCount, | 302 base::Bind(&LazyBackgroundPageNativeHandler::IncrementKeepaliveCount, |
| 305 base::Unretained(this))); | 303 base::Unretained(this))); |
| 306 RouteFunction("DecrementKeepaliveCount", | 304 RouteFunction("DecrementKeepaliveCount", |
| 307 base::Bind(&LazyBackgroundPageNativeHandler::DecrementKeepaliveCount, | 305 base::Bind(&LazyBackgroundPageNativeHandler::DecrementKeepaliveCount, |
| 308 base::Unretained(this))); | 306 base::Unretained(this))); |
| 309 } | 307 } |
| 310 | 308 |
| 311 void IncrementKeepaliveCount( | 309 void IncrementKeepaliveCount( |
| 312 const v8::FunctionCallbackInfo<v8::Value>& args) { | 310 const v8::FunctionCallbackInfo<v8::Value>& args) { |
| (...skipping 22 matching lines...) Expand all Loading... |
| 335 const Extension* extension) { | 333 const Extension* extension) { |
| 336 if (!render_view) | 334 if (!render_view) |
| 337 return false; | 335 return false; |
| 338 | 336 |
| 339 ExtensionHelper* helper = ExtensionHelper::Get(render_view); | 337 ExtensionHelper* helper = ExtensionHelper::Get(render_view); |
| 340 return (extension && BackgroundInfo::HasLazyBackgroundPage(extension) && | 338 return (extension && BackgroundInfo::HasLazyBackgroundPage(extension) && |
| 341 helper->view_type() == VIEW_TYPE_EXTENSION_BACKGROUND_PAGE); | 339 helper->view_type() == VIEW_TYPE_EXTENSION_BACKGROUND_PAGE); |
| 342 } | 340 } |
| 343 }; | 341 }; |
| 344 | 342 |
| 345 class ProcessInfoNativeHandler : public ChromeV8Extension { | 343 class ProcessInfoNativeHandler : public ObjectBackedNativeHandler { |
| 346 public: | 344 public: |
| 347 ProcessInfoNativeHandler(Dispatcher* dispatcher, | 345 ProcessInfoNativeHandler(ScriptContext* context, |
| 348 ChromeV8Context* context, | |
| 349 const std::string& extension_id, | 346 const std::string& extension_id, |
| 350 const std::string& context_type, | 347 const std::string& context_type, |
| 351 bool is_incognito_context, | 348 bool is_incognito_context, |
| 352 int manifest_version, | 349 int manifest_version, |
| 353 bool send_request_disabled) | 350 bool send_request_disabled) |
| 354 : ChromeV8Extension(dispatcher, context), | 351 : ObjectBackedNativeHandler(context), |
| 355 extension_id_(extension_id), | 352 extension_id_(extension_id), |
| 356 context_type_(context_type), | 353 context_type_(context_type), |
| 357 is_incognito_context_(is_incognito_context), | 354 is_incognito_context_(is_incognito_context), |
| 358 manifest_version_(manifest_version), | 355 manifest_version_(manifest_version), |
| 359 send_request_disabled_(send_request_disabled) { | 356 send_request_disabled_(send_request_disabled) { |
| 360 RouteFunction("GetExtensionId", | 357 RouteFunction("GetExtensionId", |
| 361 base::Bind(&ProcessInfoNativeHandler::GetExtensionId, | 358 base::Bind(&ProcessInfoNativeHandler::GetExtensionId, |
| 362 base::Unretained(this))); | 359 base::Unretained(this))); |
| 363 RouteFunction("GetContextType", | 360 RouteFunction("GetContextType", |
| 364 base::Bind(&ProcessInfoNativeHandler::GetContextType, | 361 base::Bind(&ProcessInfoNativeHandler::GetContextType, |
| (...skipping 525 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 890 // NOTE: please use the naming convention "foo_natives" for these. | 887 // NOTE: please use the naming convention "foo_natives" for these. |
| 891 void Dispatcher::RegisterNativeHandlers(ModuleSystem* module_system, | 888 void Dispatcher::RegisterNativeHandlers(ModuleSystem* module_system, |
| 892 ChromeV8Context* context) { | 889 ChromeV8Context* context) { |
| 893 module_system->RegisterNativeHandler( | 890 module_system->RegisterNativeHandler( |
| 894 "event_natives", | 891 "event_natives", |
| 895 scoped_ptr<NativeHandler>(new EventBindings(this, context))); | 892 scoped_ptr<NativeHandler>(new EventBindings(this, context))); |
| 896 module_system->RegisterNativeHandler("messaging_natives", | 893 module_system->RegisterNativeHandler("messaging_natives", |
| 897 scoped_ptr<NativeHandler>(MessagingBindings::Get(this, context))); | 894 scoped_ptr<NativeHandler>(MessagingBindings::Get(this, context))); |
| 898 module_system->RegisterNativeHandler("apiDefinitions", | 895 module_system->RegisterNativeHandler("apiDefinitions", |
| 899 scoped_ptr<NativeHandler>(new ApiDefinitionsNatives(this, context))); | 896 scoped_ptr<NativeHandler>(new ApiDefinitionsNatives(this, context))); |
| 900 module_system->RegisterNativeHandler("sendRequest", | 897 module_system->RegisterNativeHandler( |
| 898 "sendRequest", |
| 901 scoped_ptr<NativeHandler>( | 899 scoped_ptr<NativeHandler>( |
| 902 new SendRequestNatives(this, request_sender_.get(), context))); | 900 new SendRequestNatives(request_sender_.get(), context))); |
| 903 module_system->RegisterNativeHandler("setIcon", | 901 module_system->RegisterNativeHandler( |
| 902 "setIcon", |
| 904 scoped_ptr<NativeHandler>( | 903 scoped_ptr<NativeHandler>( |
| 905 new SetIconNatives(this, request_sender_.get(), context))); | 904 new SetIconNatives(request_sender_.get(), context))); |
| 906 module_system->RegisterNativeHandler("activityLogger", | 905 module_system->RegisterNativeHandler("activityLogger", |
| 907 scoped_ptr<NativeHandler>(new APIActivityLogger(this, context))); | 906 scoped_ptr<NativeHandler>(new APIActivityLogger(this, context))); |
| 908 module_system->RegisterNativeHandler("renderViewObserverNatives", | 907 module_system->RegisterNativeHandler( |
| 909 scoped_ptr<NativeHandler>(new RenderViewObserverNatives(this, context))); | 908 "renderViewObserverNatives", |
| 909 scoped_ptr<NativeHandler>(new RenderViewObserverNatives(context))); |
| 910 | 910 |
| 911 // Natives used by multiple APIs. | 911 // Natives used by multiple APIs. |
| 912 module_system->RegisterNativeHandler("file_system_natives", | 912 module_system->RegisterNativeHandler("file_system_natives", |
| 913 scoped_ptr<NativeHandler>(new FileSystemNatives(context))); | 913 scoped_ptr<NativeHandler>(new FileSystemNatives(context))); |
| 914 | 914 |
| 915 // Custom bindings. | 915 // Custom bindings. |
| 916 module_system->RegisterNativeHandler("app", | 916 module_system->RegisterNativeHandler("app", |
| 917 scoped_ptr<NativeHandler>(new AppBindings(this, context))); | 917 scoped_ptr<NativeHandler>(new AppBindings(this, context))); |
| 918 module_system->RegisterNativeHandler("app_runtime", | 918 module_system->RegisterNativeHandler("app_runtime", |
| 919 scoped_ptr<NativeHandler>( | 919 scoped_ptr<NativeHandler>( |
| 920 new AppRuntimeCustomBindings(this, context))); | 920 new AppRuntimeCustomBindings(this, context))); |
| 921 module_system->RegisterNativeHandler("app_window_natives", | 921 module_system->RegisterNativeHandler("app_window_natives", |
| 922 scoped_ptr<NativeHandler>( | 922 scoped_ptr<NativeHandler>( |
| 923 new AppWindowCustomBindings(this, context))); | 923 new AppWindowCustomBindings(this, context))); |
| 924 module_system->RegisterNativeHandler("blob_natives", | 924 module_system->RegisterNativeHandler("blob_natives", |
| 925 scoped_ptr<NativeHandler>(new BlobNativeHandler(context))); | 925 scoped_ptr<NativeHandler>(new BlobNativeHandler(context))); |
| 926 module_system->RegisterNativeHandler("context_menus", | 926 module_system->RegisterNativeHandler( |
| 927 scoped_ptr<NativeHandler>( | 927 "context_menus", |
| 928 new ContextMenusCustomBindings(this, context))); | 928 scoped_ptr<NativeHandler>(new ContextMenusCustomBindings(context))); |
| 929 module_system->RegisterNativeHandler( | 929 module_system->RegisterNativeHandler( |
| 930 "css_natives", scoped_ptr<NativeHandler>(new CssNativeHandler(context))); | 930 "css_natives", scoped_ptr<NativeHandler>(new CssNativeHandler(context))); |
| 931 module_system->RegisterNativeHandler("document_natives", | 931 module_system->RegisterNativeHandler( |
| 932 scoped_ptr<NativeHandler>( | 932 "document_natives", |
| 933 new DocumentCustomBindings(this, context))); | 933 scoped_ptr<NativeHandler>(new DocumentCustomBindings(context))); |
| 934 module_system->RegisterNativeHandler("sync_file_system", | 934 module_system->RegisterNativeHandler("sync_file_system", |
| 935 scoped_ptr<NativeHandler>( | 935 scoped_ptr<NativeHandler>( |
| 936 new SyncFileSystemCustomBindings(this, context))); | 936 new SyncFileSystemCustomBindings(this, context))); |
| 937 module_system->RegisterNativeHandler("file_browser_handler", | 937 module_system->RegisterNativeHandler("file_browser_handler", |
| 938 scoped_ptr<NativeHandler>(new FileBrowserHandlerCustomBindings( | 938 scoped_ptr<NativeHandler>(new FileBrowserHandlerCustomBindings( |
| 939 this, context))); | 939 this, context))); |
| 940 module_system->RegisterNativeHandler("file_browser_private", | 940 module_system->RegisterNativeHandler("file_browser_private", |
| 941 scoped_ptr<NativeHandler>(new FileBrowserPrivateCustomBindings( | 941 scoped_ptr<NativeHandler>(new FileBrowserPrivateCustomBindings( |
| 942 this, context))); | 942 this, context))); |
| 943 module_system->RegisterNativeHandler("i18n", | 943 module_system->RegisterNativeHandler( |
| 944 scoped_ptr<NativeHandler>( | 944 "i18n", scoped_ptr<NativeHandler>(new I18NCustomBindings(context))); |
| 945 new I18NCustomBindings(this, context))); | |
| 946 module_system->RegisterNativeHandler( | 945 module_system->RegisterNativeHandler( |
| 947 "id_generator", | 946 "id_generator", |
| 948 scoped_ptr<NativeHandler>(new IdGeneratorCustomBindings(this, context))); | 947 scoped_ptr<NativeHandler>(new IdGeneratorCustomBindings(context))); |
| 949 module_system->RegisterNativeHandler("mediaGalleries", | 948 module_system->RegisterNativeHandler("mediaGalleries", |
| 950 scoped_ptr<NativeHandler>( | 949 scoped_ptr<NativeHandler>( |
| 951 new MediaGalleriesCustomBindings(this, context))); | 950 new MediaGalleriesCustomBindings(this, context))); |
| 952 module_system->RegisterNativeHandler("page_actions", | 951 module_system->RegisterNativeHandler("page_actions", |
| 953 scoped_ptr<NativeHandler>( | 952 scoped_ptr<NativeHandler>( |
| 954 new PageActionsCustomBindings(this, context))); | 953 new PageActionsCustomBindings(this, context))); |
| 955 module_system->RegisterNativeHandler("page_capture", | 954 module_system->RegisterNativeHandler("page_capture", |
| 956 scoped_ptr<NativeHandler>( | 955 scoped_ptr<NativeHandler>( |
| 957 new PageCaptureCustomBindings(this, context))); | 956 new PageCaptureCustomBindings(this, context))); |
| 958 module_system->RegisterNativeHandler( | 957 module_system->RegisterNativeHandler( |
| (...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1155 // Enable natives in startup. | 1154 // Enable natives in startup. |
| 1156 ModuleSystem::NativesEnabledScope natives_enabled_scope( | 1155 ModuleSystem::NativesEnabledScope natives_enabled_scope( |
| 1157 module_system); | 1156 module_system); |
| 1158 | 1157 |
| 1159 RegisterNativeHandlers(module_system, context); | 1158 RegisterNativeHandlers(module_system, context); |
| 1160 | 1159 |
| 1161 module_system->RegisterNativeHandler("chrome", | 1160 module_system->RegisterNativeHandler("chrome", |
| 1162 scoped_ptr<NativeHandler>(new ChromeNativeHandler(context))); | 1161 scoped_ptr<NativeHandler>(new ChromeNativeHandler(context))); |
| 1163 module_system->RegisterNativeHandler("print", | 1162 module_system->RegisterNativeHandler("print", |
| 1164 scoped_ptr<NativeHandler>(new PrintNativeHandler(context))); | 1163 scoped_ptr<NativeHandler>(new PrintNativeHandler(context))); |
| 1165 module_system->RegisterNativeHandler("lazy_background_page", | 1164 module_system->RegisterNativeHandler( |
| 1166 scoped_ptr<NativeHandler>( | 1165 "lazy_background_page", |
| 1167 new LazyBackgroundPageNativeHandler(this, context))); | 1166 scoped_ptr<NativeHandler>(new LazyBackgroundPageNativeHandler(context))); |
| 1168 module_system->RegisterNativeHandler("logging", | 1167 module_system->RegisterNativeHandler("logging", |
| 1169 scoped_ptr<NativeHandler>(new LoggingNativeHandler(context))); | 1168 scoped_ptr<NativeHandler>(new LoggingNativeHandler(context))); |
| 1170 module_system->RegisterNativeHandler("schema_registry", | 1169 module_system->RegisterNativeHandler("schema_registry", |
| 1171 v8_schema_registry_->AsNativeHandler()); | 1170 v8_schema_registry_->AsNativeHandler()); |
| 1172 module_system->RegisterNativeHandler("v8_context", | 1171 module_system->RegisterNativeHandler("v8_context", |
| 1173 scoped_ptr<NativeHandler>(new V8ContextNativeHandler(context, this))); | 1172 scoped_ptr<NativeHandler>(new V8ContextNativeHandler(context, this))); |
| 1174 module_system->RegisterNativeHandler("test_features", | 1173 module_system->RegisterNativeHandler("test_features", |
| 1175 scoped_ptr<NativeHandler>(new TestFeaturesNativeHandler(context))); | 1174 scoped_ptr<NativeHandler>(new TestFeaturesNativeHandler(context))); |
| 1176 module_system->RegisterNativeHandler("user_gestures", | 1175 module_system->RegisterNativeHandler("user_gestures", |
| 1177 scoped_ptr<NativeHandler>(new UserGesturesNativeHandler(context))); | 1176 scoped_ptr<NativeHandler>(new UserGesturesNativeHandler(context))); |
| 1178 module_system->RegisterNativeHandler("utils", | 1177 module_system->RegisterNativeHandler("utils", |
| 1179 scoped_ptr<NativeHandler>(new UtilsNativeHandler(context))); | 1178 scoped_ptr<NativeHandler>(new UtilsNativeHandler(context))); |
| 1180 | 1179 |
| 1181 int manifest_version = extension ? extension->manifest_version() : 1; | 1180 int manifest_version = extension ? extension->manifest_version() : 1; |
| 1182 bool send_request_disabled = | 1181 bool send_request_disabled = |
| 1183 (extension && Manifest::IsUnpackedLocation(extension->location()) && | 1182 (extension && Manifest::IsUnpackedLocation(extension->location()) && |
| 1184 BackgroundInfo::HasLazyBackgroundPage(extension)); | 1183 BackgroundInfo::HasLazyBackgroundPage(extension)); |
| 1185 module_system->RegisterNativeHandler("process", | 1184 module_system->RegisterNativeHandler( |
| 1185 "process", |
| 1186 scoped_ptr<NativeHandler>(new ProcessInfoNativeHandler( | 1186 scoped_ptr<NativeHandler>(new ProcessInfoNativeHandler( |
| 1187 this, context, context->GetExtensionID(), | 1187 context, |
| 1188 context->GetExtensionID(), |
| 1188 context->GetContextTypeDescription(), | 1189 context->GetContextTypeDescription(), |
| 1189 ChromeRenderProcessObserver::is_incognito_process(), | 1190 ChromeRenderProcessObserver::is_incognito_process(), |
| 1190 manifest_version, send_request_disabled))); | 1191 manifest_version, |
| 1192 send_request_disabled))); |
| 1191 | 1193 |
| 1192 // chrome.Event is part of the public API (although undocumented). Make it | 1194 // chrome.Event is part of the public API (although undocumented). Make it |
| 1193 // lazily evalulate to Event from event_bindings.js. For extensions only | 1195 // lazily evalulate to Event from event_bindings.js. For extensions only |
| 1194 // though, not all webpages! | 1196 // though, not all webpages! |
| 1195 if (context->extension()) { | 1197 if (context->extension()) { |
| 1196 v8::Handle<v8::Object> chrome = AsObjectOrEmpty(GetOrCreateChrome(context)); | 1198 v8::Handle<v8::Object> chrome = AsObjectOrEmpty(GetOrCreateChrome(context)); |
| 1197 if (!chrome.IsEmpty()) | 1199 if (!chrome.IsEmpty()) |
| 1198 module_system->SetLazyField(chrome, "Event", kEventBindings, "Event"); | 1200 module_system->SetLazyField(chrome, "Event", kEventBindings, "Event"); |
| 1199 } | 1201 } |
| 1200 | 1202 |
| (...skipping 497 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1698 } | 1700 } |
| 1699 | 1701 |
| 1700 void Dispatcher::ClearPortData(int port_id) { | 1702 void Dispatcher::ClearPortData(int port_id) { |
| 1701 // Only the target port side has entries in |port_to_tab_id_map_|. If | 1703 // Only the target port side has entries in |port_to_tab_id_map_|. If |
| 1702 // |port_id| is a source port, std::map::erase() will just silently fail | 1704 // |port_id| is a source port, std::map::erase() will just silently fail |
| 1703 // here as a no-op. | 1705 // here as a no-op. |
| 1704 port_to_tab_id_map_.erase(port_id); | 1706 port_to_tab_id_map_.erase(port_id); |
| 1705 } | 1707 } |
| 1706 | 1708 |
| 1707 } // namespace extensions | 1709 } // namespace extensions |
| OLD | NEW |