Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(548)

Side by Side Diff: chrome/renderer/extensions/dispatcher.cc

Issue 235943018: Move extensions bindings code out of //chrome (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: nit Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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
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
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
OLDNEW
« no previous file with comments | « chrome/renderer/extensions/css_native_handler.cc ('k') | chrome/renderer/extensions/document_custom_bindings.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698