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 |