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/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
10 #include "base/string_piece.h" | 10 #include "base/string_piece.h" |
11 #include "chrome/common/child_process_logging.h" | 11 #include "chrome/common/child_process_logging.h" |
12 #include "chrome/common/chrome_switches.h" | 12 #include "chrome/common/chrome_switches.h" |
13 #include "chrome/common/chrome_version_info.h" | 13 #include "chrome/common/chrome_version_info.h" |
14 #include "chrome/common/extensions/api/extension_api.h" | 14 #include "chrome/common/extensions/api/extension_api.h" |
15 #include "chrome/common/extensions/extension.h" | 15 #include "chrome/common/extensions/extension.h" |
16 #include "chrome/common/extensions/extension_messages.h" | 16 #include "chrome/common/extensions/extension_messages.h" |
17 #include "chrome/common/extensions/permissions/permission_set.h" | 17 #include "chrome/common/extensions/permissions/permission_set.h" |
18 #include "chrome/common/url_constants.h" | 18 #include "chrome/common/url_constants.h" |
19 #include "chrome/common/view_type.h" | 19 #include "chrome/common/view_type.h" |
20 #include "chrome/renderer/chrome_render_process_observer.h" | 20 #include "chrome/renderer/chrome_render_process_observer.h" |
21 #include "chrome/renderer/extensions/api_definitions_natives.h" | 21 #include "chrome/renderer/extensions/api_definitions_natives.h" |
22 #include "chrome/renderer/extensions/app_bindings.h" | 22 #include "chrome/renderer/extensions/app_bindings.h" |
| 23 #include "chrome/renderer/extensions/app_runtime_custom_bindings.h" |
23 #include "chrome/renderer/extensions/app_window_custom_bindings.h" | 24 #include "chrome/renderer/extensions/app_window_custom_bindings.h" |
24 #include "chrome/renderer/extensions/chrome_v8_context.h" | 25 #include "chrome/renderer/extensions/chrome_v8_context.h" |
25 #include "chrome/renderer/extensions/chrome_v8_extension.h" | 26 #include "chrome/renderer/extensions/chrome_v8_extension.h" |
26 #include "chrome/renderer/extensions/context_menus_custom_bindings.h" | 27 #include "chrome/renderer/extensions/context_menus_custom_bindings.h" |
27 #include "chrome/renderer/extensions/event_bindings.h" | 28 #include "chrome/renderer/extensions/event_bindings.h" |
28 #include "chrome/renderer/extensions/experimental.app_custom_bindings.h" | |
29 #include "chrome/renderer/extensions/experimental.usb_custom_bindings.h" | 29 #include "chrome/renderer/extensions/experimental.usb_custom_bindings.h" |
30 #include "chrome/renderer/extensions/extension_custom_bindings.h" | 30 #include "chrome/renderer/extensions/extension_custom_bindings.h" |
31 #include "chrome/renderer/extensions/extension_groups.h" | 31 #include "chrome/renderer/extensions/extension_groups.h" |
32 #include "chrome/renderer/extensions/extension_helper.h" | 32 #include "chrome/renderer/extensions/extension_helper.h" |
33 #include "chrome/renderer/extensions/file_browser_handler_custom_bindings.h" | 33 #include "chrome/renderer/extensions/file_browser_handler_custom_bindings.h" |
34 #include "chrome/renderer/extensions/file_browser_private_custom_bindings.h" | 34 #include "chrome/renderer/extensions/file_browser_private_custom_bindings.h" |
35 #include "chrome/renderer/extensions/file_system_natives.h" | 35 #include "chrome/renderer/extensions/file_system_natives.h" |
36 #include "chrome/renderer/extensions/i18n_custom_bindings.h" | 36 #include "chrome/renderer/extensions/i18n_custom_bindings.h" |
37 #include "chrome/renderer/extensions/media_gallery_custom_bindings.h" | 37 #include "chrome/renderer/extensions/media_gallery_custom_bindings.h" |
38 #include "chrome/renderer/extensions/miscellaneous_bindings.h" | 38 #include "chrome/renderer/extensions/miscellaneous_bindings.h" |
(...skipping 520 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
559 scoped_ptr<NativeHandler>( | 559 scoped_ptr<NativeHandler>( |
560 new SetIconNatives(this, request_sender_.get()))); | 560 new SetIconNatives(this, request_sender_.get()))); |
561 | 561 |
562 // Natives used by multiple APIs. | 562 // Natives used by multiple APIs. |
563 module_system->RegisterNativeHandler("file_system_natives", | 563 module_system->RegisterNativeHandler("file_system_natives", |
564 scoped_ptr<NativeHandler>(new FileSystemNatives())); | 564 scoped_ptr<NativeHandler>(new FileSystemNatives())); |
565 | 565 |
566 // Custom bindings. | 566 // Custom bindings. |
567 module_system->RegisterNativeHandler("app", | 567 module_system->RegisterNativeHandler("app", |
568 scoped_ptr<NativeHandler>(new AppBindings(this, context))); | 568 scoped_ptr<NativeHandler>(new AppBindings(this, context))); |
| 569 module_system->RegisterNativeHandler("app_runtime", |
| 570 scoped_ptr<NativeHandler>(new AppRuntimeCustomBindings())); |
569 module_system->RegisterNativeHandler("app_window", | 571 module_system->RegisterNativeHandler("app_window", |
570 scoped_ptr<NativeHandler>(new AppWindowCustomBindings(this))); | 572 scoped_ptr<NativeHandler>(new AppWindowCustomBindings(this))); |
571 module_system->RegisterNativeHandler("context_menus", | 573 module_system->RegisterNativeHandler("context_menus", |
572 scoped_ptr<NativeHandler>(new ContextMenusCustomBindings())); | 574 scoped_ptr<NativeHandler>(new ContextMenusCustomBindings())); |
573 module_system->RegisterNativeHandler("extension", | 575 module_system->RegisterNativeHandler("extension", |
574 scoped_ptr<NativeHandler>( | 576 scoped_ptr<NativeHandler>( |
575 new ExtensionCustomBindings(this))); | 577 new ExtensionCustomBindings(this))); |
576 module_system->RegisterNativeHandler("experimental_app", | |
577 scoped_ptr<NativeHandler>(new ExperimentalAppCustomBindings())); | |
578 module_system->RegisterNativeHandler("experimental_mediaGalleries", | 578 module_system->RegisterNativeHandler("experimental_mediaGalleries", |
579 scoped_ptr<NativeHandler>(new MediaGalleryCustomBindings())); | 579 scoped_ptr<NativeHandler>(new MediaGalleryCustomBindings())); |
580 module_system->RegisterNativeHandler("experimental_usb", | 580 module_system->RegisterNativeHandler("experimental_usb", |
581 scoped_ptr<NativeHandler>(new ExperimentalUsbCustomBindings())); | 581 scoped_ptr<NativeHandler>(new ExperimentalUsbCustomBindings())); |
582 module_system->RegisterNativeHandler("file_browser_handler", | 582 module_system->RegisterNativeHandler("file_browser_handler", |
583 scoped_ptr<NativeHandler>(new FileBrowserHandlerCustomBindings())); | 583 scoped_ptr<NativeHandler>(new FileBrowserHandlerCustomBindings())); |
584 module_system->RegisterNativeHandler("file_browser_private", | 584 module_system->RegisterNativeHandler("file_browser_private", |
585 scoped_ptr<NativeHandler>(new FileBrowserPrivateCustomBindings())); | 585 scoped_ptr<NativeHandler>(new FileBrowserPrivateCustomBindings())); |
586 module_system->RegisterNativeHandler("i18n", | 586 module_system->RegisterNativeHandler("i18n", |
587 scoped_ptr<NativeHandler>(new I18NCustomBindings())); | 587 scoped_ptr<NativeHandler>(new I18NCustomBindings())); |
(...skipping 25 matching lines...) Expand all Loading... |
613 | 613 |
614 // Libraries. | 614 // Libraries. |
615 source_map_.RegisterSource("lastError", IDR_LAST_ERROR_JS); | 615 source_map_.RegisterSource("lastError", IDR_LAST_ERROR_JS); |
616 source_map_.RegisterSource("schemaUtils", IDR_SCHEMA_UTILS_JS); | 616 source_map_.RegisterSource("schemaUtils", IDR_SCHEMA_UTILS_JS); |
617 source_map_.RegisterSource("sendRequest", IDR_SEND_REQUEST_JS); | 617 source_map_.RegisterSource("sendRequest", IDR_SEND_REQUEST_JS); |
618 source_map_.RegisterSource("setIcon", IDR_SET_ICON_JS); | 618 source_map_.RegisterSource("setIcon", IDR_SET_ICON_JS); |
619 source_map_.RegisterSource("utils", IDR_UTILS_JS); | 619 source_map_.RegisterSource("utils", IDR_UTILS_JS); |
620 | 620 |
621 // Custom bindings. | 621 // Custom bindings. |
622 source_map_.RegisterSource("app", IDR_APP_CUSTOM_BINDINGS_JS); | 622 source_map_.RegisterSource("app", IDR_APP_CUSTOM_BINDINGS_JS); |
| 623 source_map_.RegisterSource("app.runtime", IDR_APP_RUNTIME_CUSTOM_BINDINGS_JS); |
623 source_map_.RegisterSource("app.window", IDR_APP_WINDOW_CUSTOM_BINDINGS_JS); | 624 source_map_.RegisterSource("app.window", IDR_APP_WINDOW_CUSTOM_BINDINGS_JS); |
624 source_map_.RegisterSource("browserAction", | 625 source_map_.RegisterSource("browserAction", |
625 IDR_BROWSER_ACTION_CUSTOM_BINDINGS_JS); | 626 IDR_BROWSER_ACTION_CUSTOM_BINDINGS_JS); |
626 source_map_.RegisterSource("contentSettings", | 627 source_map_.RegisterSource("contentSettings", |
627 IDR_CONTENT_SETTINGS_CUSTOM_BINDINGS_JS); | 628 IDR_CONTENT_SETTINGS_CUSTOM_BINDINGS_JS); |
628 source_map_.RegisterSource("contextMenus", | 629 source_map_.RegisterSource("contextMenus", |
629 IDR_CONTEXT_MENUS_CUSTOM_BINDINGS_JS); | 630 IDR_CONTEXT_MENUS_CUSTOM_BINDINGS_JS); |
630 source_map_.RegisterSource("declarativeWebRequest", | 631 source_map_.RegisterSource("declarativeWebRequest", |
631 IDR_DECLARATIVE_WEBREQUEST_CUSTOM_BINDINGS_JS); | 632 IDR_DECLARATIVE_WEBREQUEST_CUSTOM_BINDINGS_JS); |
632 source_map_.RegisterSource("devtools", IDR_DEVTOOLS_CUSTOM_BINDINGS_JS); | 633 source_map_.RegisterSource("devtools", IDR_DEVTOOLS_CUSTOM_BINDINGS_JS); |
633 source_map_.RegisterSource("experimental.app", | |
634 IDR_EXPERIMENTAL_APP_CUSTOM_BINDINGS_JS); | |
635 source_map_.RegisterSource("experimental.bluetooth", | 634 source_map_.RegisterSource("experimental.bluetooth", |
636 IDR_EXPERIMENTAL_BLUETOOTH_CUSTOM_BINDINGS_JS); | 635 IDR_EXPERIMENTAL_BLUETOOTH_CUSTOM_BINDINGS_JS); |
637 source_map_.RegisterSource("experimental.mediaGalleries", | 636 source_map_.RegisterSource("experimental.mediaGalleries", |
638 IDR_EXPERIMENTAL_MEDIA_GALLERY_CUSTOM_BINDINGS_JS); | 637 IDR_EXPERIMENTAL_MEDIA_GALLERY_CUSTOM_BINDINGS_JS); |
639 source_map_.RegisterSource("experimental.offscreen", | 638 source_map_.RegisterSource("experimental.offscreen", |
640 IDR_EXPERIMENTAL_OFFSCREENTABS_CUSTOM_BINDINGS_JS); | 639 IDR_EXPERIMENTAL_OFFSCREENTABS_CUSTOM_BINDINGS_JS); |
641 source_map_.RegisterSource("experimental.usb", | 640 source_map_.RegisterSource("experimental.usb", |
642 IDR_EXPERIMENTAL_USB_CUSTOM_BINDINGS_JS); | 641 IDR_EXPERIMENTAL_USB_CUSTOM_BINDINGS_JS); |
643 source_map_.RegisterSource("extension", IDR_EXTENSION_CUSTOM_BINDINGS_JS); | 642 source_map_.RegisterSource("extension", IDR_EXTENSION_CUSTOM_BINDINGS_JS); |
644 source_map_.RegisterSource("fileBrowserHandler", | 643 source_map_.RegisterSource("fileBrowserHandler", |
(...skipping 465 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1110 // we should abort. | 1109 // we should abort. |
1111 WebKit::WebFrame* frame = context->web_frame(); | 1110 WebKit::WebFrame* frame = context->web_frame(); |
1112 ExtensionURLInfo url_info(frame->document().securityOrigin(), | 1111 ExtensionURLInfo url_info(frame->document().securityOrigin(), |
1113 UserScriptSlave::GetDataSourceURLForFrame(frame)); | 1112 UserScriptSlave::GetDataSourceURLForFrame(frame)); |
1114 CHECK(!extensions_.IsSandboxedPage(url_info)); | 1113 CHECK(!extensions_.IsSandboxedPage(url_info)); |
1115 | 1114 |
1116 return true; | 1115 return true; |
1117 } | 1116 } |
1118 | 1117 |
1119 } // namespace extensions | 1118 } // namespace extensions |
OLD | NEW |